MyPhoneExplorer und Linux/Wine
Okay, hab das gestern abend ausprobiert und ich glaube, dass wine die MSComm nicht mag.
Hab noch eine ältere Version davon getestet, als es noch SE-Winamp-Control.exe hieß. Aber die verwendet die SPort.dll -- und das Thema hatten wir hier schon:
"Die Komponente 'SPort.dll' oder eine ihre Abhängigkeiten ist nicht richtig registriert: Eine Datei fehlt oder ist ungültig"
Hab hier mal die Konsolenausgaben:
Die Frage ist: befinden sich diese Klassen in SPort.dll oder in einer anderen, die nur untereinander Abhängigkeiten besitzen!?
Die neue Version gibt folgenden Code aus:
Hab mir gedacht, dass du vielleicht daraus schließen kannst, ob das Problem wirklich an der MSComm liegt oder an einer anderen Komponente.
Werd mir jetzt dann mal eine neuere wine-version runterladen und ein wenig weitertesten...
Hab noch eine ältere Version davon getestet, als es noch SE-Winamp-Control.exe hieß. Aber die verwendet die SPort.dll -- und das Thema hatten wir hier schon:
"Die Komponente 'SPort.dll' oder eine ihre Abhängigkeiten ist nicht richtig registriert: Eine Datei fehlt oder ist ungültig"
Hab hier mal die Konsolenausgaben:
Code: Alles auswählen
err:ole:CoGetClassObject class {14e95046-bec7-46d2-b9e3-74b1ad14ac65} not registered
err:ole:CoGetClassObject class {14e95046-bec7-46d2-b9e3-74b1ad14ac65} not registered
err:ole:CoGetClassObject no class object {14e95046-bec7-46d2-b9e3-74b1ad14ac65} could be created for context 0x3
err:ole:CoGetClassObject class {14e95046-bec7-46d2-b9e3-74b1ad14ac65} not registered
err:ole:CoGetClassObject class {14e95046-bec7-46d2-b9e3-74b1ad14ac65} not registered
err:ole:CoGetClassObject no class object {14e95046-bec7-46d2-b9e3-74b1ad14ac65} could be created for context 0x3Die neue Version gibt folgenden Code aus:
Code: Alles auswählen
fixme:win:WIN_CreateWindowEx Parent is HWND_MESSAGE
fixme:ntdll:NtAllocateLocallyUniqueId 0x34f7b0
fixme:ntdll:NtAllocateLocallyUniqueId 0x34ef58
fixme:ntdll:NtAllocateLocallyUniqueId 0x34ef18
fixme:reg:RegOpenUserClassesRoot (0x9c, 0x0, 0x2000000, 0x34f718) semi-stub
fixme:actctx:FindActCtxSectionGuid 00000001 (null) 4 {648a5600-2c6e-101b-82b6-000000000014} 0x34f6ec
fixme:actctx:FindActCtxSectionGuid 00000001 (null) 4 {648a5600-2c6e-101b-82b6-000000000014} 0x34f698
fixme:actctx:FindActCtxSectionGuid 00000001 (null) 4 {648a5600-2c6e-101b-82b6-000000000014} 0x34f00c
Werd mir jetzt dann mal eine neuere wine-version runterladen und ein wenig weitertesten...
Okay, hab gestern die neueste wine-version (0.9.41) installiert, auch eine ander MSComm runtergeladen. Der Fehler ist zwar ein kleinwenig anders, aber der Endeffekt ist der gleiche: Weder der Controller noch MPE (ohne stabile Verbindung) laufen.
Es gibt aber (zumindest für c#.net) eine neue Schnittstelle in .Net 2005. Das ganze ist im Namespace System.IO.Ports.
Da hab ich mir ein Testprogramm (eigentlich für Win programmiert) runtergeladen und mit mono (ist sowas wie das .Net-Framework) laufen gelassen: Siehe da, das Programm listet alle Seriellen Schnittstellen auf! Langsam wird .Net ja doch plattformunabhängig, was es angeblich schon lange ist...
Ob der Zugriff auch funktioniert weiß ich nicht, da ich keine Seriellen Schnittstellen an meinem Laptop habe. Und die virtuellen listet es auch nicht.
Könnte es höchstens mit einem Link versuchen...
Aber was ich jetzt wegen der MSComm noch probieren soll, weiß ich auch nicht...
Es gibt aber (zumindest für c#.net) eine neue Schnittstelle in .Net 2005. Das ganze ist im Namespace System.IO.Ports.
Da hab ich mir ein Testprogramm (eigentlich für Win programmiert) runtergeladen und mit mono (ist sowas wie das .Net-Framework) laufen gelassen: Siehe da, das Programm listet alle Seriellen Schnittstellen auf! Langsam wird .Net ja doch plattformunabhängig, was es angeblich schon lange ist...
Ob der Zugriff auch funktioniert weiß ich nicht, da ich keine Seriellen Schnittstellen an meinem Laptop habe. Und die virtuellen listet es auch nicht.
Aber was ich jetzt wegen der MSComm noch probieren soll, weiß ich auch nicht...
I'm back!FJ hat geschrieben:Der User DarkSoul wäre dein Mann - leider hat er aber aus unerfindlichen Gründen das Interesse daran verloren.
Sorry, hatte leider aus privaten Gründen (Renovierung, Umzug, Prüfungen) keine Zeit, und wie das so ist: Wenn man ein Thema einmal ein wenig zur Seite gelegt hat, dann hat man's auch schnell vergessen...
Nun ist aber wieder alles beim alten und ich habe erstmal Urlaub und somit genug Zeit!
@FJ: Wie ich sehe warst Du in den letzten Wochen/Monaten ziemlich fleissig.
@DarkSoul - toll dich wieder an Bord zu haben.
@all: Ich hatte Kontakt mit einem User der "Winamp-Control" zum Laufen gebracht hat. das war eigentlich der grund warum ich auf MSComm zurückgegriffen hab. Werd nochmal versuchen ihn zu erreichen. Das mit .NET können wir vergessen - kann ich ibn VB6 nicht nutzen.
@all: Ich hatte Kontakt mit einem User der "Winamp-Control" zum Laufen gebracht hat. das war eigentlich der grund warum ich auf MSComm zurückgegriffen hab. Werd nochmal versuchen ihn zu erreichen. Das mit .NET können wir vergessen - kann ich ibn VB6 nicht nutzen.
Nachdem ich alles nochmal genau gelesen habe, habe ich auch den Hinweis auf die "stabile Verbindung" gelesen. Nun funzt es einwandfrei. 
Sehr gute Arbeit FJ und sehr gute Arbeit weinbi (HowTo)!
Ich nutze die aktuellste Wine 0.9.41 zusammen mit einer getauschten oleaut32.dll. Die zweite DLL (wie hiess sie noch gleich?) brauchte ich nicht! Der MPE scheint bisher ohne Einschränkungen via BT und USB zu funzen.
Nun mache ich meinen Rechner erstmal aus da hier gerade ein heftiges Gewitter über uns zieht....
Edit: Das Gewitter war harmlos, dafür hatten wir mal wieder Wasser im Keller....
Sehr gute Arbeit FJ und sehr gute Arbeit weinbi (HowTo)!
Ich nutze die aktuellste Wine 0.9.41 zusammen mit einer getauschten oleaut32.dll. Die zweite DLL (wie hiess sie noch gleich?) brauchte ich nicht! Der MPE scheint bisher ohne Einschränkungen via BT und USB zu funzen.
Nun mache ich meinen Rechner erstmal aus da hier gerade ein heftiges Gewitter über uns zieht....
Edit: Das Gewitter war harmlos, dafür hatten wir mal wieder Wasser im Keller....
Wieso Treiber? Wenn ich das Handy via USB-Kabel anschliesse gibts ein neues Device /dev/ttyACM0. Für den muß man nur einen Symlink auf einen freien COM-Port setzen und dann funktioniert das! 
Also im Klartext: Im Ordner "~/.wine/dosdevices" mit dem Befehl "ln -s /dev/ttyACM0 COM1" einen Symlink anlegen. Die Symlinks legen die Devices fest die unter Wine zur Verfügung stehen - also Parallel-Ports, COM-Ports, Laufwerke usw usw...
Falls hier Linuxanfänger lesen und sich wundern das sie keinen "~"-Ordner haben: "~" ist ein Kürzel das automatisch in den persönlichen home-Ordner zeigt, also z.B. /home/DarkSoul. "cd ~" hat somit den gleichen Effekt wie "cd /home/DarkSoul".
Die Probleme mit der MSComm.ocx habe ich noch nicht genau verstanden. Woran hakts da genau?
Also im Klartext: Im Ordner "~/.wine/dosdevices" mit dem Befehl "ln -s /dev/ttyACM0 COM1" einen Symlink anlegen. Die Symlinks legen die Devices fest die unter Wine zur Verfügung stehen - also Parallel-Ports, COM-Ports, Laufwerke usw usw...
Falls hier Linuxanfänger lesen und sich wundern das sie keinen "~"-Ordner haben: "~" ist ein Kürzel das automatisch in den persönlichen home-Ordner zeigt, also z.B. /home/DarkSoul. "cd ~" hat somit den gleichen Effekt wie "cd /home/DarkSoul".
Die Probleme mit der MSComm.ocx habe ich noch nicht genau verstanden. Woran hakts da genau?
Ich versteh nur Bahnhof, aber wenn du das sagst wirds schon stimmen.Wieso Treiber? Wenn ich das Handy via USB-Kabel anschliesse gibts ein neues Device /dev/ttyACM0. Für den muß man nur einen Symlink auf einen freien COM-Port setzen und dann funktioniert das!
Wo das Problem bei MS-Comm liegt kann ich selbst nicht genau sagen. Tatsache ist: Die MSComm-Version läuft auf Windows einwandfrei (auch über MSComm) - in Wine geht die Kommunikation nicht. Mein Vorschlag wäre ein anderes Programm zu suchen welches MSComm benutzt um evt. eingrenzen zu können ob es nur an den Einstellungen liegt oder ob MSComm unter wine generell nicht funktioniert.
FJ hat geschrieben:Ich versteh nur Bahnhof, aber wenn du das sagst wirds schon stimmen.
Symlink ist die Kurzform für Symbolische Links. So ohne weiteres gibt es die unter Windows nicht. Ist eine sehr simple und extrem praktische Geschichte. Infos dazu findest Du hier in Kurzform da ich nicht weiß wie ichs gescheit erklären soll: http://de.wikipedia.org/wiki/Symbolischer_Link
Womit verbinde ich denn dann bei Deiner "Spezial-Version" wenn ich die stabile Verbindung verwende?FJ hat geschrieben:Wo das Problem bei MS-Comm liegt kann ich selbst nicht genau sagen. Tatsache ist: Die MSComm-Version läuft auf Windows einwandfrei (auch über MSComm) - in Wine geht die Kommunikation nicht. Mein Vorschlag wäre ein anderes Programm zu suchen welches MSComm benutzt um evt. eingrenzen zu können ob es nur an den Einstellungen liegt oder ob MSComm unter wine generell nicht funktioniert.
Ich liege doch richtig, wenn ich sage, dass die MSComm ein ActiveX-Steuerelement ist, oder?
Folglich werde ich mal versuchen das Mozilla ActiveX zu installieren, dass beinhaltet die gleiche API wie das von M$, nur dass es anscheinend mit wine besser zusammenarbeitet.
Das einzige was mir noch eingefallen wäre, ist, dass Linux bei den Dateinamen und -pfade Case Sensitiv ist. Wie Wine das handhabt weiß ich jetzt zwar nicht, aber könnte doch sein, dass es von dieser Seite ein paar Problemchen gibt. Vorallem weil VB6 (soweit ich weiß) nicht mal bei Befehlen Case Sensitiv ist...
Folglich werde ich mal versuchen das Mozilla ActiveX zu installieren, dass beinhaltet die gleiche API wie das von M$, nur dass es anscheinend mit wine besser zusammenarbeitet.
Das einzige was mir noch eingefallen wäre, ist, dass Linux bei den Dateinamen und -pfade Case Sensitiv ist. Wie Wine das handhabt weiß ich jetzt zwar nicht, aber könnte doch sein, dass es von dieser Seite ein paar Problemchen gibt. Vorallem weil VB6 (soweit ich weiß) nicht mal bei Befehlen Case Sensitiv ist...
Ok, so verstehe ich Dein Problem. Also liest Du den quasi nur aus wenn ich auf Sync drücke und ansonsten schlummert die Verbindung im Hintergrund und nix passiert. Kostet eine Überprüfung auf neue SMS denn zuviel Zeit? Sonst würde ich evtl. ein Timer-Objekt mit 1000ms einrichten das das im Intervall übernimmt? Oder hängt dann das GUI ständig?FJ hat geschrieben:da VB von Haus aus kein MultiThreading unterstützt wird der Port nur gelesen wenn zu erwarten ist dass was drin steht.
1. Wine handhabt das so wie es natürlich auch unter Windows üblich ist: Nix Case Sensitiv. Das einzige was passieren kann ist das man in einem Wine-Ordner (in dem z.B. LW C untergebracht ist) von Linux-Seite aus eine Datei anlegt die quasi schon vorhanden ist - nur in anderer Groß-/Kleinschreibung. Welche Datei Wine dann behandelt kann ich nicht sagen. Genauso wenig weiß ich was Windows-Apps dann davon halten falls sie zweimal die gleiche Datei in einem Ordner finden.weinbi hat geschrieben:Das einzige was mir noch eingefallen wäre, ist, dass Linux bei den Dateinamen und -pfade Case Sensitiv ist. Wie Wine das handhabt weiß ich jetzt zwar nicht, aber könnte doch sein, dass es von dieser Seite ein paar Problemchen gibt. Vorallem weil VB6 (soweit ich weiß) nicht mal bei Befehlen Case Sensitiv ist...
2. Wenn es da auf Wine-Ebene Probleme gäbe, könnte man das in der Konsolenausgabe nachlesen.
Intervall-Überprüfung fällt weg. Ich brauche einen Timeout für die Verbindung - der muss mindestens bei 2 Sekunden liegen um vernünftig arbeiten zu können. Wenn aber nix am Port anliegt, dann würde die GUI 2 Sekunden hängen. Ausserdem würde das nicht das Problem mit dem Anruf-Monitor lösen (basiert ebenfalls auf Events vom Handy)
Ihr wisst ja dass ich kein Linux habe, also liegt es an euch:
- geht MSComm unter Wine generell nicht oder liegts an den Einstellungen, funktionieren andere Programme die MSComm verwenden. Das Handy reagiert auf viele Befehle die von normalen Modems abgeleitet sind. Also es muss kein Handy-Tool sein.
- geht ein anderes ActiveX-Control unter Wine - dann bau ich halt was anderes ein. Sollte halt ActiveX-fähig sein
Ihr wisst ja dass ich kein Linux habe, also liegt es an euch:
- geht MSComm unter Wine generell nicht oder liegts an den Einstellungen, funktionieren andere Programme die MSComm verwenden. Das Handy reagiert auf viele Befehle die von normalen Modems abgeleitet sind. Also es muss kein Handy-Tool sein.
- geht ein anderes ActiveX-Control unter Wine - dann bau ich halt was anderes ein. Sollte halt ActiveX-fähig sein