【发布时间】:2012-11-19 07:55:52
【问题描述】:
我需要获取隐藏窗口的HANDLE 或HWND 以使用EndTask((HWND)hProc,TRUE,TRUE); 终止它。我使用了下面列出的所有方法,但它们都不起作用。当我使用 spy++ 手动设置隐藏窗口的句柄时,它可以正常工作。
注意:此窗口不显示 ShowWindow(),然后使用 FindWindow()。 spy++ 如何获取并显示这些句柄?
我用过:
-
FindProcessId然后
hProc = OpenProcess(SYNCHRONIZE|PROCESS_TERMINATE, FALSE, id);或
hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pe.th32ProcessID); 创建进程不起作用:访问被拒绝。
FindWindow()不适用于此隐藏窗口。
如何获取隐藏窗口的句柄以便终止进程?
【问题讨论】:
-
尝试使用
EnumWindows()定位窗口。 -
这是某种企业程序,IDM 表示身份驱动管理器。您可以完全期望它会阻止试图弄乱它的尝试。如果它妨碍您,您将需要与 LAN 管理员合作,尽管它很可能会明确阻止您做您想做的事情。
-
EndTask((HWND) hProc, TRUE, TRUE);这没有意义。您不能将进程句柄转换为窗口句柄。此外,EndTask已被弃用。此外,EndTask不一定会停止程序,而只是尝试关闭(和/或销毁)指定的窗口。许多程序在其中一个窗口被破坏时不会停止。你真正想做什么?
标签: c visual-studio-2010 winapi visual-c++ systems-programming