Koordinateneingabe für MN6-PNA & MN6-N100

  • Nachtrag:
    Ich habe die neue Version gerade getestet,
    leider laufen die Scripts damit nicht richtig.
    Das Script wird beim ersten "exit" beendet, auch wenn
    das "exit" gar nicht gelesen werden sollte.


    Also lieber nicht Updaten, sondern bei der Version 4.0 RC2 bleiben.

  • Hi Spiti,


    schön das du wieder da bist :D


    Zitat

    Da ich jetzt nicht alle verpassten Beiträge durchlesen möchte,


    Och es war doch eher ruhig, viele Probleme mit dem neuen PWfür MN6 usw.
    Soooo viel hast du glaub nicht verpasst..


    Zitat

    Ich habe die neue Version gerade getestet,
    leider laufen die Scripts damit nicht richtig.
    Das Script wird beim ersten "exit" beendet, auch wenn
    das "exit" gar nicht gelesen werden sollte.


    hast du Mort das schon geschrieben ??


    Gruß,
    Concor

    Einmal editiert, zuletzt von concor ()

  • Zitat

    Original von concor
    Hi Spiti,


    schön das du wieder da bist :D


    Danke, danke, ich bin auch froh. ;D

    Zitat


    Och es war doch eher ruhig, viele Probleme mit dem neuen PWfür MN6 usw.
    Soooo viel hast du glaub nicht verpasst..


    Sehr schön, als ich gefahren bin, gabs nur Probleme mit dem PW
    für alle anderen Versionen. :gap

    Zitat


    hast du Mort das schon geschrieben ??
    Gruß,
    Concor


    Nein noch nicht, mache ich aber noch. Erst mal brauche ich
    ein neues Auto, deswegen bin ich noch viel unterwegs.

    Einmal editiert, zuletzt von Spiti ()

  • Hallo Concor und Spiti,


    herzlichen Dank für euer schönes Tool. Ich habe einige Änderungen gemacht, siehe Anhang. Vielleicht wollt ihr die ja übernehmen. Aufgesetzt habe ich auf der Version 1.55 von K-Eingabe.


    1. Ich habe das Skript einmal formatiert, damit es besser lesbar ist: Umbrüche überlanger Zeilen (nach alter Väter Sitte auf 80 Spalten Breite), Einrückungen, Groß-/Kleinschreibung von Kommandonamen und Verwendung von Prozent-/Anführungszeichen und Klammern wie in der Datei commands.006 von MortScript beschrieben. Ich brauchte das einfach, um das Skript zu verstehen und damit arbeiten zu können.


    2. Das Skript erkennt selbst, ob es auf dem N100 läuft. Ihr braucht also nicht zwei verschiedene Versionen zu warten.


    3. Habe noch einen Sound bei der Auswahl von "VolumeControl" hinzugefügt, analog zu den anderen Funktionen.


    4. Bei der Abfrage, ob die Koordinaten gespeichert werden sollen, gebe ich Längen- und Breitengrad in derselben Reihenfolge aus, wie sie eingegeben wurden und wie sie auch in MN6 angezeigt werden.


    5. Ich habe das Hin- und Herbewegen des Input Panel am Anfang auskommentiert, da mir die Sleeps zu lange dauerten und das Resultat bei mir am N100 (vertikal) nicht gut aussah. So bekomme ich das Input Panel dorthin, wo es beim letzten Mal war, und wenn mir das nicht gefällt, verschiebe ich es von Hand. Ihr könnt ja die Kommentarzeichen entfernen, wenn der Code bei euch vorteilhaft ist.


    Sonst habe ich nichts verändert.


    Zum Testen einfach K-Eingabe_MN6.mscr mit ActiveSync nach \Program Files\K-Eingabe kopieren. Wenn euch die Änderungen nützlich erscheinen, könnt ihr sie ja in eure Installation übernehmen.


    [Dateianhang der alten Skript-Version entfernt.]

    2 Mal editiert, zuletzt von Nav88 ()

  • Hi Nav88,


    hast du super gemacht !!


    Also mal zu meiner Person ich bin kein richtiger Programmierer.
    ich habe früher mal in Z80a Assembler programmiert (auf meinem heiligen CPC)


    später zu DOS Zeiten dann noch ein bischen Borland c++
    dann kam noch ein bisschen Html & Javascript dazu...
    nun mache ich aber schon lange nichts mehr....(keine Muse und Zeit (Kinder)


    Was Strukturierung angeht, war ich schon immer ein Chaot .
    (darum wäre auch nie ein guter Programmierer aus mir geworden)
    Aber ich habe oft ungewöhnliche Wege genommen.
    (so wie auch das Kommaproblem von Mortscript)
    sooo nu genug gesagt.

    Auf jeden Fall hast du es toll gemacht, ich werde es zu einer
    V1.56 (N100&PNA)Version machen und oben einstellen.
    (konntest du es dann aus deinem Beitrag wieder rausnehmen ??)


    was die Tastatur Verschiebung & Positionierung angeht,
    das geht zu ehren von Spiti .
    Ist aber eine prima Sache (beim PNA320*240).
    Auch sehr ungewöhnlich gelöst !!!
    Da es eigentlich nicht so einfach ist die Tastatur zu positionieren
    die Frage ist nur ob man es beim n100 ganz wegläst oder eben anpasst ??
    schau ma mal


    Gruß,
    Concor

  • Soo ich habe nun oben die neue Version zum Download bereitgestellt v1.56 !
    Klick hier


    Das Tastaturverschieben für N100 habe ich weggelassen aber für den PNA habe ich es aktiviert.


    Gruß,
    Concor

    Einmal editiert, zuletzt von concor ()

  • [Der Beitrag ist von letzter Nacht, ich konnte ihn aber wegen eines SQL-DATABASE ERROR im Forum erst heute morgen posten.]


    Hi Concor,


    Schön, daß Dir meine Änderungen gefallen. Ich programmiere beruflich, so fällt es mir nicht besonders schwer: ist halt nur eine Skript-Sprache mehr.


    Deine neue Version 1.56 habe ich noch nicht probiert, ist mir jetzt zu spät. Ich werde sie dann morgen anschauen. Ich habe bis vorhin nicht mehr ins Forum reingeschaut, weil ich an dem Skript noch etwas weitergearbeitet habe.


    Mein Problem mit dem Tastaturverschieben auf dem N100 war, daß die Tastatur nur zu etwa 10 Prozent am rechten Bildschirmrand zu sehen war. Ich habe noch ein paar Verbesserungen machen können, und bin nun auf dem N100 auch ganz zufrieden: die Tastatur erscheint im Hochformat jetzt immer unmittelbar unter dem Eingabefeld, im Querformat darüber, aber rechts ausgerichtet, so daß die Beispielzeilen für die Längen- und Breitengradeingabe sichtbar sind. Schau doch mal bitte, ob das auf Deinem PDA auch funktioniert.


    Die Vereinfachung liegt darin, daß man die Tastatur relativ zum "Input Panel" packen und an einer absoluten Bildschirmposition loslassen kann. Das sieht dann so aus:


    Run \Windows\ToggleInputPanel.exe
    Sleep 50
    MouseDown Input Panel, 1, 1
    MouseUp 1, 153


    Hier packe ich die obere linke Ecke des "Input Panel", egal wo es sich befindet, und schiebe es an die absolute Bildschirmposition (1, 153). (Das ist die Position im Hochformat.) Eine absolute Bildschirmposition wird angewählt, wenn kein Fenstername im Kommando (hier: MouseUp) angegeben wird.


    Nach dem Run-Kommando muß ich mindestens 7 ms warten, bis ich die Tastatur verschieben kann. Ich habe zur Sicherheit 50 ms gewählt. Die Verzögerung ist aber kaum wahrzunehmen. Weitere Sleeps sind nicht nötig.


    Obige Kommandofolge funktioniert aber nur, wenn die obere linke Ecke der Tastatur auf dem Bildschirm sichtbar ist. Falls sie jedoch nach links herausgeschoben ist, ist aber die obere rechte Ecke sichtbar. Wenn man also noch die Kommandofolge


    MouseDown Input Panel, 240, 1
    MouseUp 240, 153


    hinzunimmt, klappt's dann immer. Na ja, fast immer: Nach einem Soft-Reset muß ich die Tastatur mindestens einmal von Hand irgendwo hinziehen, sonst bleibt sie, wo sie ist. Danach geht es aber immer. Ich weiß nicht, warum es zu diesem sonderbaren Effekt kommt.


    Ich stelle meine Variante des Skripts noch einmal hier ein, damit Du die Änderungen übernehmen kannst, wenn Du magst; ich werde die Datei dann später wieder entfernen. Vielleicht kannst Du ja beim Verschieben der Tastatur auf eine Unterscheidung zwischen dem N100 und anderen PNAs ganz verzichten. (Beim N100 ist das Eingabefenster immer bildschirmfüllend, das Eingabefeld immer auf halber Bildschirmhöhe. Wenn sich MortScript bei anderen PNAs genauso verhält, sollte meine Variante dort eigentlich auch gut aussehen.) Zur Fein-Positionierung ändere einfach die Parameter lpos und vpos im Skript. (lpos sollte im Hochformat gleich 1 sein und im Querformat kleiner oder gleich 81.)


    Ein kleines Problem mit MortScript habe ich noch: Die OK- und Cancel-Buttons ganz unten am Bildschirmrand sehe ich nur, wenn sie nicht durch den Taskbar verdeckt sind. Also nur, wenn die Taskbar-Option "Auto hide" gewählt ist. Anderenfalls zeigt MortScript das Dialogfenster etwas kleiner an, so daß Platz für die OK-/Cancel-Buttons wäre, verschiebt die Buttons selbst aber nicht nach oben. Da muß ich noch mal nachforschen; vielleicht handelt es ja um einen Fehler in MortScript. Die Position der Eingabefeldes innerhalb des Eingabefensters ist invariant gegenüber der Option "Auto hide", so daß die Positionierung der Software-Tastatur unabhängig von dieser Option erfolgen kann. Da brauchen wir also keine weitere Fallunterscheidung.


    Ach ja, noch etwas habe ich geändert: Wenn man in einem der Dialoge auf "Cancel" klickt (bzw. auf der Software-Tastatur auf ESC drückt), wird das Skript beendet. Man braucht also dann nicht auch noch alle Folgedialoge einzeln abzubrechen.


    So, Schluß für heute! :]


    [Download für Variante von K-Eingabe entfernt. Kommt demnächst mit der offiziellen Version 1.57.]

    Einmal editiert, zuletzt von Nav88 ()

  • Zitat

    Original von Nav88
    Ein kleines Problem mit MortScript habe ich noch: Die OK- und Cancel-Buttons ganz unten am Bildschirmrand sehe ich nur, wenn sie nicht durch den Taskbar verdeckt sind. Also nur, wenn die Taskbar-Option "Auto hide" gewählt ist. Anderenfalls zeigt MortScript das Dialogfenster etwas kleiner an, so daß Platz für die OK-/Cancel-Buttons wäre, verschiebt die Buttons selbst aber nicht nach oben.


    Das Verhalten habe ich mit anderen Programmen auch, scheint also eher an Windows zu liegen (meine Vermutung). Damit trotzdem alles funktioniert, hab ich "auto hide" und "Always on top" deaktiviert. Dann wird die Startleiste immer vom Programm überlagert.
    Nachteil: ich kann nicht bei mehreren gleichzeitig laufenden Programmen, in das jeweils andere wechseln.

  • @Nav88


    Run \Windows\ToggleInputPanel.exe
    Sleep 50
    MouseDown Input Panel, 1, 1
    MouseUp 1, 153


    Geht z.B. auf meinem TS4000c nicht (warum auch immer)


    Spiti hat herausgefunden, das wenn er das Keyboard packt
    MouseDown Input Panel, 2, 2
    und in den nicht sichtbaren Bereich schiebt
    MouseUp Input Panel, 340, 260
    dann das Keyboard aus schaltet
    Run \Windows\ToggleInputPanel.exe
    und es dann wieder einschaltet
    Run \Windows\ToggleInputPanel.exe
    das eben dann WindowsCE das Keyboard genau an die rechte untere Ecke ausrichtet
    (bei allen)
    Nun weiß er genau wo es sich befindet und kann es an eine definierte Position schieben
    MouseUp Input Panel, 5, -110


    Ich fand es am Anfang auch etwas viel hin und her.
    aber es ist womöglich die einzige Methode mit mortscript
    die Tastatur bei allen PNA Geräten auszurichten
    (hat er sich toll ausgedacht)


    Ob die sleeps wirklich so lange sein müssen
    hmm....
    bei meinem Gerät sicher nicht, aber wenn MN6 gerade viel arbeitet oder etwas zu sagen hat kann es schon sein das die sleeps sinnvoll sind.


    Ich denke das ich/wir Spitis Methode beibehalten.
    Ich habe jetzt bei den N100 einfach auf ein verschieben verzichtet.
    und habe es nur für die PNA´s aktiviert.


    Aber es ist kein Problem es auch für den n100 richtig zu setzen.
    ich habe es gestern halt nicht gemacht kommt in der 1.57 Version.


    Zitat

    Ein kleines Problem mit MortScript habe ich noch: Die OK- und Cancel-Buttons ganz unten am Bildschirmrand sehe ich nur, wenn sie nicht durch den Taskbar verdeckt sind. Also nur, wenn die Taskbar-Option "Auto hide" gewählt ist. Anderenfalls zeigt MortScript das Dialogfenster etwas kleiner an, so daß Platz für die OK-/Cancel-Buttons wäre, verschiebt die Buttons selbst aber nicht nach oben. Da muß ich noch mal nachforschen; vielleicht handelt es ja um einen Fehler in MortScript. Die Position der Eingabefeldes innerhalb des Eingabefensters ist invariant gegenüber der Option "Auto hide", so daß die Positionierung der Software-Tastatur unabhängig von dieser Option erfolgen kann. Da brauchen wir also keine weitere Fallunterscheidung.


    Also wenn du den Poiwarner am laufen hast/hättest gibt es überhaupt keine [OK] [Cancel]
    Das liegt am Poiwarner für MN6 (und ist ein eigenes Thema)
    aber OK wird ja auch nicht unbedingt benötigt
    alles kann auch über einen doppelklick auf den Eintrag oder bei einem Eingabefeld durch ein Return an der Tastatur bestätigt werden.


    Die Taskleiste....
    verhält sich bei jedem PNA etwas anders
    z.B. bei einem TS4000 kannst du zwar das häcken für "Auto hide" wegmachen. aber sie fährt trotzdem weg (auch wenn du es direkt in der Registry tätest)
    es liegt an der verwendeten Explorer.exe Ce4.20 Build1088
    es ändert sich erst wenn diese ausgetauscht wird.


    Nav88 ich finde deine Energie wirklich gut,
    aber warum stürzt du dich in deinem ersten Beitrag hier im Forum gleich in so eine Sache (wo warst du vorher)


    Gruß,
    Concor

  • @concor



    Ja, das hat er ganz prima gemacht. Leider funktioniert seine Methode auf dem N100 nicht mehr. Wahrscheinlich hat sich Windows CE einmal inkompatibel geändert. Der N100 benutzt die Version 5.00. Könntest Du nicht Spitis Methode im allgemeinen verwenden und meinen Vorschlag für den N100?


    Welches Windows-Version benutzt Dein TS4000? Wenn das Verhalten betriebssystemabhängig ist, wäre es wahrscheinlich besser, eine Fallunterscheidung über die Systemversion zu machen, die Frage ist nur, wie man diese in MortScript herausbekommt.


    Zitat


    Ob die sleeps wirklich so lange sein müssen
    hmm....
    bei meinem Gerät sicher nicht, aber wenn MN6 gerade viel arbeitet oder etwas zu sagen hat kann es schon sein das die sleeps sinnvoll sind.


    Vermutlich sind die Sleeps zwischen MouseDown und MouseUp unnötig. Die MortScript-Dokumentation erwähnt Sleeps nur für Tap&Hold, nicht für Drag&Drop (vgl. MortScript V4.0 Manual, Abschnitt 9.8.3). Nach dem Einblenden der Tastatur muß man aber auf jeden Fall warten, bis sie mit MouseDown zu packen ist.


    Zitat


    Nav88 ich finde deine Energie wirklich gut,
    aber warum stürzt du dich in deinem ersten Beitrag hier im Forum gleich in so eine Sache (wo warst du vorher)


    Ach, ich war auch schon vorher auf der Welt. :) Ich habe mir aber erst kürzlich den N100 gekauft und vorher noch kein PNA oder PDA besessen, daher mein Interesse erst jetzt.


    Dank dieses tollen Forums habe ich erfahren, wie man den Desktop freilegen kann, und über euer K-Eingabe habe ich MortScript kennengelernt. Ihr habt hier alle wirklich eine super Arbeit geleistet. Jetzt kann ich meinen N100 leicht an meine Bedürfnisse anpassen. Also nochmals Danke! Wenn ich nun auch etwas für die Community tun kann, z.B. euer K-Eingabe für den N100 anzupassen, dann um so besser. Ich möchte ja nicht nur Nutznießer des Forums sein.

  • Hi Nav88,

    Zitat

    Könntest Du nicht Spitis Methode im allgemeinen verwenden und meinen Vorschlag für den N100?


    Äem ..ja klar, (das ich das nicht selbst vorgeschlagen habe ?()
    so machen ich/wir das !


    Zitat

    Wenn ich nun auch etwas für die Community tun kann, z.B. euer K-Eingabe für den N100 anzupassen, dann um so besser. Ich möchte ja nicht nur Nutznießer des Forums sein.


    so ist es recht ;)


    Gruß,
    Concor

    Einmal editiert, zuletzt von concor ()

  • Wir haben zwei verschiedene Methoden entwickelt, die Software-Tastatur für die Koordinateneingabe zu positionieren. Spitis Methode zieht die Tastatur in einen unsichtbaren Bereich außerhalb des Desktops, blendet sie aus und wieder ein, wodurch sie dann an eine definierte Position (in die untere rechte Ecke) springt, von der sie dann relativ an die gewünschte Position verschoben wird. Diese Methode funktioniert aber nicht auf dem N100. Dort kann man die Tastatur aber einfach an einer Ecke packen und an eine absolute (die gewünschte) Desktop-Position ziehen. Das klappt hingegen nicht auf Concors TS4000.


    Weiß jemand, a) welche Datei (EXE, DLL, etc.) oder möglicherweise welcher Registry-Key für das unterschiedliche Verhalten verantwortlich ist und b) bei welcher Versionsnummer dieser Datei (bzw. Wert des Registry-Keys) welches Verhalten vorliegt? Wenn wir schon mal a) wissen, könnten Benutzer unterschiedlicher PNAs das Verhalten auf ihrem Gerät überprüfen und die Datei-Version (bzw. den Wert des Registry-Keys) hier posten. Dann hätten wir b).


    Wir könnten dann ein besseres Kriterium entwickeln, wann welche Methode zu verwenden ist, und dadurch erreichen, daß für mehr PNAs/PDAs die richtige Positionierungsmethode verwendet wird.


    Das bisherige Unterscheidungskriterium ist der Installationsort von MN6.exe: wenn sich diese Datei direkt in \Windows befindet, nehmen wir an, daß es sich um den N100 handelt, für andere Geräte gehen wir davon aus, daß die MN6.exe im Verzeichnis MN6 auf der Storage card ist.

  • Zitat

    Weiß jemand, a) welche Datei (EXE, DLL, etc.)


    Die softkb.dll !
    Die ist bei den CE4.20 wohl 20Kb groß


    die CE5 Geräte haben auch ein "leicht" anderes Tastaturlayout oder ?
    (siehe Bild1 = Ce4.2 Tastatur)


    Dumm ist nur, wenn der Nutzer z.B "Tapping Keyboard" installiert hat
    und diese als Standarttastatur benutzt.
    was aber doch eher eine Seltenheit ist :) :D


    Gruß,
    Concor

  • Zitat

    Original von concor


    Die softkb.dll !
    Die ist bei den CE4.20 wohl 20Kb groß


    Leider liefert die FileVersion-Funktion in MortScript kein Resultat für softkb.dll. Die Datei läßt sich auch nicht kopieren (wenigstens nicht in CE5.00 auf dem N100). Ich habe auch nichts gefunden, wie man das Dateidatum oder die Betriebssystemversion in MortScript feststellen kann.


    Zitat

    die CE5 Geräte haben auch ein "leicht" anderes Tastaturlayout oder ?
    (siehe Bild1 = Ce4.2 Tastatur)


    Beim CE5 lassen sich vier verschieden Layouts einstellen. Das von CE4.20 (Dein Bild) ist auch darunter. Alle vier haben dieselbe Größe.

    Einmal editiert, zuletzt von Nav88 ()