Tomtom Navi prüfen ob Netzwerk aktiv ist

  • Den NetConnectioNStatus habe ich nicht im Select -Statement eingebaut, damit er ans Hauptskript zurück gegeben wird und dann dort für die Fehleranalyse verwendet werden kann.

    Ja, ok, das macht Sinn... aber die Prüfung auf ein Objekt vor dem For $objItem In $colItems kannst du dir sparen, denn wenn es kein Objekt ist, wird die Schleife eh nicht durchlaufen...

  • Wenn's läuft - perfekt.

    Excel könnte man bei Bedarf noch etwas beschleunigen, falls Performance ein Thema ist.

  • Hallo Water,

    Ich hab das mit den Arrays immer nicht so geschnallt, werde an deinem Beispiel von der Mail

    mal ein bisschen üben.

    Das habe ich mir ein bisschen genauer angeguckt und habe auch bei den PLZ die 0 davor gesetzt.

    Gruß Windi

  • Im engl. Forum gibt es ein super Tutorial zu Arrays: https://www.autoitscript.com/wiki/Arrays

  • Windi

    Ich war mal so frei und habe dein Script so umgestrickt/gekürzt, dass du es wahrscheinlich kaum wiedererkennst... es schmeißt jetzt zwar auch keine Fehler, aber ich kann es ja leider nicht unter realen Bedingungen testen.

    Es waren allerdings einige Fehler drin, die ich behoben habe.

    Hier mal ein paar...

    • Globale Variablen sollten nicht in Funktionen deklariert werden - und schon gar nicht in mehreren Funktionen die gleichen globale Variablen deklarieren - und erst recht nicht in Schleifen (For...Next, While...Wend)!
      PS: Und es gibt auch keine lokale Variablen ausserhalb von Funktionen!
    • Ein paar Variablen hast du gar nicht deklariert, z.B. $nMsg.
    • WinActivate($oWorkBook, "") <<<=== Das geht nicht, denn WinActivate erwartet ein hWnd/Title/ClassName und kein Objekt!!!

    Teste es einfach mal (mach aber vorher besser eine Sicherung deiner Daten!), lies die Kommentare und vergleiche es mit deiner Version.

  • Hallo Bitnugger,

    danke erstmal für deine Mühe.

    Mit den Globalen Variablen in Funtionen leuchtet mir ein. Werde es mir merken.

    So und nun zu deinen Änderungen:

    ; Tom Tom Link zum einfügen in Navi öffnen

    $oIE = _IECreate("http://169.254.255.1/pcmi/?locale=de_de") ; Wozu soll das gut sein, denn das Objekt wird nur an dieser Stelle hier benutzt?

    In diesem Link wird die "AATour.ov2" in das Navi Kopiert.

    Wenn du Mydrive Connect nicht installiert hast läüft der Link ins leere.

    Aus AATour.gpx wird mit dem ITNConverter die AATour.ov2 erzeugt.

    AATour.ov2 nur deshalb, da im Navi, 40-50 verschiedene POI Gruppen alphabetisch sortiert sind und mit AA dann immer an der 1. Stelle gefunden wird.

    Wo lon drin stehen muß steht jetzt das:

    <?xml version="1.0" encoding="UTF-8"?>

    Das müßte so aussehen.

    lon 12.23456879

    lat 1.2305648978

    Aber die Probleme mit lon und lat die hatte ich anfangs auch deshalb mein verdrehter Code.

    Sah nicht schön aus aber lief.

    Danke dir trotzdem für deine Mühe.

    Ich werde demnächst nochmal auf euch zurückkommen.

    Hab da noch ein paar sachen, die mir nicht so gefallen.

    z.B. gibt es eine Möglichkeit eine EXE im hintergrund zu starten.

    sie muss aber in der Taskleiste bleiben.

    Gruß Windi

  • Ja. Mit Run oder RunWait kannst Du das Flag "show_flag" setzen. Dies gibt an, ob die Exe versteckt (hidden) oder minimiert ausgeführt werden soll.

  • Zur Exe. Ist das eine Exe die im DOS Fenster läuft oder eine eigene GUI anzeigt?

  • das ist eine Exe z.B. Mydrive Connect. nicht die eigene GUI.

    zu Problem:

    wenn ich das Navi an USB anschließe manchmal öffnet sich My... direkt ohne was zu machen,

    oder ich muss es manuell starten.

    ich hatte es so versucht und möchte das man es überhaupt nicht sieht außer in der Taskleiste.

  • Wo lon drin stehen muß steht jetzt das:

    <?xml version="1.0" encoding="UTF-8"?>

    Das müßte so aussehen.

    lon 12.23456879

    lat 1.2305648978

    Ja, als ich es getestet hatte, war das auch so... hast denn mal eine reale XML-Datei für mich, mit der ich das genauer austesten kann?

    Ich habs mit @SW_MINIMIZE und @SW_HIDE probiert.

    Diese Werte kannst du nehmen, wenn es bereits sichtbar gemacht wurde. Dazu muss mindestens einmal der Status des Fensters mit @SW_SHOW(...) gesetzt worden sein.

    Also einen von diesen Werten: @SW_SHOW, @SW_SHOWDEFAULT, @SW_SHOWMAXIMIZED, @SW_SHOWMINIMIZED, @SW_SHOWMINNOACTIVE, @SW_SHOWNA, @SW_SHOWNOACTIVATE, @SW_SHOWNORMAL

    Bsp.: GUISetState(@SW_SHOWMINIMIZED)

    ...

    und danach kannst du dann den Status mit @SW_HIDE, @SW_MINIMIZE, @SW_MAXIMIZE, @SW_RESTORE, @SW_DISABLE, @SW_ENABLE, @SW_LOCK oder @SW_UNLOCK beliebig oft ändern.

  • Diese Werte kannst du nehmen, wenn es bereits sichtbar gemacht wurde. Dazu muss mindestens einmal der Status des Fensters mit @SW_SHOW(...) gesetzt worden sein.

    Das geht aber nur bei der eigenen mit GUICreate erstellten GUI.
    Da Windi aber ein Programm mit Run startet und @SW_* nicht funktioniert mus er wohl WinSetState verwenden.

  • Das geht aber nur bei der eigenen mit GUICreate erstellten GUI.
    Da Windi aber ein Programm mit Run startet und @SW_* nicht funktioniert mus er wohl WinSetState verwenden.

    Ich denke er braucht kein WinSetState... nur eben bei Run anstelle @SW_MINIMIZE ein @SW_SHOWMINIMIZED angeben.

  • Hallo,

    ; Prüfen ob PLZ Leer dann Zeile löschen

    For $r = 2 To $oExcel.ActiveSheet.Cells($oExcel.Rows.Count, 2).End(-4162).Row ; -4162 = xlUp

    If _Excel_RangeRead($oWorkBook, Default, "D" & $r) = 0 Then

    _Excel_RangeDelete($oWorkBook.ActiveSheet, $r & ":" & $r, $xlShiftUp)

    EndIf

    Next

    Meine Frage?

    Wieso löscht er nicht den Wert inhalt von Spalte A

  • ... nur eben bei Run anstelle @SW_MINIMIZE ein @SW_SHOWMINIMIZED angeben

    Interessant. In der Hilfe steht aber nix von @SW_SHOWMINIMIZED. Sollten wir die Hilfe aktualisieren?

    Edit:
    Habe gerade gesehen, dass im Beispiel aber @SW_SHOWMINIMIZED verwendet wird.
    Das sollte meiner Meinung nach aber alles irgendwie zusammenpassen.

  • Interessant. In der Hilfe steht aber nix von @SW_SHOWMINIMIZED. Sollten wir die Hilfe aktualisieren?

    In der Hilfe zu Run (show_flag) steht auch nichts über @SW_SHOWMAXIMIZED, wohl aber im Hilfebeispiel

    AutoIt
    Example()
    Func Example()
        ; Startet den Editor mit einem maximierten Fenster.
        Local $iPID = Run("notepad.exe", "", @SW_SHOWMAXIMIZED)

    , als auch in der Makroreferenz :

    @SW_SHOWMAXIMIZED   Aktiviert das Fenster und zeigt es maximiert an.

    @SW_SHOWMINIMIZED   Aktiviert das Fenster und zeigt es minimiert an.

    EDIT water : Das mit dem Beispiel hast Du ja gerade selbst geschrieben ;).

    In der Referenz gibt es zudem noch weitere @SW_* Makros, die in der Hilfe nicht erwähnt werden.

    Tweaky : Das wäre wahrscheinlich ein Punkt, den man in der Hilfe aktualisieren könnte

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

    Einmal editiert, zuletzt von Musashi (17. Mai 2020 um 17:50)