3

编辑:以前更明确地命名为:-“阻止 Kontiki 的 KHOST.EXE 在 Windows XP 启动时自动加载的最佳解决方案?

本质上,每当运行40D应用程序时,它都会将khost.exe设置为随 Windows 自动启动。这很烦人,因为它使我的启动时间增加了几分钟,而且我什至不使用 4OD 的 P2P 方面。

设置的注册表项是:

Command: C:\Program Files\Kontiki\KHost.exe -all
Description: kdx
Location: HKU\S-1-5-21-1757981266-1960408961-839522115-1003\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Name: kdx
Setting ID:
User: LAPTOP\Me

Command: "C:\Program Files\Kontiki\KHost.exe" -all
Description: 4oD
Location: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Name: 4oD
Setting ID:
User: All Users

我假设某种启动关闭 脚本来删除这些注册表项将是最好的解决方案,但我不喜欢.vbs.bat脚本或我将它们放在自动运行的地方在适当的时候。

我知道有一个TV On-Demand Monitor 应用程序,但我真的不需要运行另一个进程,我只需要删除上面描述的注册表项。

4

5 回答 5

2

我最终做了什么:

1)通过右键单击>退出从任务托盘停止40D ,这终止了Khost.exe进程。

2)打开开始>所有程序>管理工具>服务并停止KService,然后将启动类型设置为“手动”。

3)创建了一个ShutdownScript.vbs,内容如下:

Set SH = CreateObject("WScript.Shell")

RemoveRegKey "HKU\S-1-5-21-1757981266-1960408961-839522115-1003\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\kdx"
RemoveRegKey "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\kdx"
RemoveRegKey "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\4oD"

Shutdown

Set Shell = Nothing
Set SH = Nothing
WScript.Quit

Sub RemoveRegKey(sKey)
    On Error Resume Next
    SH.RegDelete sKey
End Sub

Sub Shutdown()
    SH.Run "shutdown -s -t 1", 0, TRUE
End Sub

4)在我的开始菜单中放置脚本的快捷方式,现在使用它来关闭PC。

现在40D将在我需要时工作,我所要做的就是退出它并使用脚本关闭它,以阻止它在每次启动 PC 时自动启动。

感谢您对此的所有帮助!:)

于 2008-09-21T16:48:32.790 回答
1

为什么不直接将可执行文件复制到其他名称,然后在其位置放置一个无操作的 exe。然后将您的快捷方式更改为复制并重命名的 EXE。如果程序对其名称敏感,则将快捷方式指向 VBS 文件以临时重命名 EXE 文件。

于 2008-09-21T14:36:35.417 回答
1

对于 vb 脚本,您将使用如下内容:

Dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")
'repeat the line below for each key to delete 
WSHShell.RegDelete "[Location of Key]"

只需将代码放入文本文件中,然后将其重命名为shutdown,vbs。

至于何时运行它,如果您在公司环境中,您可以使用组策略并将其设置为机器关闭脚本。或者,请参阅此页面手动添加

于 2008-09-21T14:37:49.003 回答
1

另一种方法:

创建一个运行程序的 VBS 文件,然后删除注册表项。

Set objShell = CreateObject("WScript.Shell") 

objShell.Exec("C:\Program Files\Kontiki\KHost.exe")

strRoot = "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\4oD" 
strDelete = objShell.RegDelete(strRoot) 
...

并指出你的捷径。

于 2008-09-21T14:43:22.063 回答
1

我是否建议您尝试一下 AutoIt ( http://www.autoitscript.com/autoit3/ ),这是一种免费软件脚本语言,旨在自动化 Windows GUI 和一般脚本。

如果您选择使用它,您需要的 AutoIt 代码将是 2 行代码:

RegDelete("YourKey", "YourValue");
ShutDown(1);

您可以将其编译成可以在任何计算机上运行的独立 exe(无需运行时库)

于 2008-09-21T15:16:23.247 回答