易语言进程句柄和线程句柄获得问题
如题,我用代码获取了QQ的窗体句柄、进程id和线程id,并且验证都是正确的(用的ViewWizard),但是在分别用进程id获取进程句柄,线程id获取线程句柄时候出了问题...
如题,我用代码获取了QQ的窗体句柄、进程id和线程id,并且验证都是正确的(用的ViewWizard),但是在分别用进程id获取进程句柄,线程id获取线程句柄时候出了问题,返回值都是0(获取失败)。然后我用视频教程别人写成的确定正确的代码在我的电脑上运行,发现返回值还是0(获取失败),请问是什么原因呢?附上我写的代码与启动窗口。
展开
2个回答
2017-12-16
展开全部
先用GetWindowThreadProcessId获取进程的id
OpenProcess即可打开进程句柄
CloseHandle关闭进程句柄
测试了一下qq也是可以打开它的进程句柄的,应该是你的代码错了
以下是易语言的代码:直接复制下来粘贴到易语言上:
.版本 2
.子程序 子程序1, 整数型
.参数 窗口句柄, 整数型
.局部变量 hProcess, 整数型
.局部变量 dwProcessId, 整数型
GetWindowThreadProcessId (窗口句柄, dwProcessId)
hProcess = OpenProcess (2035711, 0, dwProcessId)
CloseHandle (hProcess)
返回 (hProcess)
.版本 2
.DLL命令 CloseHandle, 逻辑型, "Kernel32", "CloseHandle"
.参数 hObject, 整数型
.DLL命令 OpenProcess, 整数型, "kernel32", "OpenProcess"
.参数 dwDesiredAccess, 整数型
.参数 bInheritHandle, 整数型
.参数 dwProcessId, 整数型
.DLL命令 GetWindowThreadProcessId, 整数型, "user32.dll", "GetWindowThreadProcessId"
.参数 hWnd, 整数型
.参数 lpdwProcessId, 整数型, 传址
OpenProcess即可打开进程句柄
CloseHandle关闭进程句柄
测试了一下qq也是可以打开它的进程句柄的,应该是你的代码错了
以下是易语言的代码:直接复制下来粘贴到易语言上:
.版本 2
.子程序 子程序1, 整数型
.参数 窗口句柄, 整数型
.局部变量 hProcess, 整数型
.局部变量 dwProcessId, 整数型
GetWindowThreadProcessId (窗口句柄, dwProcessId)
hProcess = OpenProcess (2035711, 0, dwProcessId)
CloseHandle (hProcess)
返回 (hProcess)
.版本 2
.DLL命令 CloseHandle, 逻辑型, "Kernel32", "CloseHandle"
.参数 hObject, 整数型
.DLL命令 OpenProcess, 整数型, "kernel32", "OpenProcess"
.参数 dwDesiredAccess, 整数型
.参数 bInheritHandle, 整数型
.参数 dwProcessId, 整数型
.DLL命令 GetWindowThreadProcessId, 整数型, "user32.dll", "GetWindowThreadProcessId"
.参数 hWnd, 整数型
.参数 lpdwProcessId, 整数型, 传址
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询