1

Ich habe eine Chrome-Erweiterung, die mit einem nativen Messaging-Host kommuniziert, um Daten zu erhalten.Fehler beim Starten des nativen Messaging-Hosts unter Windows, "COMSPEC ist nicht festgelegt"

Das Problem ist, wenn ich den Chrome-Browser über die Verknüpfung oder über die angeheftete Verknüpfung in der Taskleiste starten, kann die Erweiterung keine Verbindung zum Host herstellen. Ich habe immer den Fehler:

Failed to start native messaging host.

Wenn ich jedoch die chrome.exe über Eingabeaufforderung starten, funktioniert alles einwandfrei.

Dinge, die ich ohne Erfolg versucht:

  • Die Taskleiste Verknüpfung hat keine zusätzlichen Flags. Das Zielfeld hat den folgenden Wert: "C:\Program Files(x86)\Google\Chrome\Application\chrome.exe"
  • ich mit der Registrierung versucht, unter HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Google\Chrome\NativeMessagingHosts\com.company.extension
  • ich mit der Registrierung versucht, unter HKEY_LOCAL_MACHINE\SOFTWARE\Google\Chrome\NativeMessagingHosts\com.company.extension
  • ich mit dem Registrierungseintrag versucht, unter HKEY_CURRENT_USER\Software\Google\Chrome\NativeMessagingHosts\com.company.extension
  • versucht, die crome.exe startete als Administrator aus dem Datei-Explorer.

Update:

ich die Fahne --enable-logging --v=1 für die Verknüpfung, die Protokollierung zu aktivieren hinzugefügt und wenn ich es starten erhalte ich die folgende Ausgabe in der Konsole:

[11036:4160:0302/113902.866:ERROR:native_process_launcher_win.cc(140)] COMSPEC is not set 
[11036:11856:0302/113902.882:ERROR:native_process_launcher_win.cc(140)] COMSPEC is not set 

aktualisieren

Nach Untersuchung der chrome.exe Prozess über Process Monitor, ich fou nd dass es keine Umgebungsvariable COMSPEC gibt, die verfügbar ist, wenn sie über explorer erzeugt wird.

Gibt es noch etwas, das ich versuchen kann oder etwas, das ich hier vermisse?

+0

Dieser Fehler bedeutet, Chrome zumindest die (https://cs.chromium.org/chromium/src/chrome/browser/extensions/api/messaging/native_message_process_host.cc?l=114&rcl=c463181850479e23e89ebd766fbe1fa2990d9d51) [zu starten versucht] Host, so dass Sie etwas in Zusammenhang mit 'Process Create' in [procmon] (https://technet.microsoft.com/en-us/sysinternals/processmonitor.aspx) sehen können. – wOxxOm

+0

Man sollte auch [Chrome Protokolle aktivieren und untersuchen] (https://www.chromium.org/for-testers/enable-logging). Möglicher Gedanke: Was eine Abkürzung ändert, ist das Arbeitsverzeichnis. – Xan

+0

@Xan Ja Ich habe einen Fehler in der Konsole durch Hinzufügen der Protokollierungsflags. Ich habe die Frage mit dem Fehler aktualisiert. –

Antwort

1

Wie im Protokoll erwähnt, Chrome stolpert einen externen Prozess zu starten, da COMSPEC, ein environment variable pointing normally to cmd, ist nicht gesetzt:

[11036:4160:0302/113902.866:ERROR:native_process_launcher_win.cc(140)] COMSPEC is not set 

Das Verhalten unterscheidet sich für den Start Chrome von cmd selbst, da sie die Variable setzt für sich selbst (und erzeugte Prozesse).

Dies kann durch Überprüfen des Chrome-Prozesses mit Process Explorer bestätigt werden.

Man kann rundll32 sysdm.cpl,EditEnvironmentVariables als admin (z. B. von der Admin-Befehlszeile) ausführen, um die Umgebungsvariableneinstellungen zu öffnen.
Alternativ kann der Dialog über Systemsteuerung> System und Sicherheit> System> Erweiterte Systemeinstellungen> Erweitert> Umgebungsvariablen ... aufgerufen werden.

ComSpec ist in der Regel in Systemvariablen zu

C:\WINDOWS\system32\cmd.exe 

Passen Sie nach Bedarf für Ihr System installieren gesetzt. Damit diese Einstellung angewendet wird, müssen Sie sich abmelden und erneut anmelden oder besser noch das System neu starten.

Verwandte Themen