Nightly builds wie in portable Version einspielen?

Bernd.W
Beiträge: 41
Registriert: Mi 3. Mär 2021, 16:14

Nightly builds wie in portable Version einspielen?

Beitrag von Bernd.W »

Hallo icke1954,

ich ärgere mich weiterhin mit dem Synchronisationsproblem mit dem portable Thunderbird herum. Die Synchronisation klappt wenn überhaupt nur, wenn ich zuerst MPE starte, synchronisiere und MPE dann in diesem Zuge Thunderbird aufruft. Auch dann klappt es nicht bei ersten Mal, aber meist nach mehrmaligen Wiederholen der Synchronisation. Auch warten hilft. Sonst bekomme ich immer die Fehlermeldung: "Einträge konnten nicht aus Thunderbird gelesen werden."

Das Problem liegt wohl an der zu niedrigen Timeout-Zeit. Abhilfe soll wohl der aktuelle nightly build bringen. Da ich aber auch MPE portable nutze, bekomme ich bei der Installation des nightly builds immer die Fehlermeldung: “Install-Location of MyPhoneExplorer not found!”.

Das Problem macht den MPE derzeit fast unbenutzbar für mich, da ich es immer wieder mit dem Sync versuchen muss. Es dauert oft eine halbe Stunde bis der Zugriff auf Thunderbird gelingt. Manchmal klappt es auch gar nicht.

Hier nun meine Fragen:

1. Wie kann ich den nightly build manuell in die portable Version einspielen?
2. Falls das nicht geht, könntet ihr auch ein nigthly build der portablen Version veröffentlichen? Ich hoffe bereits seit Wochen, dass es eine neue offizielle Version veröffentlicht wird, die mir den Bugfix zugänglich macht.
3. Finde ich unter: https://www.fjsoft.at/files/MyPhoneExpl ... Update.exe immer den jeweils aktuellen Nightly?

Viele Dank schon mal! Gruß Bernd

Mein System
MPE v1.9.0 portable (KEIN Nightly)
Thunderbird v91.4.0 x32
MPE-Thunderbird-Addon 3.0.18 /08.12.2021
MPE-Client 2.3
icke1954
Moderator
Beiträge: 18155
Registriert: Sa 19. Apr 2014, 10:35

Beitrag von icke1954 »

Die Portable-Version ist, wie Du schon selbst bemerkt hast, nur über die MPE-Standandardversion installierbar.
Daran wird sich auch nichts ändern.
D.h. zu deinen Fragen 1. + 2. => Nein
Zu 3. Ja, korrekt, hier findest Du immer die aktuellste Nightly, die Du nicht grundlos einfach installieren solltest...

Ich kann das von Dir beschriebene Problem reproduzieren und leite es an FJ weiter.
Bernd.W
Beiträge: 41
Registriert: Mi 3. Mär 2021, 16:14

Beitrag von Bernd.W »

Danke für die schnelle Rückmeldung und das Weiterleiten an FJ!

Das die portable Version hinten ansteht, habe ich mir schon gedacht. Ist ja auch in den allermeisten Fällen nicht notwendig, diese parallel zu testen.

Das MPE-Thunderbird-Addon 3.0.18 macht in diesem Zusammenspiel auch weiterhin bei mir Ärger. Keiner der drei Menüpunkte des Dropdown-Menüs startet die Synchronisation. Ich vermute es liegt ebenfalls an dem obigen Problem. Aber das ist aus meiner Sicht nachrangig, es wäre schon großartig, wenn wieder ein Weg der Synchronisation funktioniert.
icke1954
Moderator
Beiträge: 18155
Registriert: Sa 19. Apr 2014, 10:35

Beitrag von icke1954 »

Wie schon erwähnt konnte ich folgendes reproduzieren:
Wird der Sync über MPE aktiviert, ohne zuvor TB gestartet zu haben…
- Funktioniert der Sync Problemlos, wenn sich TB-Portable auf der Festplatte befindet
- Ist TB auf einem USB-Stick installiert, kommt es 1 mal zu einer Fehlermeldung, da der Zugriff schneller erfolgt, als TB geladen werden kann. Aber der 2. Versuch, nachdem TB vollständig gestartet wurde, ist bei mir immer erfolgreich
- Wurde zuvor TB gestartet, kommt es z.Z. immer zu der beschriebenen Fehlermeldung.
Bernd.W hat geschrieben:Das MPE-Thunderbird-Addon 3.0.18 macht in diesem Zusammenspiel auch weiterhin bei mir Ärger. Keiner der drei Menüpunkte des Dropdown-Menüs startet die Synchronisation.
Das kann ich bei mir nicht reproduzieren, der Sync sollte angestoßen werden.
Fall-1: Du hattest Tb über MPE schon aufgerufen, dann sollte der Sync per AddOn-Button auch funktionieren
Fall-2: MPE wird von TB aufgerufen, dann kommt besagte Fehlermeldung bei mir.
Bernd.W
Beiträge: 41
Registriert: Mi 3. Mär 2021, 16:14

Beitrag von Bernd.W »

icke1954 hat geschrieben:Wie schon erwähnt konnte ich folgendes reproduzieren:
Wird der Sync über MPE aktiviert, ohne zuvor TB gestartet zu haben…
- Funktioniert der Sync Problemlos, wenn sich TB-Portable auf der Festplatte befindet
- Ist TB auf einem USB-Stick installiert, kommt es 1 mal zu einer Fehlermeldung, da der Zugriff schneller erfolgt, als TB geladen werden kann. Aber der 2. Versuch, nachdem TB vollständig gestartet wurde, ist bei mir immer erfolgreich
- Wurde zuvor TB gestartet, kommt es z.Z. immer zu der beschriebenen Fehlermeldung.
Ich denke, dass grenzt das Problem schon ein. Ich arbeite über eine externe USB3 HDD. Auf dieser laufen noch eine ganze Reihe anderer portable Programme, was möglicherweise die Zugriffzeit weiter erhöht (und dazu führt, dass bei mir der Fehler noch stärker auftritt). Das erscheint mir zumindest als ein mögliches konsistentes Bild.
icke1954 hat geschrieben:
Bernd.W hat geschrieben:Das MPE-Thunderbird-Addon 3.0.18 macht in diesem Zusammenspiel auch weiterhin bei mir Ärger. Keiner der drei Menüpunkte des Dropdown-Menüs startet die Synchronisation.
Das kann ich bei mir nicht reproduzieren, der Sync sollte angestoßen werden.
Fall-1: Du hattest Tb über MPE schon aufgerufen, dann sollte der Sync per AddOn-Button auch funktionieren
Fall-2: MPE wird von TB aufgerufen, dann kommt besagte Fehlermeldung bei mir.
Fall-1 funktioniert bei mir leider nicht. Zudem tritt bei mir noch ein weiterer Artefakt auf: Der Symbol-Button MyPhoneExplorer ist doppelt vorhanden (Rechter Mausklick auf Toolbar > Customize > icon in Toolbar ziehen). Ich kann beide Einträge auch in die Toolbar legen. Einer funktioniert überhaupt nicht. Der andere zeigt zwar das Drop-Down-Menü mit drei Einträgen an, welche aber alle keine Funktion haben.

Ich habe zudem folgende Fehlermeldung in der Firefox Error-Console:
ExtensionError: No such native application myphoneexplorer.extension ExtensionUtils.jsm:58:5
ExtensionError resource://gre/modules/ExtensionUtils.jsm:58
startupPromise resource://gre/modules/NativeMessaging.jsm:83
Bernd.W
Beiträge: 41
Registriert: Mi 3. Mär 2021, 16:14

Beitrag von Bernd.W »

So bei der erneuten Fehlersuche habe ich zumindest die doppelten Icon-Buttons rausbekommen. Ich habe das MPE-Thunderbird-Addon 3.0.18 /08.12.2021 deinstalliert. Anders als sonst habe ich Thunderbird nicht selbst neu gestartet, sondern Thunderbird geschlossen und über MPE gestartet. Da bekam ich den Hinweis, dass MPE-Thunderbird-Addon nicht installiert sei und installieren müsse. Dann eine zweite Meldung in Thunderbird, ich solle das MPE-Thunderbird-Addon aktivieren. Das habe ich gemacht. Dann hatte ich wieder die Version MPE-Thunderbird-Addon 3.0.17 /04.10.2021 installiert. Wieso? Weshalb? Keine Ahnung.

Ich vermute fast, dass durch den Download und die manuelle Installation von MPE-Thunderbird-Addon 3.0.18 /08.12.2021 diese parallel zu Versionen MPE-Thunderbird-Addon 3.0.17 /04.10.2021 installiert war.

Thunderbird hat dann die neueste Version des MPE-Thunderbird-Addons dann geupdatet und so nun die Version 3.0.19 /17.12.2021 installiert.

Leider hat das Drop-Down-Menü weiterhin keine Funktion.

Nachtrag:
Nach mehrmaligen testen, hatte ich einmal keinen Eintrag in der Error-Console. Just in diesem Moment funktionierte die Synchronisation mit allen drei Einträgen des Drop-Down-Menüs.

Weiterer Neustart und wieder alles wie gehabt. Wieder die Fehlermeldung
ExtensionError: No such native application myphoneexplorer.extension ExtensionUtils.jsm:58:5
ExtensionError resource://gre/modules/ExtensionUtils.jsm:58
startupPromise resource://gre/modules/NativeMessaging.jsm:83

und die Einträgen des Drop-Down-Menüs reagieren überhaupt nicht. Dies scheint übrigens 1:1 Mit der Fehlermeldung aus MPE "Einträge konnten nicht aus Thunderbird gelesen werden! "zu korrespondieren. Entweder geht beides oder keines.

Ich hoffe, dass hilft bei der Fehlersuche.
icke1954
Moderator
Beiträge: 18155
Registriert: Sa 19. Apr 2014, 10:35

Beitrag von icke1954 »

Danke für die Infos, warten wir es jetzt erst einmal ab, was FJ dazu sagt :wink:
FJ
Site Admin
Beiträge: 32106
Registriert: Mi 15. Feb 2006, 01:16
Wohnort: Tirol
Kontaktdaten:

Beitrag von FJ »

Damit man den regulären Vorgang versteht ein paar Hintegrundinfos:
- ein NativeMessagingHost ist dafür da damit ein Mozilla-Addon mit anderen Prozessen kommunizieren kann
- damit der Host geladen wird muss beim Start von Thunderbird ein entsprechender Eintrag in der Registry gesetzt werden unter HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\NativeMessagingHosts
- da eine portable Anwendung ja keine Spuren hinterlassen soll und sich der Pfad der Anwendung ja theoretisch ändern könnte setzt MyPhoneExplorer den Eintrag erst direkt vor dem Sync und löscht ihn dann wieder (übrigens beim weniger problematischen Schlüssel HKEY_CURRENT_USER\SOFTWARE\Mozilla\NativeMessagingHosts) - nach dem Sync wird er wieder gelöscht

Das ist auch der Grund warum es nur funktioniert wenn MyPhoneExplorer Thunderbird durch den Sync startet. Nur dann wird die Schnittstelle von Thunderbird geladen weil nur dann der entsprechende Schlüssel in der Registry gespeichert ist. Ich weiß das ist eine ungute Situation, aber ich wüsste nicht wie ich es derzeit besser lösen könnte - also für alle User. Wenn du dir sicher bist dass die MyPhoneExplorer portable.exe immer im selben Ordner liegt dann leg folgenden Schlüssel in der Registry an:

Code: Alles auswählen

HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\NativeMessagingHosts\myphoneexplorer.extension
Als Wert gibst du ihm den Pfad zur myphoneexplorer.extension.json - Datei an die im Ordner DLL liegt, z.B.:

Code: Alles auswählen

C:\Users\FJ\Desktop\MyPhoneExplorer portable\DLL\myphoneexplorer.extension.json
Du kannst überprüfen ob Thundebird die Schnittstelle geladen hat indem du den Taskmanager öffnest, das Ganze sollte dann so aussehen:
Bild
Ich bitte um Verständnis daß ich aufgrund des hohen Aufkommens im Forum und meines zeitlichen Rahmens nichtmehr jeden Thread im Forum persönlich lesen bzw. beantworten kann.

Bitte benutzt auch die Forum-Suche bzw. die FAQ
icke1954
Moderator
Beiträge: 18155
Registriert: Sa 19. Apr 2014, 10:35

Beitrag von icke1954 »

@FJ Danke für die Informationen!
Funktioniert mit dem entsprechenden Eintrag in der Registry, jetzt auch über den USB-Stick, problemlos :D

Gruß icke
Bernd.W
Beiträge: 41
Registriert: Mi 3. Mär 2021, 16:14

Beitrag von Bernd.W »

Das ist auch der Grund, warum es nur funktioniert, wenn MyPhoneExplorer Thunderbird durch den Sync startet. Nur dann wird die Schnittstelle von Thunderbird geladen, weil nur dann der entsprechende Schlüssel in der Registry gespeichert ist. Ich weiß das ist eine ungute Situation, aber ich wüsste nicht, wie ich es derzeit besser lösen könnte - also für alle User. Wenn du dir sicher bist dass die MyPhoneExplorer portable.exe immer im selben Ordner liegt dann leg folgenden Schlüssel in der Registry an:

Also ich habe nun fleißig getestet. Die gute Nachricht. Gerade läuft es bei mir. Allerdings verstehe ich nicht, warum der Thunderbird-Prozess über MPE gestartet werden muss. Denn in beiden Fällen werden die Registry-Einträge zuverlässig von MPE unter HKEY_CURRENT_USER\SOFTWARE\Mozilla\NativeMessagingHosts gesetzt. Der Eintrag führt bei mir immer zum korrekten Pfad unter\MyPhoneExplorer portable\DLL\myphoneexplorer.extension.json. Das kann also nicht der Grund sein. Am Ende der erfolgreichen oder auch nicht erfolgreichen Synchronisation wird dieser wieder ordnungsgemäß gelöscht. Das ist im Sine von portable Apps keine schöne Lösung (da nicht Stealth) aber doch eine solider Workaround.

Möglicherweise spielt es eine Rolle, dass wenn Thunderbird über MPE gestartet wird, Thunderbird.exe mehrmals als Unterprozesse von MPE auftaucht und damit über andere Rechte verfügt?

Bild


Nachdem ich den Schlüssel unter HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\NativeMessagingHosts hinzugefügt getestet und dann wieder gelöscht habe funktioniert auch die automatisierte Lösung mittels HKEY_CURRENT_USER\SOFTWARE\Mozilla\NativeMessagingHosts.

Allerdings manchmal erst beim dritten oder vierten Versuch. Allerdings muss ich nicht mehr eine halbe Stunde probieren, bis es funktioniert.

Kurzum: Es scheint kein prinzipielles Problem damit zu geben, wo der Eintrag in der Registry steht. Portable Thunderbird ist in der Lage, diesen sowohl unter HKEY_LOCAL_MACHINE sowie unter HKEY_CURRENT_USER auszulesen. Dass es bei mir nicht beim ersten Mal klappt, könnte darauf hindeuten, dass der Eintrag noch nicht in HKEY_CURRENT_USER geschrieben wird. Vielleicht sollte dort ein Timeout von zusätzlichen 500 oder 1000 Millisekunden vor den ersten Synchronisationsversuch eingefügt werden, um das Problem zu verbessern (oder bei Misserfolg ein zweiter Versuch erfolgen, bevor der Key gelöscht wird).

Das NativeMessaging nur über die Registry angesprochen werden können, ist ja ein Bug von portable Firefox/Thunderbird. Diese Konfiguration gehört ja bei portable Programmen klassisch in eine Ini- oder XML-Datei als Basiskonfiguration.

Vielen, vielen Dank für Eure Hilfe und Support!
Zuletzt geändert von Bernd.W am Di 28. Dez 2021, 12:39, insgesamt 1-mal geändert.
icke1954
Moderator
Beiträge: 18155
Registriert: Sa 19. Apr 2014, 10:35

Beitrag von icke1954 »

Bernd.W hat geschrieben:Allerdings verstehe ich nicht, warum der Thunderbird-Prozess über MPE gestartet werden muss. Denn in beiden Fällen werden die Registry-Einträge zuverlässig von MPE unter HKEY_CURRENT_USER\SOFTWARE\Mozilla\NativeMessagingHosts gesetzt.
Weil Thunderbird bei der portablen Version nicht wissen kann, wo sich MPE befindet und beim Start diese Information schon benötigt.
Richtig ist, dass das an Thunderbird liegt und in den Vorversionen es anders war, nämlich genau umgekehrt. Man musste Thunderbird erst starten, damit MPE wusste wo der sich befand.
Bernd.W hat geschrieben:Es scheint kein prinzipielles Problem damit zu geben, wo der Eintrag in der Registry steht. Portable Thunderbird ist in der Lage, diesen sowohl unter HKEY_LOCAL_MACHINE sowie unter auszulesen
Ja logisch, sonst hatte das FJ das ja nicht als Workaround vorgeschlagen :roll:
Der Unterschied bei den beiden Eintragungen besteht darin, dass bei gesetztem Eintrag unter HKEY_LOCAL_MACHINE, die Verbindung gleich beim ersten mal funktionieren sollte.
Bernd.W
Beiträge: 41
Registriert: Mi 3. Mär 2021, 16:14

Beitrag von Bernd.W »

Danke für die Klarstellung icke1954!
icke1954 hat geschrieben:
Bernd.W hat geschrieben:Allerdings verstehe ich nicht, warum der Thunderbird-Prozess über MPE gestartet werden muss. Denn in beiden Fällen werden die Registry-Einträge zuverlässig von MPE unter HKEY_CURRENT_USER\SOFTWARE\Mozilla\NativeMessagingHosts gesetzt.
Weil Thunderbird bei der portablen Version nicht wissen kann, wo sich MPE befindet und beim Start diese Information schon benötigt.
Richtig ist, dass das an Thunderbird liegt und in den Vorversionen es anders war, nämlich genau umgekehrt. Man musste Thunderbird erst starten, damit MPE wusste wo der sich befand.
Bernd.W hat geschrieben:Es scheint kein prinzipielles Problem damit zu geben, wo der Eintrag in der Registry steht. Portable Thunderbird ist in der Lage, diesen sowohl unter HKEY_LOCAL_MACHINE sowie unter auszulesen
Ja logisch, sonst hatte das FJ das ja nicht als Workaround vorgeschlagen :roll:
Der Unterschied bei den beiden Eintragungen besteht darin, dass bei gesetztem Eintrag unter HKEY_LOCAL_MACHINE, die Verbindung gleich beim ersten mal funktionieren sollte.
Die entscheidende Frage ist ja, warum sollte / funktioniert es hier beim ersten Mal. Wenn es egal ist, ob die Information aus HKEY_LOCAL_MACHINE oder HKEY_CURRENT_USER gelesen wird (Ich weiß nicht ob dies Thunderbird "native" macht oder es durch das MPE-Thunderbird-Addon erfolgt), dann liegt es wohl daran, dass der Registry Eintrag zu spät bereit steht. Zumindest im zweiten Falle (Auslesen des Registry Eintrags erfolgt durch das MPE-Thunderbird-Addon), könnte eine entsprechende Wartezeit ergänzt werden, um das Problem zu beheben.
FJ hat Folgendes geschrieben: hat geschrieben:da eine portable Anwendung ja keine Spuren hinterlassen soll und sich der Pfad der Anwendung ja theoretisch ändern könnte setzt MyPhoneExplorer den Eintrag erst direkt vor dem Sync und löscht ihn dann wieder (übrigens beim weniger problematischen Schlüssel HKEY_CURRENT_USER\SOFTWARE\Mozilla\NativeMessagingHosts) - nach dem Sync wird er wieder gelöscht
Das ist aus meiner Sicht der derzeit einzige praktikable Workaround im Sinne einer portable Ansatzes. Wenn sich das Auslesen unter HKEY_CURRENT_USER nicht durch eine vorgeschaltete Wartezeit verbessern lässt, sollte der temporäre Ansatz auch für den Registry-Eintrag unter HKEY_LOCAL_MACHINE gewählt werden. Die Eintragung bzw. Löschung könnte auch beim Start bzw. Ende von MPE erfolgen.

Die derzeitige Lösung mit der manuellen Eintragung des Schlüssel ist wirklich unschön. Wenn man auf wechselnden Systemen arbeitet und/oder auf Systemen, die sich nach dem herunterfahren zurücksetzen. Auch wenn der externe Datenträger mit MPE und Thunderbird einen anderen Laufwerksbuchstaben zugewiesen bekommt, klappt es nicht mehr. In allen Fällen, muss der Registry-Eintrag manuell korrigiert werden.

Wäre toll, wenn sich FJ dem nochmal in Zukunft annehmen und prüfen könnte, ob eine Anpassung im Sinne der portable Programmierung umgesetzt werden kann.

Mit dem NativeMessage-Umsetzung bei Mozilla ärgern sich auch andere herum. Es scheint so, als wäre der portable Mode nicht mitbedacht worden.
icke1954
Moderator
Beiträge: 18155
Registriert: Sa 19. Apr 2014, 10:35

Beitrag von icke1954 »

Ich habe Dir einen Script für eine VBS-Datei (*.vbs) erstellt:

Code: Alles auswählen

Pfad_TB="\Thunderbird\ThunderbirdPortable.exe"
Pfad_MPE="\MPE\MyPhoneExplorer_Portable"
Pausenzeit=20000
'***************************************************************************
Set objNet = CreateObject("WScript.NetWork") 
Set WshShell = WScript.CreateObject("Wscript.Shell")
WshShell.RegWrite "HKLM\SOFTWARE\Mozilla\NativeMessagingHosts\myphoneexplorer.extension\", Pfad_MPE & "\DLL\myphoneexplorer.extension.json", "REG_SZ"
WshShell.Run(Pfad_TB)
WScript.sleep Pausenzeit
WshShell.Run(Pfad_MPE & "\MyPhoneExplorer_portable.exe") 
Set WshShell = Nothing 
Du musst nur den Pfad_TB, Pfad_MPE und u.U. die Pausenzeit anpassen
Das Tool realisiert folgendes:
1. Registryeintrag in HKLM setzen
2. Start TB
3. 20 sek Pause
4. Start MPE
Bernd.W
Beiträge: 41
Registriert: Mi 3. Mär 2021, 16:14

Beitrag von Bernd.W »

icke1954 hat geschrieben:Ich habe Dir einen Script für eine VBS-Datei (*.vbs) erstellt:

Code: Alles auswählen

Pfad_TB="\Thunderbird\ThunderbirdPortable.exe"
Pfad_MPE="\MPE\MyPhoneExplorer_Portable"
Pausenzeit=20000
'***************************************************************************
Set objNet = CreateObject("WScript.NetWork") 
Set WshShell = WScript.CreateObject("Wscript.Shell")
WshShell.RegWrite "HKLM\SOFTWARE\Mozilla\NativeMessagingHosts\myphoneexplorer.extension", Pfad_MPE & "\DLL\myphoneexplorer.extension.json", "REG_SZ"
WshShell.Run(Pfad_TB)
WScript.sleep Pausenzeit
WshShell.Run(Pfad_MPE & "\MyPhoneExplorer_portable.exe") 
Set WshShell = Nothing 
Du musst nur den Pfad_TB, Pfad_MPE und u.U. die Pausenzeit anpassen
Das Tool realisiert folgendes:
1. Registryeintrag in HKLM setzen
2. Start TB
3. 20 sek Pause
4. Start MPE
Vielen, vielen Dank icke1954 für Dein Skript und die Korrekturen. Ich war bereits auf Fehlersuche. Allerdings funktioniert bei mir das Skript immer noch nicht. Ich bekomme folgende Fehlermeldung:

Zeile: 6; Zeichen: 1
Fehler: Ungültige Wurzel in Registrierungsschlüssel "".
Code: 80070005
Quelle: WshShell.RegWrite

Gehe ich richtig in der Annahme, dass der Pfad von Thunderbird nicht wie oben relativ sein darf? Darf der MPE-Pfad relativ sein, wenn ich das VBS-Skript in das Root-Verzeichnis von MPE lege?


Ab davon ist mir noch eine Idee gekommen. Kann es sein, dass mein Problem in dem Zusammenspiel von der 32Bit und 64Bit Versionen von Thunderbird und MPE entsteht? Mein Thunderbird ist eine 32Bit-Version und läuft meist auf einem Windows 64Bit System (auf dem ich auch immer getestet habe).

Werden Registry-Einträge unter HKLM\SOFTWARE bei 32Bit-Version nicht über WOW6432Node geleitet? Sucht also meine 32Bit-Version vielleicht unter HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Mozilla\NativeMessagingHosts und findet daher nicht die Einträge von MPE unter HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\NativeMessagingHosts.

Ich denke das wird nicht die Ursache sein, denn zuweilen hat es ja funktioniert und MPE schaffte es sich mit Thunderbird zu synchronisieren. Aber ich wollte diesen Gedanken doch mal reinwerfen.
icke1954
Moderator
Beiträge: 18155
Registriert: Sa 19. Apr 2014, 10:35

Beitrag von icke1954 »

Bernd.W hat geschrieben:Fehler: Ungültige Wurzel in Registrierungsschlüssel
Ja, in der Tat scheint bei den meisten aktuellen Systemen ein HKLM-Eintrag mittels VBS problematisch zu sein, ich habe für das Problem "Ungültige Wurzel in Registrierungsschlüssel" bisher keine Lösung gefunden ?!

Bezüglich
1.HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Mozilla\NativeMessagingHosts
2.HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\NativeMessagingHosts
Wenn ein Pfad unter 1. gesetzt wurde, wird der auch vorrangig genutzt.
Wurde unter 1. kein Pfad gesetzt, nimmt sich bei mir TB den aus 2.
Bernd.W hat geschrieben:Darf der MPE-Pfad relativ sein, wenn ich das VBS-Skript in das Root-Verzeichnis von MPE lege?
Ja, bei mir funktioniert es problemlos :D
icke1954
Moderator
Beiträge: 18155
Registriert: Sa 19. Apr 2014, 10:35

Beitrag von icke1954 »

Ich habe Dir eine E-Mail zukommen lassen

Gruß icke
Bernd.W
Beiträge: 41
Registriert: Mi 3. Mär 2021, 16:14

Beitrag von Bernd.W »

Hallo icke1954,

Deine Email ist angekommen. Vielen Dank für Deine Unterstützung. Das ist wirklich toller Support!

Die Lösung trägt, auch wenn diese weit von portable App Gedanken weg ist, da man nun aufgrund des HKLM Eintrags Adminrechte benötigt.

Ich habe nun nochmal systematisch alle Varianten durchgetestet. Dabei stellt sich mir folgendes Bild dar:

1. Entscheidend ist der Registry-Eintrag unter HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\NativeMessagingHosts\myphoneexplorer.extension

2. Der Registry-Eintrag muss bereits vor dem Start von Thunderbird existieren. Sonst klappt es bei mir nicht. Anscheinend stellt Thunderbird die NativeMessaging-Schnittstelle beim Start bereit. (Nach erfolgreichen Sync kann der Eintrag gelöscht werden und der Sync klappt weiter).

3. Es ist (mit obiger Konfiguration) egal, ob ich zuerst MPE oder Thunderbird starte. Im ersten Fall läuft Thunderbird als als Child-Prozess von MPE. Im zweiten der MozillaConnector als Child-Prozess von Thunderbird. Beides funktioniert.

4. Bei beiden Varianten schlägt bei mir der erste Synchronisationsversuch immer fehl (egal wie lange ich zwischenzeitlich warte). Der zweite klappt in etwa 90% der Fälle. Der dritte in dieser Konfiguration klappt wohl immer.

Thunderbird liest offensichtlich den Eintrag HKEY_CURRENT_USER\SOFTWARE\Mozilla\NativeMessagingHosts nicht. Ein Timeout-Problem habe ich versucht auszuschließen, indem ich den Eintrag bereits vor Synchronisation manuell gesetzt habe, was aber zu keinem Erfolg führt.
Seltsam ist, dass es zuweilen bei mir auch ohne den Registry-Eintrag unter HKEY_CURRENT_USER geklappt hatte. Eventuell war das immer nach Neu-Installation oder Update des MPE-Thunderbird-Addons? Wird da auch ein Eintrag vorgenommen?

Insgesamt habe ich den Eindruck, dass Mozilla seine Spezifikationen nicht umsetzt. Oder aber es liegt am MPE-Thunderbird-Plugin, dass es einen Unterschied macht, je nachdem wo der Schlüssel aus der Registry ausgelesen wird. Ich vermute aber ersteres.

Zur Doku mal die entsprechenden Referenzen:
https://wiki.mozilla.org/WebExtensions/Native_Messaging
https://developer.mozilla.org/en-US/doc ... _messaginghttps://developer.mozilla.org/en-US/doc ... _manifests
https://bugzilla.mozilla.org/show_bug.c ... 190682#c37
icke1954
Moderator
Beiträge: 18155
Registriert: Sa 19. Apr 2014, 10:35

Beitrag von icke1954 »

Bernd.W hat geschrieben:Die Lösung trägt, auch wenn diese weit von portable App Gedanken weg ist, da man nun aufgrund des HKLM Eintrags Adminrechte benötigt.
Hmm, bedeutet das, es funktioniert, wenn auch nur mit Adminrechten ?

Zu 1. Das ist bei mir reproduzierbar nur der Fall, wenn der Pfad in HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Mozilla\NativeMessagingHosts nicht gesetzt wurde, nur dann holt sich TB den Pfad aus HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\NativeMessagingHosts\myphoneexplorer.extension.
Übrigens bei jedem MPE-Update wird der Inhalt beider Reg-Pfade auf "C:\Program Files (x86)\MyPhoneExplorer\DLL\myphoneexplorer.extension.json" gesetzt, hat bisher niemanden gestört :roll:

Zu 2. Ja korrekt

Zu 3. Ja korrekt, aber wenn ich TB auf einem USB-Stick von MPE starten lasse, kommt es beim ersten mal zu besagter Fehlermeldung

Zu 4. Das kann ich nur teilweise bestätigen, oder wir sprechen von verschiedenen 2 Varianten ?
Bei mir funktioniert der Sync immer schon beim ersten Mal, wenn der korrekte Eintrag unter HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Mozilla\NativeMessaging gesetzt ist und TB vor dem Sync gestartet wurde (siehe 1. und 2.).
icke1954
Moderator
Beiträge: 18155
Registriert: Sa 19. Apr 2014, 10:35

Beitrag von icke1954 »

Habe jetzt auch eine Möglichkeit gefunden mittels VBS-Script in die Registry zu schreiben

Code: Alles auswählen

Pfad_TB="F:\Thunderbird\ThunderbirdPortable.exe"
Pfad_MPE="F:\MPE\MyPhoneExplorer_Portable\MyPhoneExplorer_portable.exe"
MPE_Extensions="\MPE\MyPhoneExplorer_Portable\DLL\myphoneexplorer.extension.json"
Pausenzeit=20000
'***************************************************************************
If Not WScript.Arguments.Named.Exists("elevate") Then
 CreateObject("Shell.Application").ShellExecute WScript.FullName _
 , """" & WScript.ScriptFullName & """ /elevate", "", "runas", 1
 WScript.Quit
End If

Set objNet = CreateObject("WScript.NetWork") 
Set WshShell = WScript.CreateObject("Wscript.Shell")

WshShell.RegWrite "HKLM\SOFTWARE\WOW6432Node\Mozilla\NativeMessagingHosts\myphoneexplorer.extension\", MPE_Extensions, "REG_SZ"
WshShell.Run([Pfad_TB])
WScript.sleep Pausenzeit
WshShell.Run([Pfad_MPE]) 
Set WshShell = Nothing
Bernd.W
Beiträge: 41
Registriert: Mi 3. Mär 2021, 16:14

Beitrag von Bernd.W »

icke1954 hat geschrieben:
Bernd.W hat geschrieben:Die Lösung trägt, auch wenn diese weit von portable App Gedanken weg ist, da man nun aufgrund des HKLM Eintrags Adminrechte benötigt.
Hmm, bedeutet das, es funktioniert, wenn auch nur mit Adminrechten ?
Exakt, so war das gemeint. Ein klassischer Fall von portable Apps, sind Nutzer, die keine Admirechte haben (z.B. im Unternehmen, an der Uni, in Internet-Cafes, …)
icke1954 hat geschrieben: Zu 1. Das ist bei mir reproduzierbar nur der Fall, wenn der Pfad in HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Mozilla\NativeMessagingHosts nicht gesetzt wurde, nur dann holt sich TB den Pfad aus HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\NativeMessagingHosts\myphoneexplorer.extension.
Ja, das hatte ich nicht explizit erwähnt. Mozilla checkt, wie Du gesagt hattest und wie es in den Spezifikationen beschrieben ist, erst WOW6432Node. Entscheidend ist ein Eintrag unter HKLM.
icke1954 hat geschrieben: Übrigens bei jedem MPE-Update wird der Inhalt beider Reg-Pfade auf "C:\Program Files (x86)\MyPhoneExplorer\DLL\myphoneexplorer.extension.json" gesetzt, hat bisher niemanden gestört :roll:
Hier wird es interessant. Wenn hier etwas gemacht wird, was dazu führt, dass Thunderbird einmalig doch die Information zur myphoneexplorer.extension.json bekommt. Wo werden die Einträge genau gesetzt? In HKLM etwa?

Mein Thunderbird schreibt nicht in HKLM (die beiden obigen Einträge muss ich manuell setzen, da einer davon – egal welcher – entscheiden dafür ist, ob Thunderbird weiß, wo die json-Datei liegt). Möglicherweise weicht hier das Vorgehen bei der portablen (ohne Admin) und der Installationsvariante ggf. mit Adminrechten ab.
icke1954 hat geschrieben: Zu 3. Ja korrekt, aber wenn ich TB auf einem USB-Stick von MPE starten lasse, kommt es beim ersten mal zu besagter Fehlermeldung
Ja, bei mir auch. Wollte ich mit Punkt 4 klarmachen.
icke1954 hat geschrieben: Zu 4. Das kann ich nur teilweise bestätigen, oder wir sprechen von verschiedenen 2 Varianten ?
Bei mir funktioniert der Sync immer schon beim ersten Mal, wenn der korrekte Eintrag unter HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Mozilla\NativeMessaging gesetzt ist und TB vor dem Sync gestartet wurde (siehe 1. und 2.).
Also ich habe nur von Stick, bzw. bei mir eine externe HDD, getestet. Bei mir kommt bei allen Varianten bisher immer zuerst ein Fehlschlag. Der zweite Versuch klappt dann fast immer (manchmal brauchte es einen dritten Versuch). Das könnte auf ein zusätzliches Timeoutproblem hinweisen, dass Thunderbird noch lädt und verzögert antwortet.

Bei Deinem Skript muss ich den vollständigen Pfad eintragen, sonst kappt es nicht. Vielen Dank!
Antworten