MFC检测后台进程是否运行

MFC检测后台进程是否运行,第1张

typedef BOOL (_stdcall *ENUMPROCESSES)( //注意这里要指明调用约定为-stdcall

DWORD* pProcessIds, //指向进程ID数组链

DWORD cb,//ID数组的大小,用字节计数

DWORD* pBytesReturned) //返回的字节

//在psapi.dll中的函数EnumProcessModules用来枚举进程模块

typedef BOOL (_stdcall *ENUMPROCESSMODULES)(

HANDLE hProcess, //进程句柄

HMODULE* lphModule, //指向模块句柄数组链

DWORD cb,//模块句柄数组大小,字节计数

LPDWORD lpcbNeeded) //存储所有模块句柄所需的字节数

//在psapi.dll中的函数GetModuleFileNameEx获得进程模块名

typedef DWORD (_stdcall *GETMODULEFILENAMEEX)(

HANDLE hProcess, //进程句柄

HMODULE hModule, //进程句柄

LPTSTR lpFilename, //存放模块全路径名

DWORD nSize//lpFilename缓冲区大小,字符计算

)

void main()

{

HINSTANCE hPsDll = LoadLibrary("PSAPI.DLL")

if(NULL == hPsDll)

{

cout<<"Load PSAPI.DLL failed!"<<endl

return

} ENUMPROCESSES pEnumProcesses = (ENUMPROCESSES)GetProcAddress(hPsDll, "EnumProcesses")

ENUMPROCESSMODULES pEnumProcessModules = (ENUMPROCESSMODULES)GetProcAddress(hPsDll, "EnumProcessModules")

GETMODULEFILENAMEEX pGetModuleFileNameEx = (GETMODULEFILENAMEEX)GetProcAddress(hPsDll, "GetModuleFileNameExA")DWORD processid[1000]

DWORD neededpEnumProcesses(processid, sizeof(processid), &needed)

int processcount=needed/sizeof(DWORD)

for (int i=0i<processcounti++)

{

//打开进程

HANDLE hProcess=OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ,

false, processid[i])

if (hProcess)

{

char path[256] = {0}

HMODULE hModule

pEnumProcessModules(hProcess, &hModule, sizeof(hModule), &needed)

pGetModuleFileNameEx(hProcess, hModule, path, sizeof(path))

GetShortPathName(path,path,256)

char temp[10] = {0}

itoa(processid[i],temp,10)

printf("%s --- %s\n",path,temp)

}

//else

// printf("Failed!!!\n")

} if(hPsDll)

{

FreeLibrary(hPsDll)

}

}

你想做的就是让h窗口响应你想要的鼠标事件吧?

如果h窗口是程序进程创建的,可以重载一下h的PreTranslateMessage看看消息是否被发送过来了,注意只截取你发送的消息。

如果h窗口是别的程序进程创建的,那就只能用工具看看h是否接收到消息了。

还有一个很猥琐的方法。。你可以让鼠标移动过去点击一下然后再回来。。。只是发送消息的话用户一般感觉不到的。。。

通过FindWindow查找指定的窗口,再用PostMessage向其发送按键消息,如下HWND

hwnd

hwnd

=

FindWindow(NULL,

"窗口名字")PostMessage(hwnd,

WM_KEYDOWN,

'A',

1)这里是发送按键a消息,其他类似


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8169913.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存