【发布时间】:2015-07-15 21:38:53
【问题描述】:
我正在开发一个应用程序,该应用程序在启动时会创建一个新桌面,并且使用组合键我可以在原始桌面和新桌面之间来回移动。在创建时,在新桌面中启动了一个新的 explorer.exe 进程,因此用户可以启动任何他想要的应用程序。
当检测到发送退出命令的组合键时,新桌面关闭,我们回到原来的桌面,但用户在新桌面启动的所有应用程序仍在运行。
有没有办法获取在新桌面中打开的所有这些进程的句柄,为 Window Station 设置一个 HANDLE,为新桌面设置一个 HDESK 句柄?
【问题讨论】:
-
一个进程可以在不同的桌面创建窗口。一般来说,您所要求的内容没有明确定义。
-
OOC 这是针对 Windows 10 中的新任务视图,还是您的意思是任何版本的 Windows 中的单独桌面?
-
@JeffS 我目前正在 Windows 7 中开发此应用程序,所以我想看看是否可以关闭在 Windows 7 下在新桌面中启动的每个应用程序
-
@DavidHeffernan 我不知道一个进程可以在不同的桌面上创建窗口。我正在寻找一种方法来杀死用户仅在该桌面上打开的所有进程,例如用户在新桌面上启动一个notepad.exe进程,当他提示组合键退出时,我想杀死所有这些应用程序。
-
您可能可以在您枚举的每个进程的主线程上调用
GetThreadDesktop,这可能就足够了。