【发布时间】:2015-05-07 23:14:37
【问题描述】:
我很好奇是否有办法从我的进程中知道它是否是从 Windows 自动运行键启动的?
这个:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
编辑:发布此问题后,我发现显然有办法找出答案。 Process Explorer不知怎的就知道了:
或者它只是扫描注册表,寻找匹配项?
【问题讨论】:
-
我看不出有任何方法可以将
HKCU自动运行程序与 Explorer 在用户会话中启动的任何其他程序区分开来。为什么你需要知道这个? -
@eryksun:如果这个 GUI 模块是从自动运行开始的,它将影响其中的某些 UI。我尝试为此使用命令行参数,但它不是很可靠,因为任何人都可以添加这些参数。
-
我不明白为什么有人可以使用指定自动运行界面的命令行参数启动程序。这是一个易于实施的可靠解决方案。
-
我认为微软不会保留应用程序启动方式的历史记录。您只想保留应用程序的单个实例吗?或者如果它是从 Windows 自动运行启动的,则显示为最小化?
-
@Christian-PMP:不,这不仅仅是保留一个实例。我可以用一个命名对象来做到这一点。更多的是关于用户进程的行为方式。
标签: c++ windows winapi registry windows-explorer