Chiudere lo script su Windows per eliminare una chiave di registro?
-
02-07-2019 - |
Domanda
MODIFICA: Questo era precedentemente esplicitamente intitolato: - " La migliore soluzione per impedire al KHOST.EXE di Kontiki di caricarsi automaticamente all'avvio su Windows XP? "
In sostanza, ogni volta che viene eseguita l'applicazione 40D imposta khost.exe per l'avvio automatico con Windows. Questo è fastidioso in quanto aumenta il mio tempo di avvio di un paio di minuti e non uso nemmeno l'aspetto P2P di 4OD.
Le chiavi di registro impostate sono:
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
Suppongo che una sorta di avvio o arresto script per eliminare queste chiavi di registro sarebbe la soluzione migliore, ma non mi piacciono gli script .vbs o .bat o dove li metterei in esecuzione automaticamente al momento opportuno.
So che esiste un applicazione TV On-Demand Monitor , ma Non ho davvero bisogno di eseguire un altro processo, ho solo bisogno di cancellare le chiavi del registro come ho descritto sopra.
Soluzione
per lo script vb useresti qualcosa del genere:
Dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")
'repeat the line below for each key to delete
WSHShell.RegDelete "[Location of Key]"
Basta rilasciare il codice in un file di testo e rinominarlo in modo simile a shutdown, vbs.
Per quanto riguarda quando eseguirlo, se ci si trova in un ambiente aziendale è possibile utilizzare un criterio di gruppo e impostarlo come script di spegnimento del computer. In alternativa, consulta questa pagina qui sull'aggiunta manuale
Altri suggerimenti
Cosa ho finito per fare alla fine:
1) Arrestato 40D dalla barra delle applicazioni con un clic con il pulsante destro del mouse > esci che ha terminato il processo Khost.exe .
2) aperto Inizia > Tutti i programmi > Strumenti di amministrazione > Servizi e fermato KService quindi imposta il Tipo di avvio su ' Manuale '.
3) creato un ShutdownScript.vbs con il seguente contenuto:
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) Metti un collegamento nello script nel mio menu Start e ora usalo per spegnere il PC.
Ora 40D funzionerà quando ne ho bisogno e tutto ciò che devo fare è uscire e chiudere lo script per interromperne l'avvio automatico ogni volta che avvio il PC.
GRAZIE PER TUTTO IL TUO AIUTO CON QUESTO! :)
Perché non copiare semplicemente l'eseguibile con qualche altro nome e mettere un exe do-nothing al suo posto. Quindi modificare le scorciatoie in EXE copiato e rinominato. Se il programma è sensibile al suo nome, punta le scorciatoie su un file VBS per rinominare temporaneamente il file EXE.
Un altro metodo:
Crea un file VBS che esegue il programma e quindi elimina le chiavi del registro.
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)
...
E punta le tue scorciatoie su questo.
Dovrei suggerire di provare AutoIt ( http://www.autoitscript.com/autoit3/ ), un linguaggio di script freeware progettato per automatizzare la GUI di Windows e gli script generali.
Se scegli di usarlo, il codice AutoIt per le tue esigenze sarebbe un 2-liner:
RegDelete("YourKey", "YourValue");
ShutDown(1);
E puoi compilarlo in un exe autonomo che può essere eseguito su qualsiasi computer (non è necessaria alcuna libreria di runtime)