Programm wird nicht über den Registrierungs-Ausführungsschlüssel gestartet

Programm wird nicht über den Registrierungs-Ausführungsschlüssel gestartet

Ich habe ein Programm, das ich mithilfe eines NSIS-Skripts installiere. Der letzte Schritt im Installationsprogramm besteht darin, in den Registrierungsschlüssel „Run“ zu schreiben und das Programm beim Start auszuführen. Ich habe dies unter

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run 

existiert der Schlüssel

MyCompany Program - C:\MyCompany\Program\launch.vbs

Ich habe den Schlüssel mit und ohne Anführungszeichen ausprobiert, aber es gab keine Wirkung. Ich habe bestätigt, dass die Registrierung von CurrentVersion\Run liest, indem ich hinzugefügt habe

Notepad - C:\windows\notepad.exe

und Notepad wird jetzt beim Start gestartet. Das Skript launch.vbs ist ein Einzeiler zum Starten eines Skripts ohne das cmd.exe-Fenster:

'HideBat.vbs from https://superuser.com/questions/140047/how-to-run-a-batch-file-without-launching-a-command-window
CreateObject("Wscript.Shell").Run "cmd /c " & chr(34) & "C:\MyCompany\Program\run.cmd " & chr(34), 0, True

Ich habe bestätigt, dass der Aufruf von launch.vbs aus einem Explorer-Fenster oder von cmd.exe wie erwartet funktioniert (Starten meines Programms). msconfig bestätigt, dass C:\MyCompany\Program\launch.vbs in der Registerkarte „Start“ aufgeführt ist. Die Registerkarte „Sicherheit“ der Dateieigenschaften gibt an, dass alle Benutzer Lese- und Ausführungsrechte haben sollten. Das Gleiche gilt für den tatsächlichen Aufruf von run.cmd.

An diesem Punkt bin ich ratlos, warum mein Programm nicht gestartet wird, und ich kann mir keine effiziente Möglichkeit zum Debuggen vorstellen.

Als System wird Windows 7 Professional 64-Bit verwendet.

Antwort1

Mithilfe von LPChip habe ich mit dem Debuggen der Messagebox begonnen und festgestellt, dass das Skript zwar gestartet wurde, aber einen Fehler verursachte. Ich habe launch.vbs aktualisiert auf

CreateObject("Wscript.Shell").Run "cmd /k " & chr(34) & "C:\MyCompany\Program\run.cmd " & chr(34), 1, True

(Beachten Sie /k, um das Fenster aktiv zu halten, und 1, um es anzuzeigen). Von da an war klar, dass Java nicht auf dem Klassenpfad für Skripte festgelegt ist, die über CurrentVersion\Run gestartet werden. Das Problem wurde gelöst, indem der Pfad zu Java (den unsere Clients ohnehin verwenden müssen) in run.cmd fest codiert wurde.

verwandte Informationen