浮萍晓生的开发日志

记录学习的旅程,把握可预见的未来

导航

2013年12月18日

摘要: #include #include bool IsAppRunning(){ bool m_running = false; HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (hSnapshot == INVALID_HANDLE_VALUE) { return m_running; } PROCESSENTRY32 pe = {0}; pe.dwSize = sizeof(PROCESSENTRY32); if (!Process32Fi... 阅读全文

posted @ 2013-12-18 16:14 浮萍晓生 阅读(252) 评论(0) 推荐(0) 编辑

摘要: GetCurrentProcess获得当前进程的一个伪句柄函数原型:HANDLE WINAPIGetCurrentProcess(void);使用说明: 简单的获得这个函数的返回值,这个值所代表的便是我们当前进程的句柄。但是要注意的是,这个句柄只是一个伪句柄,只能在我们的进程中才能代表当前进程的句柄,事实上这个函数目前只是简单的返回-1这个值。 也就是说在我们的程序中-1便能表示本进程的句柄,但是为了兼容性考虑,我们最好不要使用-1这个硬编码,因为并不能保证以后这个值不会改变。 用这个函数得到的伪句柄不用调用CloseHandle去关闭。为什么?因为它是伪句柄~~--------------. 阅读全文

posted @ 2013-12-18 15:37 浮萍晓生 阅读(867) 评论(0) 推荐(1) 编辑

摘要: 在得到窗口句柄后我们可以通过GetWindowThreadProcessId这个函数来获得窗口所属进程ID和线程ID,从而判断创建窗口的进程和线程。函数原型:DWORDGetWindowThreadProcessId(HWNDhWnd,LPDWORDlpdwProcessId);参数说明:hWnd:传入的窗口句柄;lpdwProcessId:返回的进程ID地址。返回值:函数返回的是窗口所属线程ID。使用例子:DWORD ProcessID;DWORD ThreadID;ThreadID=GetWindowThreadProcessId(hWnd,&ProcessID);... 阅读全文

posted @ 2013-12-18 15:30 浮萍晓生 阅读(462) 评论(0) 推荐(0) 编辑

摘要: 函数原型:HANDLEOpenProcess(DWORD dwDesiredAccess,BOOL bInheritHandle,DWORD dwProcessId)参数说明:1、dwDesiredAccess:想拥有的该进程访问权限PROCESS_ALL_ACCESS //所有能获得的权限PROCESS_CREATE_PROCESS //需要创建一个进程PROCESS_CREATE_THREAD //需要创建一个线程PROCESS_DUP_HANDLE //重复使用DuplicateHandle句柄PROCESS_QUERY_INFORMATION //获得进程信息的权限,如它的退出代码、优 阅读全文

posted @ 2013-12-18 15:29 浮萍晓生 阅读(853) 评论(0) 推荐(0) 编辑

摘要: 这个函数可以用来终止或者说杀死一个进程,它不会留给进程及其所有线程清理的时间,系统会马上终止(杀死)这个进程的所有线程,致使进程终止。在使用此函数前我们必须要调用OpenProcess函数来获得我们要终止(杀死)进程的句柄,并且要获得进程的PROCESS_TERMINATE权限。函数原型:BOOLTerminateProcess(HANDLEhProcess,UINTuExitCode)参数说明:1、hProcess:要终止(杀死)进程的句柄,需要有PROCESS_TERMINATE权限。2、uExitCode:设置进程的退出值。可通过GetExitCodeProcess函数得到一个进程的退出 阅读全文

posted @ 2013-12-18 15:27 浮萍晓生 阅读(982) 评论(0) 推荐(0) 编辑