【发布时间】:2010-06-18 18:35:45
【问题描述】:
HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "Shell" 返回 shell 名称,通常是 Explorer.exe。但是,它不包含路径,也不标识特定的可执行文件。
枚举任务列表找到任务 Explorer.exe。
但是如果用户运行了另一个名为 Explorer.exe 的不相关任务呢?
确定 Explorer.exe 的特定实例实际上是 shell 的最佳方法是什么?
我需要避免混淆作为外壳的任务和可能不是外壳但共享相同名称的任务,即 Explorer.exe
【问题讨论】:
-
我不确定这是一个可靠的答案,但您通常会选择 PID 最低的 explorer.exe 实例(因为它比其他实例先启动)。我可以看到在 PID 可能开始回收的长时间运行的系统上,这将是一个问题。
-
@Coding Gorilla:这在多用户环境中失败了。
标签: c# c++ shell process explorer