Завершить работу скрипта на Windows для удаления ключа реестра? - PullRequest
3 голосов
/ 21 сентября 2008

РЕДАКТИРОВАТЬ: Ранее это называлось более явно: - " Лучшее решение для предотвращения автоматической загрузки KHOST.EXE Kontiki при запуске в 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 или .bat сценариями или с тем, куда я бы их поместил для автоматического запуска в подходящее время.

Я знаю, что есть Приложение TV On-Demand Monitor , но мне не нужно запускать еще один процесс, мне просто нужно удалить ключи реестра как Я опишу выше.

Ответы [ 5 ]

2 голосов
/ 21 сентября 2008

Что я в итоге сделал:

1) Остановлено 40D из панели задач с щелчком правой кнопкой мыши > exit , которое завершило 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) Поместите ярлык в скрипт в моем меню Пуск и теперь используйте его для выключения ПК.

Теперь 40D будет работать, когда мне это нужно, и все, что мне нужно сделать, это выйти из него и завершить работу с помощью скрипта, чтобы он не запускался автоматически при каждой загрузке ПК.

СПАСИБО ЗА ВСЕ ВАШУ ПОМОЩЬ С ЭТИМ! :)

1 голос
/ 21 сентября 2008

Должен ли я предложить вам попробовать AutoIt (http://www.autoitscript.com/autoit3/),) - бесплатный язык сценариев, предназначенный для автоматизации графического интерфейса Windows и общих сценариев.

Если вы решите использовать его, код AutoIt для вашей потребности будет иметь 2 строки:

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

И вы можете скомпилировать его в автономный исполняемый файл, который может работать на любом компьютере (библиотека времени выполнения не требуется)

1 голос
/ 21 сентября 2008

для сценария 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.

Что касается того, когда его запускать, если вы находитесь в корпоративной среде, вы можете использовать групповую политику и установить ее в качестве сценария выключения компьютера. В качестве альтернативы, смотрите эту страницу здесь о добавлении ее вручную

1 голос
/ 21 сентября 2008

Другой метод:

Создайте файл 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) 
...

И укажите на это ваши ярлыки.

1 голос
/ 21 сентября 2008

Почему бы просто не скопировать исполняемый файл под каким-либо другим именем и поставить на его место исполняемый файл, который ничего не делает. Затем измените ваши ярлыки на скопированный и переименованный EXE. Если программа чувствительна к своему имени, наведите ярлыки на файл VBS, чтобы временно переименовать файл EXE.

...