FJ Software Foren-Übersicht  
 Homepage   •  Suchen   •  FAQ   •  Mitgliederliste   •  Registrieren   •  Login
 Nightly builds wie in portable Version einspielen? Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Neues Thema eröffnenNeue Antwort erstellen
Autor Nachricht
icke1954
Moderator


Anmeldedatum: 19.04.2014
Beiträge: 13558

BeitragVerfasst am: Do Dez 23, 2021 23:44 Antworten mit ZitatNach oben

Ich habe Dir eine E-Mail zukommen lassen

Gruß icke

_________________
Samsung Galaxy S3 / Android 4.3
Samsung Galaxy S5 / Android 6.01
Samsung Galaxy S8 / Android 9.0
Samsung Galaxy Tab 4 Android 10.0
Samsung Galaxy S20 / Android 11.0
MPE Version 1.9.0 akt. Nightly / akt. MPE-Client Beta
Benutzer-Profile anzeigenPrivate Nachricht sendenE-Mail senden
Bernd.W



Anmeldedatum: 03.03.2021
Beiträge: 41

BeitragVerfasst am: Fr Dez 24, 2021 04:41 Antworten mit ZitatNach oben

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/docs/Mozilla/Add-ons/WebExtensions/Native_messaginghttps://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Native_manifests#native_messaging_manifests
https://bugzilla.mozilla.org/show_bug.cgi?id=1190682#c37
Benutzer-Profile anzeigenPrivate Nachricht senden
icke1954
Moderator


Anmeldedatum: 19.04.2014
Beiträge: 13558

BeitragVerfasst am: Fr Dez 24, 2021 11:29 Antworten mit ZitatNach oben

Bernd.W hat Folgendes 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 Rolling Eyes

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.).

_________________
Samsung Galaxy S3 / Android 4.3
Samsung Galaxy S5 / Android 6.01
Samsung Galaxy S8 / Android 9.0
Samsung Galaxy Tab 4 Android 10.0
Samsung Galaxy S20 / Android 11.0
MPE Version 1.9.0 akt. Nightly / akt. MPE-Client Beta
Benutzer-Profile anzeigenPrivate Nachricht sendenE-Mail senden
icke1954
Moderator


Anmeldedatum: 19.04.2014
Beiträge: 13558

BeitragVerfasst am: Fr Dez 24, 2021 13:53 Antworten mit ZitatNach oben

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

Code:
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

_________________
Samsung Galaxy S3 / Android 4.3
Samsung Galaxy S5 / Android 6.01
Samsung Galaxy S8 / Android 9.0
Samsung Galaxy Tab 4 Android 10.0
Samsung Galaxy S20 / Android 11.0
MPE Version 1.9.0 akt. Nightly / akt. MPE-Client Beta
Benutzer-Profile anzeigenPrivate Nachricht sendenE-Mail senden
Bernd.W



Anmeldedatum: 03.03.2021
Beiträge: 41

BeitragVerfasst am: Sa Dez 25, 2021 01:29 Antworten mit ZitatNach oben

icke1954 hat Folgendes geschrieben:
Bernd.W hat Folgendes 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 Folgendes 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 Folgendes 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 Rolling Eyes

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 Folgendes 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 Folgendes 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!
Benutzer-Profile anzeigenPrivate Nachricht senden
Bernd.W



Anmeldedatum: 03.03.2021
Beiträge: 41

BeitragVerfasst am: Sa Dez 25, 2021 02:05 Antworten mit ZitatNach oben

So meine Fragen haben mich nun selbst auf die Lösung gebracht. Ich konnte den Bug so weit eingrenzen.

Thunderbird liest beim Start Einträge aus der Registry unter folgenden drei Schlüsseln aus:

* HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Mozilla\NativeMessagingHosts\myphoneexplorer.extension
* HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\NativeMessagingHosts\myphoneexplorer.extension
* HKEY_CURRENT_USER\SOFTWARE\Mozilla\NativeMessagingHosts\myphoneexplorer.extension

nicht aber unter

* HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\Mozilla\NativeMessagingHosts\myphoneexplorer.extension

Insofern macht MPE alles korrekt, bis auf den Zeitpunkt, an dem der Registry-Eintrag geschrieben und gelöscht wird. Das darf nicht direkt vor dem Sync sein. Ist Thunderbird erstmal gestartet, hat er den Pfad zu dem JSON-Manifest bereits gelesen oder auch nicht. Ob danach ein Eintrag in die Registry erfolgt oder dort gelöscht wird, ist Thunderbird dann egal.

Offensichtlich ist es so, dass bei der Installation des MPE-Thunderbird-Addons die Einträge (wie Du bereits gesagt hast) korrekt gesetzt werden. Deswegen klappt (bis auf das Timeout-Problem) der Sync nach der Installation oder dem Update des MPE-Thunderbird-Addons bis Thunderbird geschlossen wird.

Die korrekte Konfiguration wird dann aber nach der ersten Synchronisation aus der Registry (nachdem Sie zuerst nochmal korrekt überschrieben wird) gelöscht. Das führt dazu, dass beim erneuten Start von Thunderbird, diesem den Pfad zum JSON-Manifest fehlt und die weitere Synchronisation fehlschlägt.

Das Problem kann also entscheidend verbessert werden, indem FJ MPE bereits beim Start den Eintrag HKEY_CURRENT_USER\SOFTWARE\Mozilla\NativeMessagingHosts\myphoneexplorer.extension setzen lässt und diesen dann erst beim Beenden von MPE löschen lässt. Dieses Vorgehen entspricht auch dem eines klassischen portable Starters (wie Dein kleines Skript). Mit dieser Lösung müsste MPE immer vor Thunderbird gestartet werden, damit es funktioniert. Das Timeout-Problem bleibt dabei ungelöst. (Man könnte auch eine optionale Einstellung „Stealth-Modus deaktivieren“ hinzufügen, indem der Registry-Schlüssel einfach nicht gelöscht wird. Dann wäre es egal wann Thunderbird gestartet wird, allerdings hinterlässt man dann verwaiste Einträge auf den Host-System, was nicht ganz im Sinne von portable Apps ist. Daher sollte es, wenn optional sein).

Ich hoffe, Du und FJ können das so bestätigen. Aber ich bin mir nun doch sehr sicher, dass es das ist und es doch nicht an Mozilla liegt.

Frohe Weihnachten!
Benutzer-Profile anzeigenPrivate Nachricht senden
icke1954
Moderator


Anmeldedatum: 19.04.2014
Beiträge: 13558

BeitragVerfasst am: Sa Dez 25, 2021 02:12 Antworten mit ZitatNach oben

Bernd.W hat Folgendes geschrieben:
Wo werden die Einträge genau gesetzt? In HKLM etwa?

Bei der MPE-Installation / Update Nightly werden, wie schon erwähnt, beide HKLM-Schlüssel...
1. HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Mozilla\NativeMessagingHosts\myphoneexplorer.extension
2. HKEY_LOCAL_MACHINE\SOFTWARE\Mozilla\NativeMessagingHosts\myphoneexplorer.extension
...mit dem Pfad "C:\Program Files(x86)\MyPhoneExplorer\DLL\myphoneexplorer.extension.json" gesetzt.
Dieser Eintrag ist ja auch nicht für die portable Version gedacht, sondert für die Standardversion von TB.
Der Eintrag für die portable Version ist und bleibt natürlich nur ein Workaround.

Ich glaube Dein erster Vorschlag, mittels optionalen Setzen eines TimeOuts, das Problem zu lösen, wäre wohl die beste Lösung ?!

Aber das entscheidet letztendlich FJ Wink

_________________
Samsung Galaxy S3 / Android 4.3
Samsung Galaxy S5 / Android 6.01
Samsung Galaxy S8 / Android 9.0
Samsung Galaxy Tab 4 Android 10.0
Samsung Galaxy S20 / Android 11.0
MPE Version 1.9.0 akt. Nightly / akt. MPE-Client Beta
Benutzer-Profile anzeigenPrivate Nachricht sendenE-Mail senden
Bernd.W



Anmeldedatum: 03.03.2021
Beiträge: 41

BeitragVerfasst am: Sa Dez 25, 2021 03:52 Antworten mit ZitatNach oben

Ich denke erst muss die Korrektur des Zeitpunkts des HKCU Eintrags in der portablen Version erfolgen. Wenn dann das Timeout-Problem beim ersten Sync weiterhin besteht - ich denke vieles spricht dafür - dann wäre vermutlich ein zweiter und ggf. dritter Versuch im Hintergrund sinnvoll, bevor der Anwender eine Fehlermeldung erhält.

Ursprünglich hatte ich ja gedacht, dass es primär an der portable Version liegt, da diese oft (und so auch bei mir) mit längeren Zugriffszeiten verbunden ist (Speichermedium , USB-Verbindung). Allerdings kann das nicht die alleinige Ursache sein. Nachdem wir ausgeschlossen haben, dass Thunderbird durch/nach MPE gestartet werden muss, kann man ja Thunderbird auch zuerst starten, sodass dieser genug Zeit hat um alles zu laden. Trotzdem tritt bei mir beim ersten Sync-Versuch immer der Fehler auf (auch mit vorherigem 10 Min. warten). Das kann also nicht die alleinige Ursache sein.

Mir fallen spontan zwei mögliche Ursachen ein:

1. Der erste Verbindungsaufbau der native Messages Schnittstelle beansprucht mehr Zeit. Ist diese etabliert erfolgt der weitere Zugriff zügiger. => Mögliche Lösung => a) Timeout beim ersten Verbindungsaufbau erhöhen und/oder b) beim Scheitern der Synchronisation einen oder zwei weitere Versuche etablieren, um die Verbindung aufzubauen und um zu synchronisieren.

2. Je nach externem Speichermedium und Schnittstelle kann die Zugriffszeit der Anwender stark variieren. Im besten Falle mit externer SSD und über USB 3 oder Thunderbolt ist der Zugriff schneller als bei langesamen internen Festplatten. Bei langsamen Speichermedien verschärft sich obiger Punkt 1 hingegen. Da man nicht weiß, wie performant das System der portablen App Anwender ist, ist hier Lösung b) von oben wohl die beste.

Ich denke FJ wird das - wenn sich alle Annahmen so bestätigen - wie auch immer gut lösen.
Benutzer-Profile anzeigenPrivate Nachricht senden
Bernd.W



Anmeldedatum: 03.03.2021
Beiträge: 41

BeitragVerfasst am: Mo Jan 17, 2022 02:14 Antworten mit ZitatNach oben

Hallo Icke,

ich will nochmal kurz nachfragen, ob FJ das Problem bestätigen konnte. Reine Neugier, ich kann mit dem Workaround erstmal gut arbeiten.

Danke!
Benutzer-Profile anzeigenPrivate Nachricht senden
icke1954
Moderator


Anmeldedatum: 19.04.2014
Beiträge: 13558

BeitragVerfasst am: Mo Jan 17, 2022 08:18 Antworten mit ZitatNach oben

Nein, ich habe z.Z. diesbezüglich nicht mehr Informationen als Du.

_________________
Samsung Galaxy S3 / Android 4.3
Samsung Galaxy S5 / Android 6.01
Samsung Galaxy S8 / Android 9.0
Samsung Galaxy Tab 4 Android 10.0
Samsung Galaxy S20 / Android 11.0
MPE Version 1.9.0 akt. Nightly / akt. MPE-Client Beta
Benutzer-Profile anzeigenPrivate Nachricht sendenE-Mail senden
icke1954
Moderator


Anmeldedatum: 19.04.2014
Beiträge: 13558

BeitragVerfasst am: Di März 08, 2022 15:16 Antworten mit ZitatNach oben

Bitte teste mal die neuste portable Version von 1.9.0 => https://www.fjsoft.at/files/MyPhoneExplorer_portable_1.9.0.zip

_________________
Samsung Galaxy S3 / Android 4.3
Samsung Galaxy S5 / Android 6.01
Samsung Galaxy S8 / Android 9.0
Samsung Galaxy Tab 4 Android 10.0
Samsung Galaxy S20 / Android 11.0
MPE Version 1.9.0 akt. Nightly / akt. MPE-Client Beta
Benutzer-Profile anzeigenPrivate Nachricht sendenE-Mail senden
Bernd.W



Anmeldedatum: 03.03.2021
Beiträge: 41

BeitragVerfasst am: Sa März 12, 2022 19:12 Antworten mit ZitatNach oben

Danke für die neue Version! Leider treten bei mir alle Probleme wie gehabt auf. Konkret:

Bernd.W hat Folgendes geschrieben:

1.
Der Registry Schlüssel wird weiterhin nicht zu Beginn gesetzt, sondern erst mit dem ersten Sync oder mit Änderungen im Einstellungsdialog.

Das führt dazu, dass beim allersten Start, wenn
a) MPE als erstes manuell gestartet wird,
b) dann TB manuell gestartet wird,
c) alle Synchronisierungen fehlschlagen (Beim MPE-TB-Addons haben die Menu-Einträge keine Funktion) bis Thunderbird ein zweites Mal gestartet wird. Ab dann hat TB Zugriff auf den Eintrag, denn der Registry-Eintrag wird gar nicht mehr gelöscht. (Ruft man TB über den Sync-Button aus MPE auf, wird der Registry-Eintrag noch rechtzeitig gesetzt und es funktioniert).

2.
Der erste Synchronisationsversuch schlägt immer fehl, Fehlermeldung: "Fehler... - Einträge konnten nicht aus Thunderbird gelesen werden!". Dies erfolgt unabhängig davon, ob ich den ersten Synchronisationsversuch aus MPE oder aus Thunderbird heraus anstoße.


Debug hatte ich per Email an FJ gesendet. Wenn ich noch was tun kann, gebt gerne Bescheid.
Benutzer-Profile anzeigenPrivate Nachricht senden
Beiträge der letzten Zeit anzeigen:      
Neues Thema eröffnenNeue Antwort erstellen


 Gehe zu:   



Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Alle Zeiten sind GMT + 1 Stunde
Deutsche Übersetzung von phpBB.de