欢迎来到 嗅灵易学

零基础也能上手的脚本技术课,一对一答疑带你入门

[WM系统开发] 获取用户拨打电话记录

[WM系统开发] 获取用户拨打电话记录

意义:病毒在手机中可以查看用户的最近拨号记录,知道用户给那些人拨打了电话,电话从什么时间开始到什么时间结束等。
      
实现方法:
PhoneOpenCallLog()生成呼叫日志句柄。
PhoneGetCallLogEntry()获取呼叫日志中的单个条目,并移动条目指针到下一条。
                      此函数获取的电话通话信息非常丰富。可以深入研究。
PhoneCloseCallLog()关闭呼叫日志句柄。

示例代码如下:

#include "stdafx.h"
#include "CallLog01.h"
#include <windows.h>
#include <commctrl.h>
#include <phone.h>
#pragma comment(lib,"phone.lib")
#include "E:\MFC程序\XHProgram\MGSEI_ERROR.h"
#include "E:\MFC程序\XHProgram\XHLIB.h"
int WINAPI WinMain(HINSTANCE hInstance,
           HINSTANCE hPrevInstance,
           LPTSTR    lpCmdLine,
           int       nCmdShow)
{
  HANDLE       hCallLog = NULL;
  CALLLOGENTRY entry;
  int          nret = MGSEI_NO_ERROR;
  WCHAR        Number[256];
  SYSTEMTIME   st;

  //打开呼叫日志获取句柄。
        if( S_OK != PhoneOpenCallLog(&hCallLog) )
  {
            return MGSEI_API_CALL_ERROR;
  }

        //清空缓冲区准备获取日志信息
  ZeroMemory(&entry,sizeof(CALLLOGENTRY));
  entry.cbSize = sizeof(CALLLOGENTRY);
  entry.pszNumber = Number;
  //枚举获取呼叫日志
  while( S_OK == PhoneGetCallLogEntry(hCallLog,&entry) )
  {
    ShowText(entry.pszNumber);
    FileTimeToLocalFileTime(&entry.ftStartTime,&entry.ftStartTime);
    FileTimeToSystemTime(&entry.ftStartTime,&st);
    ShowST(st);
    FileTimeToLocalFileTime(&entry.ftEndTime,&entry.ftEndTime);
    FileTimeToSystemTime(&entry.ftEndTime,&st);
    ShowST(st);
  }
  //如果返回ERROR_NO_MORE_ITEMS说明已经没有条目了
  if(ERROR_NO_MORE_ITEMS == GetLastError())
  {
    ShowText(L"No More Items");      
  }
  //关闭呼叫日志句柄
  if( S_OK != PhoneCloseCallLog(hCallLog) )
  {
    return MGSEI_API_CALL_ERROR;
  }
  return 0;
}
构建好的程序见附件。通过弹出对话框显示用户所拨号码,开始时间,结束时间等信息。

上传的附件 CallLog01.rar

注意:上传附件及图片大小不得大于30M。

⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。

0 0 0 举报
复制成功