-
-
[原创][WM系统开发] 获取用户拨打电话记录
-
发表于:
2008-12-30 19:15
12126
-
意义:病毒在手机中可以查看用户的最近拨号记录,知道用户给那些人拨打了电话,电话从什么时间开始到什么时间结束等。
实现方法:
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;
}
构建好的程序见附件。通过弹出对话框显示用户所拨号码,开始时间,结束时间等信息。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)