微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

以编程方式更改Windows Shell

我正在开发一个将“embedded”到Windows 7系统中的项目,这将通过禁用任务pipe理器并将Windows Shell更改为应用程序以及其他方式来实现。

在这里要做的是以编程方式更改应用程序和explorer.exe之间的Windowsshell,我想知道是否有任何方式在C#中执行此操作。

目前我有几行代码尝试更改Windows Shell的registry项,但在刷新registry编辑器后似乎没有任何事情发生,代码如下所示:

regKey = Registry.LocalMachine.OpenSubKey("SOFTWARE",true).OpenSubKey("Microsoft",true).OpenSubKey("Windows NT",true).OpenSubKey("CurrentVersion",true).OpenSubKey("Winlogon",true); regKey.DeleteValue("Shell"); regKey.SetValue("Shell",shell); regKey.Close();

我已经尝试重新启动Windows,看看是否允许shell更改完成,但无济于事。

发现为什么在我的C ++应用程序中创build线程的最好方法是什么?

Windows服务状态存储的推荐位置?

cmake中gcc的-mwindows选项相当于什么?

Segfault进程ID和核心转储进程ID是不同的。 为什么?

系统启动时如何自动运行应用程序?

如果有人能告诉我是否可以通过编程的方式来完成这个任务,那么我将不胜感激。

此外,我很高兴知道是否有一种方法来编写程序,以便它始终以pipe理员权限运行,以便registry编辑工作。

非常感谢,

理查德

分叉失败:无法分配内存

在8秒内检测16 GB笔式驱动器上的内容更改

为什么Linux上的string文字的内存地址与其他string的内存地址不同?

高分辨率定时器vs低分辨率定时器

垂直滚动gridview XAML windows store应用程序

网络上的其他位置的搜索后,我终于得到了壳牌更改为正在建立的应用程序的可执行文件

“嵌入”过程是一个三步过程,在我正在使用的软件的情况下,我们首先禁用任务管理器,然后在本地计算机注册表中设置shell可执行文件,然后在当前用户中重复该过程注册表中。

以下是实现此目的的代码

public void embedSoftware() { try { // disable Task Manager regKey = Registry.CurrentUser.OpenSubKey(subKey,true).CreateSubKey("System"); regKey.SetValue("disableTaskMgr",1); regKey.Close(); // Change the Local Machine shell executable regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWAREMicrosoftwindows NTCurrentVersionWinlogon",true); regKey.SetValue("Shell",shell,RegistryValueKind.String); regKey.Close(); // Create the Shell executable Registry entry for Current User regKey = Registry.CurrentUser.OpenSubKey(@"SoftwareMicrosoftwindows NTCurrentVersionWinlogon",shell); regKey.Close(); MessageBox.Show("Embedding Complete"); } catch (Exception e) { MessageBox.Show(e.Message); } }

在这个例子中,变量“shell”是一个字符串,其中包含可用作新Windows Shell的可执行文件的路径。

除此之外,还有一种“解嵌”软件的方法,这种方法简单地从当前用户注册表中删除disableTaskMgr”和“Shell”值,它也将本地机注册表中的“Shell”值重置为“explorer 。可执行程序”。

我希望这可以帮助那些无法以编程方式更改Windows Shell的人。

问候,

理查德

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐