【发布时间】:2013-07-17 11:29:19
【问题描述】:
我的程序必须在 Windows 的登录屏幕后立即执行。为此,我更改了一些注册表值,现在这个程序在启动时启动,而不是 Explorer.exe ()。在我的程序中,用户输入他们的用户名和密码,然后登录到系统。登录后,我想运行 explorer.exe、任务栏和开始菜单以对用户可见。我使用这段代码来执行系统命令:
string cmd = "/C explorer.exe ";
System.Diagnostics.Process.Start("CMD.exe", cmd);
但是执行这个命令后,只出现My Computer窗口。任务栏和开始菜单不出现。执行explorer.exe 命令后如何查看任务栏和开始菜单(我使用的是 Windows 7)?
【问题讨论】:
-
我更改了一些注册表值请展开以便我们了解您所做的事情
-
另外,您也可以使用
System.Diagnostics.Process.Start("explorer.exe")。无需使用 CMD 启动资源管理器... -
呃,这对我来说听起来很危险。登录后,在任何 Windows 进程实际启动之前,您需要做什么?
-
我怀疑你已经把你的程序变成了shell。你可以这样做,但你需要正视自己的责任,真正成为一个空壳。您以后不能改变主意,并期望资源管理器来拯救您。
-
如果您仍然希望正常的外壳存在,为什么要替换桌面外壳?创建一个新的桌面外壳比创建一个 Windows 应用程序要多得多。如果你不知道怎么做,或者不想做所有这些工作,你不应该做一个外壳。相反,您应该创建一个服务并对用户登录做出反应。