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

Beiträge von Lottich

  • Dateipfad der im Windowsexplorer markierten Datei auslesen

    • Lottich
    • 6. Februar 2026 um 14:17
    Zitat von SOLVE-SMART

    Rein aus Interesse: was wolltest du denn mit cURL in deinem Kontext machen? Verstehe nicht so ganz wie dir cURL überhaupt helfen hätte können, für das was du beschreibst 😅 .

    Es wird eine Abfrage an eine Online-DB gestartet. in den meisten Fällen geht das nur per cURL. Musste schon etwas länger suchen um eine DB zu finden, die das mit "normaler" URL macht UND auch den deutschen Inhalt angibt. Ich lade die gefundene HTML Quellcode runter, in ein Array und gehe das dann letzendlich mit stringbetween durch.

  • Dateipfad der im Windowsexplorer markierten Datei auslesen

    • Lottich
    • 5. Februar 2026 um 19:12

    Stimmt, das funktioniert auch. Das erscheint auf den 1. Blick auch einfacher/simpler als die Funktionen von AspirinJunkie und BugFix

    Doch auch das hätte ich selber nicht hinbekommen. DLLCalls & Objekte... Davon hab ich keine Ahnung. Ich schustere mir meine Scripts mit der AutoIt-Hilfe zusammen und wenn ich da nicht weiter komme, frage ich die Gemeinschaft.

    Und ich bin dankbar für jedwede Unterstützung, die mir gewährt wird. Mein aktuelles Script dient dem "Aufräumen" meiner Mediensammlung. Mit einer Quick&Dirty-Lösung (weil ich mit cURL nicht klar komme). Euch würde schlecht werden, wenn ihr den Code seht :D

    Aber hey, es ist für mich und ein paar Freunde und es macht letztendlich was es soll. Kein Desktoplink nötig, es startet per Rechtsklick auf einen Ordner aus dem Kontextmenü heraus, aber auch nur dann, wenn alle Voraussetzungen dazu erfüllt sind. Deshalb ist gerade diese Funktion hier so wichtig dafür.


    Danke für eure Unterstützung :theke:

    Anmerkung für alle Leser:
    alle 3 Funktionen von AspirinJunkie , BugFix und auch die von Velted funktionieren.

  • Dateipfad der im Windowsexplorer markierten Datei auslesen

    • Lottich
    • 2. Februar 2026 um 18:10

    ohhh, ich wusste nicht wie ich die Maps auswerten muss. hab mir das auch schon mit arraydisplay ausgeben lassen. 3 offene Explorerfenster -> 3 Einträge im Array, alle mit dem Namen {Map[5]} ... da ist das 1. mal der D-Zug durch den Bahnhof gerauscht :D

    AutoIt
    Global $aExplorerWindows = _getSelectExplorerFiles(True, "z-index")
    Global $mExplWin = $aExplorerWindows[0]
    MsgBox(0,0,($mExplWin["selected"])[0])

    So klappt endlich die Ausgabe des markierten Ordners. Hat eine Weile gedauert, bis ich verstanden habe, dass $mExplWin["selected"] nochmals in Klammern gesetzt werden muss. Wäre ja sonst ein 2D Array, was ein Fehler wäre.

    Ich hatte schon befürchtet, dass ich mein Tool umschreiben muss. Vielen Dank AspirinJunkie Das sollte ich jetzt so in mein Tool übernehmen können.

  • Dateipfad der im Windowsexplorer markierten Datei auslesen

    • Lottich
    • 2. Februar 2026 um 16:56
    Zitat von Velted

    Moin Lottich, wie wäre es mit dieser Version?

    Hallo Velted , diese Funktion hab ich auch schon probiert, mit dem gleichen Resultat. Es gibt das Ergebnis aus dem zuletzt geöffneten Explorerfenster.

    so hab ich es getestet:
    ich öffne den Explorer und navigiere zum Ordner, den ich rechtsklicken will. Dann öffne ich eine neue Instanz vom Explorer, markiere einen anderen Ordner. Danach switche ich zurück zur 1. Instanz mit meinem gewünschten Ordner.

    Dann markiere ich ihn und starte das Script, um den Pfad meines Wunschordners zu bekommen. Aber es gibt mir den Pfad des anderen Ordners zurück.


    AspirinJunkie Das ist ja cool. Das ist diese Maps-Geschichte?! Habe noch nie mit sowas gearbeitet. Das 1. ArrayDisplay gibt mir direkt den Pfad meines Wunschordners aus, selbst wenn ich mehrere Explorer Instanzen geöffnet habe. Allerdings im Anschluss auch Infos aus allen anderen geöffneten Instanzen. Das liegt sicherlich an "For... In..." in Zeile 8. Kann man das umbauen, sodass nur der 1. Wert ($mExplWin["path"]) zurück kommt, ohne die Info´s der anderen Instanzen?

    Wenn ich versuche mir direkt $mExplWin["path"] auszugeben, schimpft Scite, dass ich die Variable nicht deklariert habe. Wenn ich das richtig verstehe, wird $mExplWin erst mit Werten in der For-In-Schleife befüllt und gültig. Dann hört´s aber auch schon auf mit meinem Verstehen, sofern das überhaupt korrekt ist.
    Ist genauso wie bei der Funktion von BugFix . Das ist so viel höher als mein eigener AutoIt Skill, dass ich mir den Code zwar anschauen kann, aber nur einen Bruchteil davon verstehe. Ich bin was Programmieren angeht nur ein Hobbybastler und manchmal kann ich fremde Funktionen für meine Bedürfnisse anpassen. Aber das hier übersteigt mein Können bei weitem. Und ich bin alt genug, dass ich das zugeben kann :whistling:

  • Dateipfad der im Windowsexplorer markierten Datei auslesen

    • Lottich
    • 1. Februar 2026 um 20:54

    Hallo BugFix

    gibt es von dieser Funktion auch eine Version, die das aktuell im Fokus befindliche Explorerfenster verwendet?

    Das Tool, was ich gerade schreibe, nutzt deinen Code um rekursiv nach bestimmten Dateitypen zu suchen.

    Ich Rechtsklicke auf einen Ordner und dann geht´s los. Es funktioniert alles einwandfrei, bis der Moment kommt, dass ein neues Explorerfenster aufgemacht wird, um irgendwas zu tun. Wechsle ich dann zum vorherigen Fenster zurück, und rechtsklicke dann auf den Ordner, gibt deine Funktion den Ordnerpfad aus dem zuletzt geöffneten, also dem falschen Explorerfenster zurück.

  • Progress einfärben in Win10

    • Lottich
    • 29. Januar 2026 um 22:08

    ah, okay. Danke

    Früher war das noch nicht so... aber da war ja eh alles besser :D

  • Progress einfärben in Win10

    • Lottich
    • 28. Januar 2026 um 02:12

    nice, das guck ich mir mal an. Danke Oscar

  • Progress einfärben in Win10

    • Lottich
    • 27. Januar 2026 um 02:02

    Oh, danke. ich habe _WinAPI_SetWindowTheme() falsch benutzt. Das ging ja fix ^^

  • Progress einfärben in Win10

    • Lottich
    • 26. Januar 2026 um 23:35

    Hallo. Es treibt meinen inneren Monk in den Wahnsinn, dass ich es nicht hinbekomme, die Farbe eines GUICtrlCreateProgress() zu ändern. Ich lese immer wieder, das es im XP-Stil nicht funktioniert, aber ich nutze Win10.

    Ist das bei euch auch so, dass das Schweineding einfach immer grün bleibt???

    Habe hier mal ein sehr kurzes Beispielscript.

    Da ist 2x das selbe GUI, nur in verschiedenen Versionen.

    Gui1 ist die aktuell verwendete. Weil das mit dem Einfärben von Titelleiste, ListviewHeader und Progress einfach nicht will..

    Gui2 hab ich also verworfen, dennoch hab ich es dabei, weil mich da etwas stutzig macht. Der Progress... wenn das GUI in die Taskleiste minimiert und wiederhergestellt wird, ist der Progress komplett schwarz?! Warum ist das so?

    Spoiler anzeigen
    AutoIt
    #include <ProgressConstants.au3>
    #include <WindowsConstants.au3>
    #include <StaticConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiStatusBar.au3>
    #include <GuiListView.au3>
    #include <WinAPITheme.au3>
    
    Opt('TrayAutoPause', 0)
    
    Global $hGui, $hBtn_Exit, $hBtn_Down, $hBtn_Start, $hStatus, $idProgress, $idListview
    
    _hGui1()
    _hGui2()
    
    Func _hGui1()
    	$hGui = GUICreate("stark geschrumpftes Codebeispiel", 1000, 525, -1, -1, $WS_POPUPWINDOW)
    	GUISetBkColor(0x000000, $hGui)
    	GUISetFont(12, 400, Default, "Source Code Pro")
    
    	GUICtrlCreateLabel("Beispiel 1", 300, -5, 170, 30, $SS_CENTER, -1)
    	GUICtrlSetFont(-1, 16, 800, "", "Segoe Print")
    	GUICtrlSetColor(-1, 0xFF0000)
    
    	$hBtn_Exit = GUICtrlCreateButton("X", 975, 0, 25, 25)
    	GUICtrlSetBkColor($hBtn_Exit, 0xFF0000)
    	GUICtrlSetFont($hBtn_Exit, 12, 900)
    
    	$hBtn_Down = GUICtrlCreateButton("_", 950, 0, 25, 25)
    	GUICtrlSetBkColor($hBtn_Down, 0xFF0000)
    	GUICtrlSetFont($hBtn_Down, 12, 900)
    
    	$hBtn_Start = GUICtrlCreateButton("Start", 5, 427, 100, 28)
    	GUICtrlSetBkColor($hBtn_Start, 0xFF0000)
    	GUICtrlSetFont($hBtn_Start, 10)
    
    	$idProgress = GUICtrlCreateProgress(0, 515, 1000, 5, $PBS_SMOOTH)
    	GUICtrlSetColor(-1, 0xFF0000) ; rot
    	GUICtrlSetBkColor(-1, 0x000000) ; schwarz
    
    	$idListview = _GUICtrlListView_Create($hGui, "Gefundene Dateien: " & "12" & "|Zieldatei", 2, 27, 996, 396, BitOR($LVS_NOCOLUMNHEADER, $LVS_REPORT, $LVS_SHOWSELALWAYS))
    	_GUICtrlListView_SetColumnWidth($idListview, 0, 500)
    	_GUICtrlListView_SetColumnWidth($idListview, 1, 470)
    	_GUICtrlListView_SetBkColor($idListview, _WinAPI_SwitchColor(0xcf330d))
    	_GUICtrlListView_SetTextColor($idListview, _WinAPI_SwitchColor(0xFFFFFF))
    	_GUICtrlListView_SetTextBkColor($idListview, _WinAPI_SwitchColor(0xcf330d))
    	_GUICtrlListView_SetExtendedListViewStyle($idListview, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES, $LVS_EX_SUBITEMIMAGES))
    	_GUICtrlListView_EnableGroupView($idListview)
    
    	GUIRegisterMsg($WM_NCHITTEST, "_WM_FENSTER_BEWEGEN")
    	GUISetState(@SW_SHOW)
    
    	While 1
    		$iMsg = GUIGetMsg()
    		Switch $iMsg
    			Case $hBtn_Exit
    				GUIDelete($hGui)
    				ExitLoop
    
    			Case $hBtn_Down
    				GUISetState(@SW_MINIMIZE)
    
    			Case $hBtn_Start
    				For $i = 1 to 100
    					GUICtrlSetData($idProgress, $i) ; Demo Progress
    					Sleep(50)
    				Next
    
    		EndSwitch
    	WEnd
    EndFunc   ;==>_hGui1
    
    Func _hGui2()
    	$hGui = GUICreate("stark geschrumpftes Codebeispiel", 1000, 525, -1, -1  )
    	GUISetBkColor(0x000000, $hGui)
    	GUISetFont(12, 400, Default, "Source Code Pro")
    
    	GUICtrlCreateLabel("Beispiel 2", 300, -5, 170, 30, $SS_CENTER, -1)
    	GUICtrlSetFont(-1, 16, 800, "", "Segoe Print")
    	GUICtrlSetColor(-1, 0xFF0000)
    
    	$hBtn_Start = GUICtrlCreateButton("Start", 5, 427, 100, 28)
    	GUICtrlSetBkColor($hBtn_Start, 0xFF0000)
    	GUICtrlSetFont($hBtn_Start, 10)
    
    	$hStatus = _GUICtrlStatusBar_Create($hGui)
    	_GUICtrlStatusBar_SetMinHeight($hStatus, 10)
    	_WinAPI_SetWindowTheme($hStatus, "", "")
    	_GUICtrlStatusBar_SetBkColor($hStatus, 0x000000)
    	$idProgress = GUICtrlCreateProgress(0, 515, 1000, 5, $PBS_SMOOTH)
    	GUICtrlSetColor($hStatus, 0xFF0000) ; rot
    	GUICtrlSetColor($idProgress, 0xFF0000) ; rot
    	GUICtrlSetBkColor($hStatus, 0xFF0000) ; rot
    	GUICtrlSetBkColor($idProgress, 0xFF0000) ; rot
    	_GUICtrlStatusBar_EmbedControl($hStatus, 0, GUICtrlGetHandle($idProgress))
    
    	$idListview = _GUICtrlListView_Create($hGui, "Gefundene Dateien: " & "12" & "|Zieldatei", 2, 27, 996, 396, BitOR($LVS_REPORT, $LVS_SHOWSELALWAYS))
    	_GUICtrlListView_SetColumnWidth($idListview, 0, 500)
    	_GUICtrlListView_SetColumnWidth($idListview, 1, 470)
    	_GUICtrlListView_SetBkColor($idListview, _WinAPI_SwitchColor(0xcf330d))
    	_GUICtrlListView_SetTextColor($idListview, _WinAPI_SwitchColor(0xFFFFFF))
    	_GUICtrlListView_SetTextBkColor($idListview, _WinAPI_SwitchColor(0xcf330d))
    	_GUICtrlListView_SetExtendedListViewStyle($idListview, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES, $LVS_EX_SUBITEMIMAGES))
    	_GUICtrlListView_EnableGroupView($idListview)
    
    	GUIRegisterMsg($WM_NCHITTEST, "_WM_FENSTER_BEWEGEN")
    	GUISetState(@SW_SHOW)
    
    	While 1
    		$iMsg = GUIGetMsg()
    		Switch $iMsg
    			Case -3
    				GUIDelete($hGui)
    				ExitLoop
    
    			Case $hBtn_Start
    				For $i = 1 to 100
    					GUICtrlSetData($idProgress, $i) ; Demo Progress
    					Sleep(50)
    				Next
    
    		EndSwitch
    	WEnd
    EndFunc   ;==>_hGui2
    
    Func _WM_FENSTER_BEWEGEN($hWnd, $Msg, $wParam, $lParam)
    	Local $iResult = DllCall("user32.dll", "int", "DefWindowProc", "hwnd", $hWnd, "int", $Msg, "int", $wParam, "int", $lParam)
    	If @error Then Return $GUI_RUNDEFMSG
    	If $iResult[0] = $HTCLIENT Then Return $HTCAPTION
    	Return $iResult[0]
    EndFunc   ;==>_WM_FENSTER_BEWEGEN
    ;~ ; EndOfFile
    Alles anzeigen
  • FileCopyProgress - ähnlich dem Windows eigenen Copy-Window

    • Lottich
    • 19. Januar 2026 um 07:54

    Ah, okay. Danke. Ich ging davon aus, dass der Quellpfad inklusive der Datei sein muss.

    Das macht die Sache vielleicht etwas komplizierter... ich werde weiter basteln.

    Übrigens nutze ich in meinem Script noch einen weiteren Code von dir: _GetSelectionFromTopMostExplorer()

    Sehr sehr geil!! Bin da zufällig drauf gestoßen. Danke auch dafür :party:

  • FileCopyProgress - ähnlich dem Windows eigenen Copy-Window

    • Lottich
    • 18. Januar 2026 um 00:51

    Hallo BugFix. Ich möchte gerne dein Script in meines integrieren. Aber ich bekomms nicht vernünftig zum Laufen.

    Mein eigener Code stellt mir ein 2D Array zusammen:

    AutoIt
    Global $aDateien[1][3]
    ;dann mit _ArrayAdd() das Array befüllen und den index immer um +1 erweitern
    ; $aDateien[0][0] = 22
    ; $aDateien[$i][0] = Quelldatei
    ; $aDateien[$i][1] = Zieldatei mit neuem Namen
    ; $aDateien[$i][2] = Filezise(von der Quelldatei)

    Das Array ist in Ordnung und funktioniert in der GUI-Darstellung (per ListView, um zu sehen was da ist und wie es danach sein wird).

    Ich habe viele Versuche unternommen um das Array an deine Funktion zu übergeben. 1x hat es tatsächlich irgendwas gebracht und der Fortschrittsbalken hat sich bewegt. Dann ist irgendwas gewesen und brach ab. Beim Versuch, den "Fehler" auszumerzen hab ich dann beinahe alles zerschossen.

    Hab dann den Versuch unternommen aus meinem 2D Array 2 einzelne zu machen. Eines mit den Quelldateien, die ich dann vorher bereits umbenenne, damit das Problem mit den verschiedenen Namen aus der Welt geschafft ist.

    Das 2. Array ist mit den entsprechenden Zielordnern gefüllt. (Die Ziele können verschieden sein)

    Danach versuchte ich dein Script in meinem nachzubauen. Es funktioniert zumindest das Kopieren, aber die Infos beim Kopiervorgang... mir raucht die Birne... Also meine Frage:


    Wie muss man ein Array an deine Funktion übergeben, damit es funktioniert?

  • INI Dateiname dynamisch

    • Lottich
    • 26. Mai 2021 um 12:54

    freaks 😅 das geht doch bestimmt auch als kompletter einzeiler ausserhalb einer funktion

  • Prozedureinsprungpunkt "luaL_register"

    • Lottich
    • 12. April 2021 um 22:18

    das wär geil! Ich vermisse bei scite4autoit die rechten Spalten, wo die ganzen verwendeten Funktionen des geöffneten Scripts aufgelistet sind. Bei sciteRu gibts das

  • Prozedureinsprungpunkt "luaL_register"

    • Lottich
    • 11. April 2021 um 19:02

    ich glaub da gehts eher um Geschwindigkeit. Meines bescheidenen Wissens nach sind DLLs viel schneller in der Verarbeitung als AutoIt das je könnte

  • While ... Wend Frage

    • Lottich
    • 6. April 2021 um 14:20

    hier eine Variante per do ... until

    AutoIt
    Func _deine_vorhandene_Funktion()
        Local $iCheck
        Do
            $iCheck = 0
            If PixelSearch(964, 805, 963, 804, 0xE67600) Or PixelSearch(964, 805, 963, 804, 0xAC1F2D) Then $iCheck += 1
            Sleep(250)
        Until $iCheck = 0
        
        ;ab hier dannd er Rest deiner Funktion
    EndFunc
  • Tester gesucht für PSPad4AutoIt3 (Editor IDE)

    • Lottich
    • 29. März 2021 um 17:34

    er meint, dass er portabel nicht als killerfeature betrachtet. Ich übrigens auch nicht.

    ABER:

    es ist für mich gut nachvollziehbar, dass du es so siehst. Du steckst dein ganzes Herzblut in dein Projekt und bist voller Enthusiasmus dabei. Freust dich natürlich extrem, dass es dir gelang das Tool installationsfrei zum Laufen zu bekommen. War vermutlich auch eine Heidenarbeit. Von daher ist es durchaus logisch, dass du es als Killerfeature ansiehst 🙂

    Persönlich reicht mir scite4autoit vollkommen aus. Ich nutze auch nicht das isn-studio oder das Koda-Gedöns.

  • Einfaches Setup einer HTA Datei

    • Lottich
    • 22. März 2021 um 13:47

    ah, okay. Aber dann verhält es sich bei nem makro doch genauso, oder nicht?!

  • Einfaches Setup einer HTA Datei

    • Lottich
    • 22. März 2021 um 13:35

    Was spricht denn dagegen, den gewünschten Pfad zu Beginn des Scripts als Variable zu definieren?

    AutoIt
    $sPfad = "C:\Program Files\Common Files\"

    Dann kannst du an allen möglichen Stellen in deinem Script die Variable $sPfad genauso verwenden wie ein Makro, ohne das es eines ist,

    aber die gleiche Funktionalität bietet.

  • Ini / Ini read

    • Lottich
    • 19. März 2021 um 20:07

    ich denke das ist so nicht ganz korrekt.

    Wenn du die ini direkt aus deinem Script heraus erstellst, dann (zumindest war/ist es bei mir so) musst du als Parameter noch etwas angeben. Schau mal in der hilfe nach. Da müsste irgendwas zur Codierung stehen.

    Nachtrag:

    Ich glaub mich zu erinnern, die INI via filewrite() erstellt zu haben. Hatte auch ständig probleme mit Umlauten, daher der umweg…

  • Interessanter Artikel von Wolfgang Thierse

    • Lottich
    • 15. März 2021 um 20:09

    🤣🤣

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™