1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. BugFix

Beiträge von BugFix

  • Checkbox in ini Datei speichern

    • BugFix
    • 2. Juni 2023 um 10:50
    Zitat von Moombas

    Wobei mich das $GUI_INDETERMINATE ein wenig irritiert.

    Wenn du ein Checkbox mit Tristate Attribut verwendest, ist die Box weder checked noch unchecked, sondern nur grau.

    Zitat von Moombas

    Nur bei ListView und Treeview sollte man das BitAnd nutzen.

    Stimmt, CB und Radio sind eindeutig. Aber es ist mir schon so in Fleisch und Blut übergegangen, dass ich jeden Status so prüfe. Auf jeden Fall die Variante, die definitiv keine Fehler zulässt. ;)

  • Navigation

    • BugFix
    • 1. Juni 2023 um 18:35

    NAVMII Test:

    + Offline Karten mit ständigen Updates

    + klare übersichtliche Anzeige aller navigationsrelevanten Daten

    + wahlweise 2D / 3D Darstellung

    + Autozoom

    - (fast) jede Kurve wird angesagt - nervt extrem

    - Ansagelautstärke selbst bei Maximum recht leise

    - Navigationsalgorithmus bevorzugt immer höchstwertige Straßen, dadurch werden teilweise deutlich bessere Routen (z. B. über Landstraße) ignoriert. Hätte mich heute glatt 20 Minuten gekostet, wenn ich nachgegeben hätte.

    Konnte mich nicht wirklich überzeugen.

    Das Problem mit dem unvorteilhaften Navigationsalgorithmus hatte ich genau so bisher bei allen OSM basierten Navi Apps. - Bedingung zur Nutzung von OSM? 🤩

  • Checkbox in ini Datei speichern

    • BugFix
    • 1. Juni 2023 um 16:35
    Zitat von Moombas

    Müsste das mit dem Auselesen des Ini-Wertes und Setzen für die Checkbox nicht noch einfacher gehen:

    In den meisten Fällen wird das auch klappen - aber das Ergebnis von GuiCtrlRead(Checkbox) kann für z. B. checked durchaus unterschiedliche Werte enthalten. Deshalb das Auswerten mit BitAnd.

  • Checkbox in ini Datei speichern

    • BugFix
    • 31. Mai 2023 um 17:23
    Zitat von Alina
    AutoIt
    If Not FileExists($INI_FILE) Then         ; INI-Datei erstellen, wenn sie nicht existiert         
        Local $hFile = FileOpen($INI_FILE, 2)         
        FileClose($hFile)     
    EndIf

    Alina, das ist tatsächlich überhaupt nicht erforderlich. Wenn beim ersten Versuch von IniWrite die INI nicht existiert, wird sie sowieso erstellt. ;)

    BTW: Das Mixen von GuiGetMsg- und OnEvent- Mode ist keine gute Idee. :rolleyes:

  • Checkbox in ini Datei speichern

    • BugFix
    • 30. Mai 2023 um 09:27
    Zitat von WhiteHorse

    Ich habe eine Checkbox erstellt, die eine Funktion hat, diese soll aber nach dem Schließen gespeichert bleiben, ich schreibe einfach ein wert ist ja egal was dort rein in diese ini Datei.

    Beim Beenden den Wert der Checkbox in der INI speichern und beim Start diesen auswerten. Brauchst du keine extra Werte definieren.

    Bsp.:

    AutoIt
    #include <GUIConstants.au3>
    
    $Ini = @ScriptDir & '\check_mich.ini'
    
    GUICreate('Test')
    $check = GUICtrlCreateCheckbox(' Check mich', 50, 20)
    
    GUISetState()
    
    ; INI auswerten beim Start
    If BitAND(IniRead($Ini, 'checkbox', 'status', $GUI_UNCHECKED), $GUI_CHECKED) Then
        GUICtrlSetState($check, $GUI_CHECKED)
    EndIf
    
    While GUIGetMsg() <> -3
    WEnd
    ; nach Schließen der GUI Checkbox-Wert in INI speichern
    IniWrite($Ini, 'checkbox', 'status', GUICtrlRead($check))
    Alles anzeigen
  • Navigation

    • BugFix
    • 25. Mai 2023 um 22:19
    Zitat von Racer

    sicher gibt es die Möglichkeit Offline-Karten bzw. einen Ausschnitt vorab herunterzuladen.

    Google Maps -> Bei der Suche auf das Accountsymbol (rechts) drücken -> 5ter Menüpunkt von oben "Offlinekarten".

    Das hatte ich ja nicht verneint. Du kannst diese Karten nur tatsächlich offline nutzen. Sowie eine Datenverbindung existiert, wird das online Kartenmaterial genutzt. Ist auch so bei Google nachzulesen.

    Zitat von Racer

    NAVMII ist sehr zu empfehlen

    Das werde ich mir auch mal ansehen, bin für Tipps dankbar.

    Wobei ich bis jetzt von Naviprogrammen, die OpenStreetMap verwenden, nicht sehr angetan war. Aber das letzte hatte ich vor ca. 2 Jahren beim Wickel - inzwischen kann sich da ja was getan haben.

  • Navigation

    • BugFix
    • 25. Mai 2023 um 18:13
    Zitat von Oscar

    Ich benutze seit einiger Zeit die App "NUNAV"

    Danke, das sieht schon mal vielversprechend aus. 2D und Nachtmodus, flüssige Berechnung. Nun werde ich es im Einsatz auf Herz und Nieren testen. :thumbup:

  • Zeilenumbruch in Func Keyproc abfangen

    • BugFix
    • 25. Mai 2023 um 15:26
    Zitat von hipfzwirgel

    deine If in der Zeile 21 wird mit [error: MapExists(): undefined function] quittiert.

    OK, du hast eine ältere AutoIt Version - ohne Maps. Also entweder AutoIt aktualisieren (empfohlen) oder statt Map die Keycodetabelle als Dictionary verwenden, wäre genauso komfortabel. 2D-Array geht natürlich auch, überlasse ich mal deinem Geschmack.

  • Navigation

    • BugFix
    • 25. Mai 2023 um 14:56
    Zitat von Moombas

    wenn du den Kompass dauerhaft auf Nordausrichtung (in maps) stellst.

    Na dann ist die Anzeige aber obsolet. Denn wenn ich auf der Karte rechts abbiege obwohl ich real - da nach Süden fahrend - links abbiege, stiftet das mehr Verwirrung als das es eine Navigationshilfe ist. :(

  • Navigation

    • BugFix
    • 25. Mai 2023 um 14:42

    Ein schönes Thema zum Talken: Navigation mit Google Maps

    Von der Qualität her bin ich damit sehr zufrieden, vor allem wichtig die Einbindung der tatsächlichen Verkehrslage (statt der unsinnigen Verkehrsmeldungen im Radio, die einen grundsätzlich erst dann erreichen, wenn man bereits 10 Minuten im Stau steht). :Face:

    Leider hat Google vor einigen Jahren das Konzept geändert. Damals konnte man sich Karten vorab für eine Region downloaden und diese dann explizit laden, die Verkehrssituation wurde dann per Onlinedaten aktualisiert. Der Komfort ist nicht mehr. Ich kann nach wie vor Offline Karten speichern, aber darauf wird ausschließlich zugegriffen bei fehlender oder schlechter Datenverbindung.

    Der ständige Datenverkehr verbraucht zwar nicht übermäßig viel Volumen (ca. 40 MB/Stunde) belastet aber den Prozessor enorm - sprich das Smartphone kocht. Nach 3,5 Stunden ununterbrochener Nutzung kam dann die Sicherheitsabschaltung wegen Überhitzung. Wobei sicher die meiste Energie im Display landet. Ich habe zwar Navigation ausschließlich im Dark Mode in Nutzung, aber das sind immer noch eine Menge Pixel, die angesteuert werden müssen.

    Ich habe jetzt eine für mich praktikable Lösung gefunden.

    Ein altes Smartphone habe ich auf Werkseinstellungen gesetzt. Dann alle Dienste/Apps deaktiviert oder deinstalliert außer Google Maps und der erforderlichen Google Systemdienste sowie dem WLAN. Weiterhin habe ich das Display von FHD auf HD geschrumpft - somit nur noch 25% anzusteuernder Pixel.

    Mein normales Smartphone stellt Internet per Hotspot bereit.

    Ergebnis: Nach ca. 2 Stunden Navigation war das Gerät gerade mal gut handwarm und der Energieverbrauch lag bei 20% (voll geladen bei Start, 78% bei Ankunft, Akku: 4500 mAh)

    Aber eines stört mich an Google Maps: Es navigiert ausschließlich im 3D-Modus. ||

    Für einen Menschen, der 30 Jahre lang Karten gelesen hat, also total 2D geprägt ist, ist das eine Katastrophe. In 2D ändert sich die Entfernung linear zu meiner Bewegung, das kann ich gut abschätzen. In 3D passiert das eben nicht linear in einem Verhältnis, das ich gedanklich nicht nachvollziehen kann. Ich habe dadurch schon einige Stadtrundfahrten hinter mir, weil der Abzweig schon da war, obwohl die Karte mir suggerierte es sei noch ein Ende. X/ Auf einer Strecke mit nur einem Abzweig ist sowas nicht von Belang, aber in einer fremden Stadt, mit mehreren Abzweigungen in kurzer Folge....

    Weiß jemand einen Weg, wie ich Maps dazu zwingen kann mir eine 2D Karte beim Navigieren zu zeigen?

  • Zeilenumbruch in Func Keyproc abfangen

    • BugFix
    • 25. Mai 2023 um 14:04
    Zitat von hipfzwirgel

    $sPattern auf die 13 gesetzt

    Das hatte ich doch beschrieben, dass das unmöglich ist, wenn du den Wert mit Char() in einen String wandelst! Dann bekommst du ein reales ENTER und das ist nun mal kein String.

    Deshalb hatte ich doch die Auswertung über vkVode mit einer Map als Bsp. gepostet - hattest du das getestet?

  • Win XP - alle Netzwerkadapter und Adressen auslesen ohne WMI

    • BugFix
    • 25. Mai 2023 um 13:19

    Alternativ mit Umleiten in eine Temp-Datei und Auswerten darüber:

    AutoIt
    #include <Array.au3>
    
    Global $aAdapter = _GetAdapterWithIP()
    _ArrayDisplay($aAdapter)
    
    
    Func _GetAdapterWithIP()
        Local $sFileTmp = @TempDir & '\ipconfig.all'
        Local $sCmd = "ipconfig /all >> " & $sFileTmp
        RunWait(@ComSpec & ' /C ' & $sCmd, @TempDir, @SW_HIDE)
        Local $aRead = FileReadToArray($sFileTmp)
        FileDelete($sFileTmp)
        Local $aResult[1][2] = [[0]]
        Local $sAdapter = '', $sIP = '', $aMatch
        For $i = 0 To UBound($aRead) -1
            If StringRegExp($aRead[$i], '^\S') Then     ; Adaptername erkannt (Text startet am Zeilenanfang)
                If $sAdapter <> '' And $sIP <> '' Then  ; Auslesen des vorigen Adapters beenden und Eintragen wenn IP vorhanden
                    $aResult[0][0] += 1
                    ReDim $aResult[$aResult[0][0]+1][2]
                    $aResult[$aResult[0][0]][0] = $sAdapter
                    $aResult[$aResult[0][0]][1] = $sIP
                    $sAdapter = $aRead[$i]
                    $sIP = ''
                Else
                    $sAdapter = $aRead[$i]
                EndIf
            ElseIf $aRead[$i] = '' Then ; Leerzeile
                ContinueLoop
            Else
                $aMatch = StringRegExp($aRead[$i], '^\s+IPv4-Adresse[ \.]+:\s(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})', 1)
                If Not @error Then $sIP = $aMatch[0]
            EndIf
        Next
        ; falls der letzte Adapter in der Datei auch eine IP hat, wird dessen Auswertung nicht mit Erkennung eines neuen Adapters gestartet
        ; und wird ausserhalb der Schleife geprüft
        If $sAdapter <> '' And $sIP <> '' Then
            $aResult[0][0] += 1
            ReDim $aResult[$aResult[0][0]+1][2]
            $aResult[$aResult[0][0]][0] = $sAdapter
            $aResult[$aResult[0][0]][1] = $sIP
        EndIf
        Return $aResult
    EndFunc
    Alles anzeigen

    EDIT:

    kleinen Fehler im Code gefixed.

  • Win XP - alle Netzwerkadapter und Adressen auslesen ohne WMI

    • BugFix
    • 25. Mai 2023 um 11:46
    Zitat von Bebbo

    Vllt. habt ihr mir einen Tip oder sogar ein beispiel, bei dem ein solches Thema bereits thematisiert wurde?!

    Hier ein Skript von mir aus dem Jahr 2014. Könnte also unter XP laufen:

    AutoIt
    #include <array.au3>
    $ar = _GetNetworkAdapterIPEnabled()
    _ArrayDisplay($ar)
    
    ;****************************************************************************************
    ; Function        _GetNetworkAdapterIPEnabled()
    ;
    ; Description    Get all IP-Enabled networkadapter
    ;
    ; Return        Array networkadapter
    ;                Array[n][0]    Caption
    ;                Array[n][1]    IP-Adresse
    ;                Array[n][2]    Subnet
    ;                Array[n][3]    Standardgateway
    ;                If not found IPEnabled Adapter:
    ;                            Return -1 und @error = 1
    ;
    ; Author            BugFix (autoit@bug-fix.info)
    ;****************************************************************************************
    Func _GetNetworkAdapterIPEnabled()
        Dim $arAdapter[1], $var
        $arAdapter[0] = -1
        $wbemFlagReturnImmediately = 0x10
        $wbemFlagForwardOnly = 0x20
        $strComputer = "localhost"
        $objWMIService = ObjGet("winmgmts:" _
            & "{impersonationLevel=impersonate}!\\" & $strComputer & "\root\cimv2")
        $IPConfigSet = $objWMIService.ExecQuery _
            ("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE", "WQL", _
                                            $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
        For $IPConfig in $IPConfigSet
            For $i=0 to UBound($IPConfig.IPAddress)-1
                If $IPConfig.IPAddress($i) <> '0.0.0.0' Then
                    $settings = $IPConfig.Caption & '|' & _
                                $IPConfig.IPAddress($i) & '|' & _
                                $IPConfig.IPSubnet(0) & '|' & _
                                $IPConfig.DefaultIPGateway(0)
                    If $arAdapter[0] = -1 Then
                        $arAdapter[0] = $settings
                    Else
                        For $i = 0 To UBound($arAdapter)-1
                            If $arAdapter[$i] = $settings Then 
                                ExitLoop
                            Else
                                ReDim $arAdapter[UBound($arAdapter)+1]
                                $arAdapter[UBound($arAdapter)-1] = $settings
                            EndIf
                        Next
                    EndIf
                EndIf
            Next
        Next
        If $arAdapter[0] = -1 Then 
            SetError(1)
            Return -1
        Else
            Local $arOut[UBound($arAdapter)][4]
            For $i = 0 To UBound($arAdapter)-1
                $var = StringSplit($arAdapter[$i], '|')
                $arOut[$i][0] = $var[1]
                $arOut[$i][1] = $var[2]
                $arOut[$i][2] = $var[3]
                $arOut[$i][3] = $var[4]
            Next
        EndIf
        Return $arOut
    EndFunc ;==>_GetNetworkAdapterIPEnabled
    Alles anzeigen

    EDIT:

    Ich lese gerade, dass WMI gar nicht funktioniert! Wie denn das? - OK, dann nützt das dir leider nichts.

    EDIT 2:

    Falls dein XP den Befehl netsh kennt, bekommst du eine wunderbare Auflistung der Adapter mit Eigenschaften per Kommandozeilenaufruf:

    netsh interface ipv4 show config

    Das kannst du mit AutoIt per Run aufrufen und im Hintergrund die Ausgabewerte auslesen (StdoutRead()).

    EDIT 3:

    Schon viel zu lange nicht mehr verwendet, aber das funktioniert definitiv auf XP: ipconfig /all. Da hast du alles, was dein Herz begehrt. 8o

  • Zeilenumbruch in Func Keyproc abfangen

    • BugFix
    • 25. Mai 2023 um 11:23
    Zitat von hipfzwirgel

    Nur wie lasse ich das Keyboard-Enter in Zeile 9 zu? $sChr, '[0-9]' & @CRLF geht auch nicht... habe als $sPattern auch "\r\n" erfolglos versucht

    Du verwandelst ja mittels Chr(vkCode) den gelesenen Wert wieder in sein Zeichen. Das "Zeichen" von 13 ist ENTER - kein stringlesbares Zeichen und somit nicht per Pattern auszufiltern.

    Besser ist also erst den vkCode zu filtern und dann wahlweise zu Speichern (Zeichen) oder zu Beenden (Enter).


    Probier mal das (ungetestet):

    AutoIt
    Global $mVK[]
    $mVK[0x30] = '0'
    $mVK[0x31] = '1'
    $mVK[0x32] = '2'
    $mVK[0x33] = '3'
    $mVK[0x34] = '4'
    $mVK[0x35] = '5'
    $mVK[0x36] = '6'
    $mVK[0x37] = '7'
    $mVK[0x38] = '8'
    $mVK[0x39] = '9'
    $mVK[0xD]  = 'ENTER'
    
    Func _KeyProc($nCode, $wParam, $lParam)
        $sPattern = @CRLF
        If Not $g_bScanActiv Then Return _WinAPI_CallNextHookEx($g_hHook, $nCode, $wParam, $lParam)
        Local $tKEYHOOKS ;, $sChar
        $tKEYHOOKS = DllStructCreate($tagKBDLLHOOKSTRUCT, $lParam)
        If $nCode < 0 Then Return _WinAPI_CallNextHookEx($g_hHook, $nCode, $wParam, $lParam)
        If $wParam = $WM_KEYDOWN Then
            If MapExists($mVK, $tKEYHOOKS.vkCode) Then
                If $mVK[$tKEYHOOKS.vkCode] = 'ENTER' Then
                    Exit ($g_sAusweisNr)
                Else
                    $g_sAusweisNr &= $mVK[$tKEYHOOKS.vkCode]
                EndIf
            Else
                $g_sAusweisNr = '' ; $g_sAusweisNr leeren
                Exit (815)
            EndIf
                
    ;~         $sChar = Chr($tKEYHOOKS.vkCode)
    ;~         If StringRegExp($sChar, '[0-13]') Then      ; $sChar kann jetzt nur "0 - 13" enthalten (nicht von NUMPAD-Eingabe), CHr10 - 13 = CR und lf
    ;~             $g_sAusweisNr &= $sChar                 ; Speichern der einzelnen Zeichen in $g_sAusweisNr zur kompletten Ausweisnr
    ;~             
    ;~         If StringRegExp($sChar, $sPattern) Then
    ;~                 Exit ($g_sAusweisNr)
    ;~             EndIf
    ;~         Else ; irgendein Nicht-Ziffer Zeichen - FEHLER
    ;~             $g_sAusweisNr = '' ; $g_sAusweisNr leeren
    ;~             Exit (815)
    ;~         EndIf
    
            Return -1 ; Eingabe wird nicht an das System weitergeleitet
        EndIf
        Return _WinAPI_CallNextHookEx($g_hHook, $nCode, $wParam, $lParam)
    
    EndFunc   ;==>_KeyProc
    Alles anzeigen
  • Zeilenumbruch in Func Keyproc abfangen

    • BugFix
    • 25. Mai 2023 um 11:07
    Zitat von hipfzwirgel

    Ich habe den CHR-Range auf 13 erweitert, sodass CR und LF ebenfalls "erlaubt sind" aber das funktioniert nicht. Könnte mir jemand sagen was ich übersehen habe?

    Du hast einen Tastatur-Hook. CR und LF sind aber keine Zeichen, die über die Tastatur ausgegeben werden. Lass doch ein ENTER zum Abschluss senden. Ebenso würde ich eine Abbruchsequenz mittels ESC ermöglichen.

    btw: vkCode = 13 ist ENTER!

  • Win 11 - Fragen

    • BugFix
    • 18. Mai 2023 um 10:47

    Nächste Frage:

    Ich habe Bibliotheken hinzugefügt und dafür dann die Ordnersymbole geändert. Mit den neuen Symbolen erscheinen dann aber seltsamerweise horizontale Linien im Bibliothekenbereich. Hat das auch jemand gehabt und lösen können?

    EDIT:

    Ich hatte vermutet, dass hier Probleme mit dem Open Shell sein könnten und habe das mal deinstalliert. Zeigt aber keine Änderung.

    Im Web habe ich Hinweise auf eine Internet Explorer-Einstellung gefunden, die den Datei-Explorer beeinflusst:

    Code
    Horizontale Linie im Datei-Explorer entfernen
    HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Toolbar
    Im Wert Locked sollte eine 1 stehen.

    Habe den Wert auf 1 gesetzt, aber auch keine Änderung. :rolleyes:

    EDIT 2:

    Auch wenn es kein echter Trost ist, ich bin nicht der einzige mit dem Problem.

    Selstame Trennstriche in Bibliotheken im Explorer
    Hallo ich hoffe ich hab ins richtige Forum geschrieben, falls nein verzeiht mir :) Ich hab ein seit neuestem ein Problem mit den Bibliotheken im Explorer.…
    www.windows-11-forum.de

    Wenn man die Option "Alle Ordner anzeigen" im Explorer entfernt, bestraft Windows einen für diese ungehörige Eigenmächtigkeit mit der Anzeige dieser Linien. Setze ich die Option erneut, erscheinen sofort die Linien. =O:evil:<X

  • Win 11 - Fragen

    • BugFix
    • 17. Mai 2023 um 18:34

    Ich will mal nicht nur meckern, habe sogar etwas Angenehmes gefunden.

    Man kann ein Fenster durch Ziehen nach oben oder durch MouseHover: Maximize/Minimize auf vorbereitete Teilgrößen und Position setzen.

    move_tiled.png

  • Win 11 - Fragen

    • BugFix
    • 17. Mai 2023 um 14:04

    So, da gab es noch eine Einstellung im Explorer "Alle Ordner anzeigen" - Haken entfernt und schon sieht es sinnvoll aus:

    explorer_reduziert.png

    Mal sehen, wann das System vollständig brauchbar ist. ^^

  • Win 11 - Fragen

    • BugFix
    • 17. Mai 2023 um 13:19
    Zitat von Moombas

    Ok, das mit der Gruppierung

    Gut, das sieht erst mal OK aus. :thumbup:

    Das Start-Gedöns habe ich jetzt auch wegbekommen. Aber was mich noch stört, ich kann nicht erkennen, welches von den 3-fach vorhandenen Bilder/Dokumente/Musik etc. ist der Speicherort und welches sind nur Links. Die Eigenschaften geben das nicht her (oder ich raff es einfach nicht :rofl: ).

    Was ich definitiv nicht brauche, habe ich schon erbarmungslos gelöscht (Kontakte, Favoriten, Musik, Gespeicherte Spiele). Aber die Liste ist noch viel zu lang. Oberhalb von "Dieser PC" sollte alles weg. :evil:

  • Win 11 - Fragen

    • BugFix
    • 17. Mai 2023 um 12:17
    Zitat von Moombas

    Und das Problem mit nicht ausführbaren Dateien habe ich noch nicht gehabt bisher.

    Hatte ich bei HP-Firmwareupdate Software.

    Ging erst nach "Zulassen"

    zulassen.png

    Zitat von Moombas

    Und welche Gruppierung meinst du

    Das hier:

    explorer_3.png

    Und eine weiter Frage:

    Kann man die Höhe der Elemente (mit roten Pfeilen markiert) verändern? Da ist viel zu viel Platz verschwendet.

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™