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

本文介绍了一种手机病毒如何利用特定API获取用户的通话记录,包括拨打和接听的电话号码及通话时间等详细信息。通过示例代码展示了PhoneOpenCallLog、PhoneGetCallLogEntry和PhoneCloseCallLog等函数的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

病毒在手机中可以查看用户的最近拨号记录,知道用户给那些人拨打了电话,电话从什么时间开始到什么时间结束等。

实现方法:

PhoneOpenCallLog()生成呼叫日志句柄。

PhoneGetCallLogEntry()获取呼叫日志中的单个条目,并移动条目指针到下一条。
此函数获取的电话通话信息非常丰富。可以深入研究。

PhoneCloseCallLog()关闭呼叫日志句柄。



示例代码如下:

#include "stdafx.h"
#include <windows.h>
#include <commctrl.h>

#include <phone.h>
#pragma comment(lib,"phone.lib")


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 -1;
}


//清空缓冲区准备获取日志信息
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 -2;
}

return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值