Обновлено: Раньше это называлось более явно: - "Лучшее решение для предотвращения автоматической загрузки Kontiki KHOST.EXE при запуске в Windows XP?"
По сути, всякий раз, когда приложение 40D запускается, оно устанавливает khost.exe для автоматического запуска с Windows. Это раздражает, поскольку увеличивает время загрузки на пару минут, а я даже не использую P2P-аспект 4OD.
Установленные ключи реестра:
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 или .летучая мышь или где я бы поместил их для автоматического запуска в подходящее время.
Я знаю, что есть Приложение TV On-Demand Monitor, но мне действительно не нужно запускать еще один процесс, мне просто нужно удалить ключи реестра, как я описал выше.





Почему бы просто не скопировать исполняемый файл под какое-то другое имя и поставить на его место исполняемый файл, который ничего не делает. Затем измените ярлыки на скопированный и переименованный EXE. Если программа чувствительна к своему имени, укажите ярлыки на файл VBS, чтобы временно переименовать файл EXE.
для сценария 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.
Что касается того, когда его запускать, если вы находитесь в корпоративной среде, вы можете использовать групповую политику и установить ее как сценарий выключения машины. В качестве альтернативы см. Эту страницу здесь о добавлении вручную
Другой способ:
Создайте файл VBS, который запускает программу, а затем удаляет ключи реестра.
Set objShell = CreateObject("WScript.Shell")
objShell.Exec("C:\Program Files\Kontiki\KHost.exe")
strRoot = "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunoD"
strDelete = objShell.RegDelete(strRoot)
...
И укажите на это свои ярлыки.
Должен ли я предложить вам попробовать AutoIt (http://www.autoitscript.com/autoit3/), бесплатный язык сценариев, предназначенный для автоматизации графического интерфейса Windows и общих сценариев.
Если вы решите использовать его, код AutoIt для вас будет двухстрочным:
RegDelete("YourKey", "YourValue");
ShutDown(1);
И вы можете скомпилировать его в автономный исполняемый файл, который может работать на любом компьютере (библиотека времени выполнения не требуется)
Что я в итоге сделал:
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\RunoD"
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) Поместите ярлык в сценарий в моем Стартовое меню и теперь используйте его для выключения ПК.
Теперь 40D будет работать, когда мне это нужно, и все, что мне нужно сделать, это выйти из него и выключить скрипт, чтобы он не запускался автоматически каждый раз, когда я загружаю компьютер.
СПАСИБО ЗА ВАШУ ПОМОЩЬ! :)