gpt4 book ai didi

无法 FindWindow 父进程的窗口,既不终止父进程

转载 作者:太空宇宙 更新时间:2023-11-04 04:02:00 25 4
gpt4 key购买 nike

我有一个父进程,它生成一个子进程。子进程的目的是通过终止父进程来重新启动父进程,等待几秒钟,然后再次启动它。我无法检测 parent 是否以管理员权限运行,但 child 在没有管理员权限的情况下运行。父级有一个隐藏窗口,它有一个唯一的窗口类,通过它可以找到窗口并向它发送 WM_CLOSE。然而,在某些安装中,子级使用类的标识符调用 FindWindow() 失败 - 找不到窗口。但是,通过 EnumProcesses() 枚举系统中的所有进程,然后打开每个进程,调用 GetModuleFileNameEx() 成功地通过其可执行路径找到父进程,这是已知和固定的。但是,对进程句柄调用 TerminateProcess() 会返回拒绝访问错误 (5)。设置 SeDebugPrivilege 失败,因为 child 没有升级的权限。上述情况只发生在少数测试机器上,在大多数机器上它按预期工作 - 可以找到窗口,并通过 TerminateProcess() 尝试杀死父进程成功。我的问题是 - 在某些机器上配置的子进程和父进程之间是否存在某种隔离模式,从而导致 FindWindow() 和 TerminateProcess() 失败,或者是否还有其他原因?

最佳答案

我认为此链接可能对您有很大帮助:) GetParentProcessID

这个源只是告诉你来自 ntdll NtQueryInformationProcess 的函数将父 ID 作为 InheritedFromUniqueProcessId 存储在 PROCESS_BASIC_INFORMATION 结构中

关于无法 FindWindow 父进程的窗口,既不终止父进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10657982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com