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

Beiträge von Bitnugger

  • Diskussion zu: FAQ SciTE Editor

    • Bitnugger
    • 20. Mai 2020 um 12:54
    Zitat von HansJ54

    Ich denke, ich habe die richtige Version, oder?

    Hehe, das ist wohl Ansichtssache... wenn du mich fragst, dann nein!

    Warum?

    Weil alle Version > 3.7.5 nicht mehr den Export luaL_register haben, und somit die shell.dll nicht mehr eingebunden werden kann. Dadurch laufen dann quasi alle Lua-Scripte von BugFix nicht mehr, und das sind bei mir einige.

    Deshalb benutze ich noch die Version 3.7.5... unter Programme und Features in Windows 10 wird mir diese als SciTE4AutoIt3 19.102.1901.0 angezeigt.

    Also installiert habe ich das aktuelle SciTE4AutoIt3... zumindest halbwegs aktuell, und dann aber die SciTE.exe durch meine alte 3.7.5 ersetzt.

    SciTE_v3.7.5.png

  • Tomtom Navi prüfen ob Netzwerk aktiv ist

    • Bitnugger
    • 20. Mai 2020 um 12:19

    Ich verstehe das nicht... habe mein obiges Bsp. etwas geändert, doch so werden mir im Array leere Zeilen (Chr(0) in Row 1 und Row 4) angezeigt. Wenn ich aber hier schaue, sollte das nicht der Fall sein.

    AutoIt
    #include <Array.au3>
    
    Local $XMLString = _
    '<countryCode>DE</countryCode>' & @CRLF & _
    '<country>Deutschland</country>' & @CRLF & _
    '<countryCodeISO3>DEU</countryCodeISO3>' & @CRLF & _
    '<freeformAddress>Musterstraße 4, 01234 Muster</freeformAddress>' & @CRLF & _
    '<localName>Musterhausen</localName>' & @CRLF & _
    '</address>' & @CRLF & _
    '<position>' & @CRLF & _
    '<lat>49.90707</lat>' & @CRLF & _
    '<lon>7.81838</lon>' & @CRLF & _
    '</position>' & @CRLF & _
    '<viewport>' & @CRLF & _
    '<topLeftPoint>' & @CRLF & _
    '<countryCode>DE</countryCode>' & @CRLF & _
    '<country>Deutschland</country>' & @CRLF & _
    '<countryCodeISO3>DEU</countryCodeISO3>' & @CRLF & _
    '<freeformAddress>Musterstraße 5, 01234 Muster</freeformAddress>' & @CRLF & _
    '<localName>Musterhausen</localName>' & @CRLF & _
    '</address>' & @CRLF & _
    '<position>' & @CRLF & _
    '<lat>46.90707</lat>' & @CRLF & _
    '<lon>6.81838</lon>' & @CRLF & _
    '</position>' & @CRLF & _
    '<viewport>' & @CRLF & _
    '<topLeftPoint>' & @CRLF
    ;~ ClipPut($XMLString)
    
    ;~ https://regex101.com/r/Penq4V/1
    Local $aLatLon = StringRegExp($XMLString, '<lat>(.+)<\/lat>|<lon>(.+)<\/lon>', 3)
    For $i = 0 To UBound($aLatLon) -1 Step 1
        ConsoleWrite($i & ' ' & Asc($aLatLon[$i]) & @CRLF)
    Next
    _ArrayDisplay($aLatLon, '$aLatLon', '', 0, Default, 'Lat|Lon')
    Alles anzeigen

  • Tomtom Navi prüfen ob Netzwerk aktiv ist

    • Bitnugger
    • 20. Mai 2020 um 11:33

    Hier noch ein Bsp.:

    AutoIt
    #include <Array.au3>
    
    Local $XMLString = _
    '<countryCode>DE</countryCode>' & @CRLF & _
    '<country>Deutschland</country>' & @CRLF & _
    '<countryCodeISO3>DEU</countryCodeISO3>' & @CRLF & _
    '<freeformAddress>Musterstraße 4, 01234 Muster</freeformAddress>' & @CRLF & _
    '<localName>Musterhausen</localName>' & @CRLF & _
    '</address>' & @CRLF & _
    '<position>' & @CRLF & _
    '<lat>49.90707</lat>' & @CRLF & _
    '<lon>7.81838</lon>' & @CRLF & _
    '</position>' & @CRLF & _
    '<viewport>' & @CRLF & _
    '<topLeftPoint>' & @CRLF & _
    '<countryCode>DE</countryCode>' & @CRLF & _
    '<country>Deutschland</country>' & @CRLF & _
    '<countryCodeISO3>DEU</countryCodeISO3>' & @CRLF & _
    '<freeformAddress>Musterstraße 5, 01234 Muster</freeformAddress>' & @CRLF & _
    '<localName>Musterhausen</localName>' & @CRLF & _
    '</address>' & @CRLF & _
    '<position>' & @CRLF & _
    '<lat>46.90707</lat>' & @CRLF & _
    '<lon>6.81838</lon>' & @CRLF & _
    '</position>' & @CRLF & _
    '<viewport>' & @CRLF & _
    '<topLeftPoint>' & @CRLF
    
    Local $aLat = StringRegExp($XMLString, '<lat>(.+)</lat>', 3)
    Local $aLon = StringRegExp($XMLString, '<lon>(.+)</lon>', 3)
    _ArrayDisplay($aLat, '$aLat', '', 0, Default, 'Lat')
    _ArrayDisplay($aLon, '$aLon', '', 0, Default, 'Lon')
    Local $aLatLon[UBound($aLat)][2]
    For $i = 0 To UBound($aLatLon) -1 Step 1
        $aLatLon[$i][0] = $aLat[$i]
        $aLatLon[$i][1] = $aLon[$i]
    Next
    _ArrayDisplay($aLatLon, '$aLatLon', '', 0, Default, 'Lat|Lon')
    Alles anzeigen
  • Excel Makro mit Autoit

    • Bitnugger
    • 20. Mai 2020 um 11:16
    Zitat von wuff100

    Sorry, klappt jetzt!

    Na fein... dann ist der Tag ja gerettet. 8o

  • FAQ - SciTE Editor

    • Bitnugger
    • 20. Mai 2020 um 11:09

    Wie kann ich eine "Sitzung" (also z.B. meine aktuell bearbeiteten Dateien) mit wenig Aufwand gleichzeitig öffnen? - Teil 2

    Zitat von Bitnugger

    Abhilfe könnte man dadurch schaffen, wenn anstelle von SciTE ein Batch oder AutoIt-Script aufgerufen wird, welches die Behandlung der Backslashes erledigt und SciTE dann mit korrigiertem Pfad zur .session startet.

    So, hier für Mutige die erste Version des AutoIt-Scripts... ich habe das mal als Archiv in den Anhang gepackt, weil es so einfacher ist.

    Damit beim Anklicken einer *.session das AutoIt-Script aufgerufen wird und die angeklickte "SciTE.session" als Parameter übergeben bekommt, muss zuvor eine Verknüpfung mit diesem Dateityp erstellt bzw. diese geändert werden.

    Dies geschieht mit den Befehlen assoc und ftype, die in einer cmd.exe als Administrator ausgeführt werden müssen.

    Normalerweise gibt es keine Verknüpfung für .session... aber das können wir ja überprüfen und dies sähe dann so aus:

    assoc .session

    Dateizuordnung für die Erweiterung .session nicht gefunden.

    Gibt es eine Verknüpfung mit .session... sähe das z.B. so aus:

    assoc .session

    .session=SciTE.session

    In dem Fall können wir uns auch gleich den Wert für ftype anzeigen lassen:

    ftype SciTE.session

    SciTE.session="F:\AutoIt\AutoIt3_Tools\Load_SciTE_Session\SciTE\SciTE.exe" "%1"

    Jedenfalls müssen wir das dann so ändern, wobei die Pfade natürlich angepasst werden müssen:

    assoc .session=SciTE4AutoIt3.File.session

    for compiled AutoIt script ...

    ftype SciTE4AutoIt3.File.session="F:\AutoIt\AutoIt3_Tools\Load_SciTE_Session\Load_SciTE_Session.exe" "%1"

    for uncompiled AutoIt script ...

    ftype SciTE4AutoIt3.File.session="C:\Program Files (x86)\AutoIt3\AutoIt3.exe" "F:\AutoIt\AutoIt3_Tools\Load_SciTE_Session\Load_SciTE_Session.au3" "%1"

    ftype also für die .exe oder die .au3 ausführen, nicht für beide!

    In dem AutoIt-Script speichere ich die alten Werte für assoc und ftype (falls vorhanden) in eine Datei... es sollte also nichts schief gehen.

    Da die Extension *.session aber nicht nur von SciTE genutzt wird, muss der Inhalt geprüft werden, was von dem Script auch gemacht wird. Welche überprüft werden, könnt ihr im Script nachsehen, denn ich will mir hier nicht die Finger wund tippen. ;)

    Noch was... SciTE kennt folgende Properties, die mit einer Session zu tun haben:

    save.session 

    save.session.advanced 

    session.loaded 

    session.bookmarks 

    session.folds

    Welche Bedeutung/Funktion sie haben, könnt ihr der SciTE4AutoIt3-Hilfe entnehmen.

    SciTE4AutoIt3 bringt übrigens auch ein Lua-Script mit, dass auch etwas mit Sessions zu tun hat:

    C:\Program Files (x86)\AutoIt3\SciTE\lua\LoadSession.lua

    Geladen wird es beim Start von SciTE, aktiv wird das Script aber nur, wenn save.session.advanced=1 ist, und dann wird session.loaded auch auf 1 gesetzt, falls es das nicht schon war.

    So, macht damit was ihr wollt...

    Dateien

    Load_SciTE_Session.zip 651,5 kB – 679 Downloads
  • FAQ - SciTE Editor

    • Bitnugger
    • 19. Mai 2020 um 17:21

    Wie kann ich eine "Sitzung" (also z.B. meine aktuell bearbeiteten Dateien) mit wenig Aufwand gleichzeitig öffnen? - Teil 1

    Zitat von HansJ54

    Wie kann ich eine "Sitzung" (also z.B. meine aktuell bearbeiteten Dateien) mit wenig Aufwand gleichzeitig öffnen?

    Aus SciTE-Menu heraus:

    DE: SciTE Menu Datei ==> Sitzung laden...

    EN: SciTE Menu File ==> Load session...

    Wenn du SciTE4AutoIt3 installiert hast, und nicht nur SciTE-Lite, wird die letzte Sitzung via Lua automatisch geladen. Den Eintrag dazu findest du in der Datei "C:\Program Files (x86)\AutoIt3\SciTE\lua\SciTEStartup.lua"

    LoadLuaFile("LoadSession.lua")

    SciTE mit beliebiger Sitzung starten:

    "C:\Programme (x86)\AutoIt3\SciTE\SciTE.exe" "-loadsession:%1"

    Das Problem mit obiger Syntax besteht allerdings darin, dass, wenn der Pfad (%1) Backslashes (\) enthält, diese mit doppelten Backslashes (\\) maskiert werden müssen.

    Zum Beispiel:

    "C:\Programme (x86)\AutoIt3\SciTE\SciTE.exe" "-loadsession: c:\abc\def\other.session"

    Damit SciTE die Sitzung findet, müsste die Zeile so geändert werden:

    "C:\Programme (x86)\AutoIt3\SciTE\SciTE.exe" "-loadsession: c:\\abc\\def\\other.session"

    Zitat von HansJ54

    Wenn ich eine Session speichere und dann die .session anklicke, öffnet sich die Datei zum Lesen. Kann man nicht durch Anklicken die Dateien öffnen?

    Ja, das ginge z.B. mit:

    assoc .session=SciTE4AutoIt3.File.session

    ftype SciTE4AutoIt3.File.session="C:\Program Files (x86)\AutoIt3\SciTE\scite.exe" "-loadsession:%1"

    ...was aber zu dem oben beschrieben Problem mit den Backslashes (\) und evtl. auch anderen führt, da *.session nicht nur von SciTE benutzt wird, um Sitzungen zu laden/speichern - so z.B. auch AutoHotkey, OneDrive und Excel. Abhilfe könnte man dadurch schaffen, wenn anstelle von SciTE ein Batch oder AutoIt-Script aufgerufen wird, welches die Behandlung der Backslashes erledigt und SciTE dann mit korrigiertem Pfad zur .session startet.

    Zitat von HansJ54

    Ich hätte vermutet, dass das irgendwie mit "Sitzung laden" geht, finde aber nichts in der Hilfe unter "Session" dazu.

    Dann hast du wohl in der falschen Hilfe geguckt, oder aber nur SciTE-Lite und nicht SciTE4AutoIt3 installiert. Denn SciTE4AutoIt3 hat eine eigene Hilfe-Datei:

    "c:\Program Files (x86)\AutoIt3\SciTE\SciTE4AutoIt3.chm"

  • [Nim] Ternärer Operator

    • Bitnugger
    • 19. Mai 2020 um 03:00

    Sehr schön!

    echo (a < b ? a ! b) -> 5
    echo (b > a ? b ! a) -> 7

  • Excel Makro mit Autoit

    • Bitnugger
    • 19. Mai 2020 um 02:47
    Zitat von wuff100

    Müsste mit "UserInterfaceOnly:=True, Contents:=True, DrawingObjects:=False" irgendwie erweitert werden.

    So wie oben im VBA-Macro.

    Teste mal das Script im Anhang... und lies die Kommentare! ;)

    Dateien

    Excel_Workbook_Protect.zip 3,01 kB – 295 Downloads
  • Excel Makro mit Autoit

    • Bitnugger
    • 18. Mai 2020 um 22:00

    Versuche es mal so:

    AutoIt
    #include <Excel.au3>
    
    Global $oExcel, $oWorkbook, $sFilePath = @ScriptDir & "\Test.xlsx", $sPassword = "Password"
    ;~ ShellExecute($sFilePath)
    ;~ Exit
    
    $oExcel = _Excel_Open(False)
    $oWorkbook = FileExists($sFilePath) ? _Excel_BookOpen($oExcel, $sFilePath) : _Excel_BookNew($oExcel)
    ; *** Unprotect ***
    ;~ $oExcel.Activesheet.Unprotect($sPassword) ; aktives Arbeitsblatt entschützen
    $oWorkbook.Unprotect($sPassword) ; komplette Arbeitsmappe entschützen
    
    ; *** Make your changes ***
    _Excel_RangeWrite($oWorkbook, $oWorkbook.Activesheet, "String" & @CRLF & "Tests")
    If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeWrite", "Error writing to worksheet." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
    MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_RangeWrite Example 1", "String successfully written.")
    
    ; *** Protect ***
    ;~ $oExcel.Activesheet.Protect($sPassword) ; aktives Arbeitsblatt schützen
    $oWorkbook.Protect($sPassword) ; komplette Arbeitsmappe schützen
    ;~ $oExcel.Run("BlattSchuetzenEin") ; Makro, alle Arbeitsblätter schützen - ist quasi identisch mit komplette Arbeitsmappe schützen
    
    ;~ _Excel_BookSaveAs($oWorkbook, $sFilePath, Default, True)
    _Excel_BookSave($oExcel)
    _Excel_Close($oExcel)
    Alles anzeigen
  • Wrapper für FLANN-Bibliothek - ideal für Nearest-Neighbour-Problem

    • Bitnugger
    • 18. Mai 2020 um 20:12

    Ich denke es liegt an drei Dingen:

    1.) $p_A ist immer ein Null-Pointer, weil du für den Parameter lpProcName " " angegeben hast.

    Local Static $p_A = DllCall($h_KRNL32, "ptr", "GetProcAddress", "handle", $p_FLANNDLL, "str", " ")[0]

    x86: $p_A --> 0x00000000

    x64: $p_A --> 0x0000000000000000

    Richtig wäre wohl:

    Local Static $p_A = DllCall($h_KRNL32, "ptr", "GetProcAddress", "handle", $p_FLANNDLL, "str", "flann_find_nearest_neighbors")[0]

    2.) Hier gibst du evtl. nicht die korrekten Typen an.

    AutoIt
        DllCallAddress("INT", $p_A, _
                "PTR", $t_DataSet[0], "INT", $t_DataSet[1], "INT", $t_DataSet[2], _
                "PTR", $t_TestSet[0], "INT", $t_TestSet[1], _
                "PTR", DllStructGetPtr($p_indices), "PTR", DllStructGetPtr($p_dists), _
                "INT", $nn, "Ptr", DllStructGetPtr($p_DEFAULT_FLANN_PARAMETERS))

    Erwartet wird: EXPORTED int flann_find_nearest_neighbors(float* dataset, int rows, int cols, float* testset, int tcount, int* result, float* dists, int nn, FLANNParameters* flann_params)

    Hier habe ich die Exports gefunden (ab Zeile 373):

    https://git.rwth-aachen.de/till.hofmann/o…13c7c6dbe86aba0

    3.) $a_DataSet enthält Double-Werte, $a_TestSet aber Int32-Werte... sollten da nicht auch Double-Werte drin sein?

  • Script in Dauerschleife ohne große CPU-Last

    • Bitnugger
    • 18. Mai 2020 um 17:30
    Zitat von HansJ54

    Danke für die Hilfe, ist genau das was ich brauche. Kleines Problem noch:

    #include <_SplitPath.au3> wird nicht gefunden.

    Ich mal wieder... total vergessen... habe das Archiv in #Post 4 korrigiert.

    _SplitPath() ist meine Alternative zu _PathSplit().

    Hier kann man sehen, warum:

    _SplitPath_Example.png

    Zitat von HansJ54

    Noch ein Verständnisproblem: wenn ich innerhalb des überwachten Ordners eine Textdatei mit Rechtsklick erzeuge oder diese dann innerhalb des Ordner kopiere, wird das nicht als "neu" angesehen?

    Doch, sebstverständlich wird sie dann als neu angesehen... denn in beiden Fällen wurde ja eine neue Datei in dem zu überwachenden Ordner erzeugt, das "wie" ist dabei völlig egal.

  • Tomtom Navi prüfen ob Netzwerk aktiv ist

    • Bitnugger
    • 17. Mai 2020 um 23:40
    Zitat von Musashi

    Sowohl die 7zG.exe = standalone 7Zip-Modul mit GUI als auch die 7za.exe = standalone 7Zip-Modul ohne GUI reagieren auf die @SW_*-Flags.

    Ja, ok, das sind aber auch beides Spezialfälle...

    7zG.exe: #32770 The class for a dialog box.

    7za.exe: ConsoleWindowClass

    https://docs.microsoft.com/en-us/windows/…-window-classes

  • Tomtom Navi prüfen ob Netzwerk aktiv ist

    • Bitnugger
    • 17. Mai 2020 um 18:22
    Zitat von water

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

    Hehe... ne, wie ich soeben getestet habe, ist es eh egal, was ich bei Run angebe, es wird ignoriert.

    https://docs.microsoft.com/en-us/windows/…user-showwindow

    Das hier habe ich als Show.exe kompiliert:

    AutoIt
    GUICreate('Test_SW')
    GUISetState() ; @SW_SHOW = Shows a previously hidden window (default)
    
    Do
        Sleep(100)
    Until GUIGetMsg() = -3

    Und hiermit habe ich die Show.exe gestartet:

    AutoIt
    Run('m:\AutoIt\Test\Show.exe', '', @SW_HIDE) ; @SW_MINIMIZE, @SW_HIDE bringt nicht, es ist egal was man da setzt!
    WinSetState(WinWait('Test_SW', '', 5),'', @SW_MINIMIZE) ; das funktioniert!
    ;~ WinSetState(WinWait('Test_SW', '', 5),'', 11) ; funktioniert auch! - @SW_FORCEMINIMIZE = 11 (kennt AutoIt nicht!)

    Es geht also doch nicht ohne ein WinSetState... ergo falsch gedacht und du hattest recht.

  • Tomtom Navi prüfen ob Netzwerk aktiv ist

    • Bitnugger
    • 17. Mai 2020 um 16:53
    Zitat von water

    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.

  • Script in Dauerschleife ohne große CPU-Last

    • Bitnugger
    • 17. Mai 2020 um 16:42

    Du hast da nichts falsch eingestellt. Es lag daran, dass ich mein SciTE auf UTF-8 umgestellt habe und das Encoding für Ausgaben von _ConOut für dich dann falsch waren.

    Ich habe es aber bereits in #Post 4 korrigiert und noch einige andere Dinge geändert!

    AutoIt: _ShellChangeNotify.au3
    #cs
        Wenn das IN/Out-Encoding in SciTE auf UTF-8 umgestellt wurde, muss die Funktion _ShellChangeNotify mit $g_iConOutEncoding = 65001 aufgerufen werden, anderfalls 0 oder 3!
    
        Default IN/Out-Encoding in SciTE ist 0 = the current system Windows ANSI code page!
        Dies kann in den Benutzereinstellungen (@LocalAppDataDir & '\AutoIt v3\SciTE\SciTEUser.properties') mit dem Wert 65001 auf UTF-8 geändert werden.
    
        Dazu diese beiden Zeilen in die SciTEUser.properties einfügen:
        code.page=65001
        output.code.page=65001
    #ce
    Func _ShellChangeNotify($hWnd, $vNotify, $iConOutEncoding = 0)
    Alles anzeigen
    Zitat von HansJ54

    Aber direkt eine Frage: Event 0x04000000, warum kommt da nicht der Text "Derzeit nicht verwendet", den ich im Script sehe?

    Der kam nicht, weil $sFilePath = "" war:

    AutoIt
    If $sFilePath Then
        ...
                Case $SHCNE_EXTENDED_EVENT   ; * 0x04000000 Derzeit nicht verwendet.
                    _ConOut('+ WM_SHELLCHANGENOTIFY: $SHCNE_EXTENDED_EVENT   | Derzeit nicht verwendet.' & @CRLF)
                    _ConOut('+ WM_SHELLCHANGENOTIFY: Event: 0x' & Hex($lParam) & '       | Path: ' & $sFilePath & @CRLF)
                    _ConOut('- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' & @CRLF)
        
        ...
    Else
            _ConOut('- WM_SHELLCHANGENOTIFY: Event: 0x' & Hex($lParam) & @CRLF)
            _ConOut('- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' & @CRLF)
    EndIf
    Alles anzeigen

    Das habe ich aber auch geändert...

  • Tomtom Navi prüfen ob Netzwerk aktiv ist

    • Bitnugger
    • 16. Mai 2020 um 23:31
    Zitat von Windi

    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?

    Zitat von Windi

    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.

  • markierte Dateien mit der Maus bewegen ?

    • Bitnugger
    • 16. Mai 2020 um 11:48
    Zitat von water

    Warum das GUI automatisieren?

    Du kannst Bilder über die command line komprimieren. So wie es aussieht brauchst Du nur einen API Key zu besorgen.

    Jetzt wo ich das lese, fällt mir dazu wieder ein anderes, sehr gutes Tool ein, dass nichts kostet und sehr viele Möglichkeiten bietet, Bilder zu bearbeiten/konvertieren: nconvert (Batch) bzw. XNConvert (GUI).

    Zitat


    NConvert ist ein effektiver, plattformübergreifender, Befehlszeile/Batchdienst für die Bearbeitung von Bildern mit über 80 Befehlen. Kompatibel mit 500 Bildformaten.

    XnConvert ist ein schneller, leistungsstarker und kostenloser plattformübergreifender Batch-Bildkonverter, Es ermöglicht die automatisierte Bearbeitung Ihrer umfangreichen Fotosammlung, Sie können damit Ihre verschiedenen Grafiken, Bilder und Fotos einfach drehen, konvertieren, komprimieren und mit über 80 Funktionen (wie Größenänderung, Zuschneiden, Farbanpassungen, Filter, ...) bearbeiten lassen. Alle gängigen Bild- und Grafikformate werden unterstützt (JPEG, TIFF, PNG, GIF, WEBP, PSD, JPEG2000, OpenEXR, Camera RAW, HEIC, PDF, DNG, CR2). Die verwendeten Einstellungen lassen sich als Profile speichern und für weitere Konvertierungsvorgänge wiederverwenden

  • Script in Dauerschleife ohne große CPU-Last

    • Bitnugger
    • 16. Mai 2020 um 11:13
    Zitat von HansJ54

    Kann ich natürlich mit While ... Sleep(1000) ... Wend machen, aber ist das die optimale Lösung?

    Nein, in den meisten Fällen wohl eher nicht. Du kannst dich mit _WinAPI_ShellChangeNotifyRegister benachrichtigen lassen, wenn sich in dem/den von dir beobachteten Verzeichnis/sen etwas geändert hat, und solange keine Message kommt, kann dein Script schlafen. In der AutoIt-Hilfe findest du ein Bsp. dazu... und im Anhang ein Script von mir zu diesem Thema, darin kannst du sehen, was du damit alles anstellen kannst.

    PS: _WinAPI_ShellChangeNotifyRegister funktioniert aber nur auf Festplatten, die mit NTFS formatiert wurden!

    Edit: Hatte vergessen _SplitPath.au3 in das Archiv zu packen, dass ich nun hinzugefügt habe und auch ein Bsp. für _SplitPath.

    Dateien

    _ShellChangeNotify.zip 178,68 kB – 273 Downloads
  • Excel Unterschied .xlsx und .csv

    • Bitnugger
    • 16. Mai 2020 um 01:23
    Zitat von HansJ54

    Mit der Erläuterung verstehe ich es, hätte aber sicher Probleme, so eine Zeile aufzusetzen :)

    Ich auch... 8o

    Ja, das ist alles eine Sache der Übung... viele gute Coder in AutoIt mögen solche langen Einzeiler aber eher weniger , weil dadurch natürlich ohne Frage die Übersichtlichkeit leidet. Ich finde aber eher, das es eine Sache der Gewohnheit ist.

    Z. B. sowas:

    AutoIt
    $g_aRasPiSubnetz = ($g_bUseLocalIP = True) ? StringSplit($g_sSubnetz, '.', 2) : _IsIP($g_sRasPiSubnetz) ? StringSplit($g_sRasPiSubnetz, '.', 2) : StringSplit($g_sSubnetz, '.', 2)
    
    $iTrouble = (($g_aRecvStats[$iStatsIndex][$rsBlue] = 1 And $g_aLPSDatabase[$iLPSIndex][$eL_Online] = 5) Or $g_aRecvStats[$iStatsIndex][$rsRed] = 1) ? 1 : 0
    
    $sTCPErrorText = @error = -2 ? 'not connected' : @error = 1 ? 'IPAddr is incorrect' : @error = 2 ? 'Port is incorrect' : @error = 10060 ? 'Connection timed out' : 'Unknown error'
     
    If BitAND($dExtract02, 0x0F) Or BitAND($dExtract02, 0x10) Or BitAND($dExtract02, 0x20) Or BitAND($dExtract02, 0x40) Or BitAND($dExtract02, 0x80) _
    Or BitAND($dExtract03, 0x01) Or BitAND($dExtract03, 0x02) Or BitAND($dExtract03, 0x04) Or BitAND($dExtract03, 0x10) Or BitAND($dExtract03, 0x20) _
    Or BitAND($dExtract04, 0x01) Or BitAND($dExtract04, 0x02) Or BitAND($dExtract04, 0x10) _
    Or BitAND($dExtract05, 0x10) Then
        $iRed = 1
    Else
        $iGreen = 1
    EndIf
    Alles anzeigen
  • Tomtom Navi prüfen ob Netzwerk aktiv ist

    • Bitnugger
    • 16. Mai 2020 um 00:14

    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.

    Dateien

    Tourenplan .au3 12,92 kB – 154 Downloads

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™