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

Beiträge von Oscar

  • Änderung der Spaltenbreite eines Listviews erkennen

    • Oscar
    • 7. Dezember 2010 um 19:15

    Ich möchte gern per GUIRegisterMsg die Änderung der Spaltenbreite eines Listviews erkennen. Ich finde aber keinen Notifywert, der das repräsentieren würde.
    Aber mal der Reihe nach:
    Ich habe das bisher so (naja, quick and dirty, aber funktioniert) gemacht:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt('GUIOnEventMode', 1)
    $hGui = GUICreate('Test', 600, 400)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_End')
    GUISetOnEvent($GUI_EVENT_PRIMARYUP, '_GetColWidth')
    $hListView = GUICtrlCreateListView('A|B|C', 10, 10, 580, 200)
    GUISetState()
    $hLabel = GUICtrlCreateLabel('', 10, 230, 580, 100)

    [/autoit] [autoit][/autoit] [autoit]

    While Sleep(500)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _End()
    Exit
    EndFunc ;==>_End

    [/autoit] [autoit][/autoit] [autoit]

    Func _GetColWidth()
    Local $sColWidth = ''
    For $i = 0 To 2
    $sColWidth &= _GUICtrlListView_GetColumnWidth($hListView, $i) & @CR
    Next
    GUICtrlSetData($hLabel, $sColWidth)
    Return $GUI_RUNDEFMSG
    EndFunc

    [/autoit]

    Ich hätte das aber lieber per WM_NOTIFY (oder gibt es da noch eine andere Möglichkeit?):

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <StructureConstants.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt('GUIOnEventMode', 1)
    $hGui = GUICreate('Test', 600, 400)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_End')
    $hListView = GUICtrlCreateListView('A|B|C', 10, 10, 580, 200)
    GUISetState()
    $hLabel = GUICtrlCreateLabel('', 10, 230, 580, 100)
    GUIRegisterMsg($WM_NOTIFY, 'WM_NOTIFY')

    [/autoit] [autoit][/autoit] [autoit]

    While Sleep(500)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _End()
    Exit
    EndFunc ;==>_End

    [/autoit] [autoit][/autoit] [autoit]

    Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView, $tInfo
    $hWndListView = $hListView
    If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView)
    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    Switch $hWndFrom
    Case $hWndListView
    Switch $iCode
    Case $LVN_COLUMNCLICK ; A column was clicked
    $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
    _DebugPrint("$LVN_COLUMNCLICK" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
    "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
    "-->Code:" & @TAB & $iCode & @LF & _
    "-->Item:" & @TAB & DllStructGetData($tInfo, "Item") & @LF & _
    "-->SubItem:" & @TAB & DllStructGetData($tInfo, "SubItem") & @LF & _
    "-->NewState:" & @TAB & DllStructGetData($tInfo, "NewState") & @LF & _
    "-->OldState:" & @TAB & DllStructGetData($tInfo, "OldState") & @LF & _
    "-->Changed:" & @TAB & DllStructGetData($tInfo, "Changed") & @LF & _
    "-->ActionX:" & @TAB & DllStructGetData($tInfo, "ActionX") & @LF & _
    "-->ActionY:" & @TAB & DllStructGetData($tInfo, "ActionY") & @LF & _
    "-->Param:" & @TAB & DllStructGetData($tInfo, "Param"))
    ; No return value
    Case $LVN_KEYDOWN ; A key has been pressed
    $tInfo = DllStructCreate($tagNMLVKEYDOWN, $ilParam)
    _DebugPrint("$LVN_KEYDOWN" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
    "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
    "-->Code:" & @TAB & $iCode & @LF & _
    "-->VKey:" & @TAB & DllStructGetData($tInfo, "VKey") & @LF & _
    "-->Flags:" & @TAB & DllStructGetData($tInfo, "Flags"))
    ; No return value
    Case $NM_CLICK ; Sent by a list-view control when the user clicks an item with the left mouse button
    $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
    _DebugPrint("$NM_CLICK" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
    "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
    "-->Code:" & @TAB & $iCode & @LF & _
    "-->Index:" & @TAB & DllStructGetData($tInfo, "Index") & @LF & _
    "-->SubItem:" & @TAB & DllStructGetData($tInfo, "SubItem") & @LF & _
    "-->NewState:" & @TAB & DllStructGetData($tInfo, "NewState") & @LF & _
    "-->OldState:" & @TAB & DllStructGetData($tInfo, "OldState") & @LF & _
    "-->Changed:" & @TAB & DllStructGetData($tInfo, "Changed") & @LF & _
    "-->ActionX:" & @TAB & DllStructGetData($tInfo, "ActionX") & @LF & _
    "-->ActionY:" & @TAB & DllStructGetData($tInfo, "ActionY") & @LF & _
    "-->lParam:" & @TAB & DllStructGetData($tInfo, "lParam") & @LF & _
    "-->KeyFlags:" & @TAB & DllStructGetData($tInfo, "KeyFlags"))
    ; No return value
    Case $NM_DBLCLK ; Sent by a list-view control when the user double-clicks an item with the left mouse button
    $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
    _DebugPrint("$NM_DBLCLK" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
    "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
    "-->Code:" & @TAB & $iCode & @LF & _
    "-->Index:" & @TAB & DllStructGetData($tInfo, "Index") & @LF & _
    "-->SubItem:" & @TAB & DllStructGetData($tInfo, "SubItem") & @LF & _
    "-->NewState:" & @TAB & DllStructGetData($tInfo, "NewState") & @LF & _
    "-->OldState:" & @TAB & DllStructGetData($tInfo, "OldState") & @LF & _
    "-->Changed:" & @TAB & DllStructGetData($tInfo, "Changed") & @LF & _
    "-->ActionX:" & @TAB & DllStructGetData($tInfo, "ActionX") & @LF & _
    "-->ActionY:" & @TAB & DllStructGetData($tInfo, "ActionY") & @LF & _
    "-->lParam:" & @TAB & DllStructGetData($tInfo, "lParam") & @LF & _
    "-->KeyFlags:" & @TAB & DllStructGetData($tInfo, "KeyFlags"))
    ; No return value
    Case $NM_KILLFOCUS ; The control has lost the input focus
    _DebugPrint("$NM_KILLFOCUS" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
    "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
    "-->Code:" & @TAB & $iCode)
    ; No return value
    Case $NM_RCLICK ; Sent by a list-view control when the user clicks an item with the right mouse button
    $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
    _DebugPrint("$NM_RCLICK" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
    "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
    "-->Code:" & @TAB & $iCode & @LF & _
    "-->Index:" & @TAB & DllStructGetData($tInfo, "Index") & @LF & _
    "-->SubItem:" & @TAB & DllStructGetData($tInfo, "SubItem") & @LF & _
    "-->NewState:" & @TAB & DllStructGetData($tInfo, "NewState") & @LF & _
    "-->OldState:" & @TAB & DllStructGetData($tInfo, "OldState") & @LF & _
    "-->Changed:" & @TAB & DllStructGetData($tInfo, "Changed") & @LF & _
    "-->ActionX:" & @TAB & DllStructGetData($tInfo, "ActionX") & @LF & _
    "-->ActionY:" & @TAB & DllStructGetData($tInfo, "ActionY") & @LF & _
    "-->lParam:" & @TAB & DllStructGetData($tInfo, "lParam") & @LF & _
    "-->KeyFlags:" & @TAB & DllStructGetData($tInfo, "KeyFlags"))
    ;Return 1 ; not to allow the default processing
    Return 0 ; allow the default processing
    Case $NM_RDBLCLK ; Sent by a list-view control when the user double-clicks an item with the right mouse button
    $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
    _DebugPrint("$NM_RDBLCLK" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
    "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
    "-->Code:" & @TAB & $iCode & @LF & _
    "-->Index:" & @TAB & DllStructGetData($tInfo, "Index") & @LF & _
    "-->SubItem:" & @TAB & DllStructGetData($tInfo, "SubItem") & @LF & _
    "-->NewState:" & @TAB & DllStructGetData($tInfo, "NewState") & @LF & _
    "-->OldState:" & @TAB & DllStructGetData($tInfo, "OldState") & @LF & _
    "-->Changed:" & @TAB & DllStructGetData($tInfo, "Changed") & @LF & _
    "-->ActionX:" & @TAB & DllStructGetData($tInfo, "ActionX") & @LF & _
    "-->ActionY:" & @TAB & DllStructGetData($tInfo, "ActionY") & @LF & _
    "-->lParam:" & @TAB & DllStructGetData($tInfo, "lParam") & @LF & _
    "-->KeyFlags:" & @TAB & DllStructGetData($tInfo, "KeyFlags"))
    ; No return value
    Case $NM_RETURN ; The control has the input focus and that the user has pressed the ENTER key
    _DebugPrint("$NM_RETURN" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
    "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
    "-->Code:" & @TAB & $iCode)
    ; No return value
    Case $NM_SETFOCUS ; The control has received the input focus
    _DebugPrint("$NM_SETFOCUS" & @LF & "--> hWndFrom:" & @TAB & $hWndFrom & @LF & _
    "-->IDFrom:" & @TAB & $iIDFrom & @LF & _
    "-->Code:" & @TAB & $iCode)
    ; No return value
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

    [/autoit] [autoit][/autoit] [autoit]

    Func _DebugPrint($s_text, $line = @ScriptLineNumber)
    ConsoleWrite( _
    "!===========================================================" & @LF & _
    "+======================================================" & @LF & _
    "-->Line(" & StringFormat("%04d", $line) & "):" & @TAB & $s_text & @LF & _
    "+======================================================" & @LF)
    EndFunc ;==>_DebugPrint

    [/autoit]


    Hier bekomme ich aber keine Ausgabe von _DebugPrint, wenn ich die Spaltenbreite verändere. Eigentlich ja auch klar, da der iCode ja nicht dabei ist. Aber wie lautet der richtige Code?
    Ich habe auch schon auf MSDN nachgesehen, aber nichts brauchbares gefunden.
    Jemand eine Idee?

  • Bass.dll und Windows 7

    • Oscar
    • 7. Dezember 2010 um 08:09

    Mein Starplayer benutzt ebenfalls die bass.dll/bass.au3 und der funktioniert unter Win7 einwandfrei.
    Von daher gehe ich davon aus, dass Du irgendwo im Skript einen Fehler hast. Also: Skript posten. :)

  • FileCommander

    • Oscar
    • 6. Dezember 2010 um 17:20

    Auweia, da sprichst Du Themen an, die ich beim TC gerade nicht benutze.
    Ok, das mit der Spaltenbreite für beide Fenster sollte sowieso noch kommen, aber TABs brauche ich nicht unbedingt und Dateierweiterungen direkt hinter dem Dateinamen stört mich ja gerade. Ich mag das lieber, wenn Dateiname und Erweiterung in zwei getrennten Spalten stehen.
    Ich fürchte, diese Features werden erst ziemlich weit unten auf der ToDo-List auftauchen. ;)

    Es soll ja auch kein zweiter TotalCommander werden, eher ein TC Light. Ich find's halt interessant, mal sowas zu programmieren. Mittlerweile habe ich deutlich mehr Respekt vor Christian Ghisler bekommen. Das ist schon ganz schön aufwendig.

  • FileCommander

    • Oscar
    • 5. Dezember 2010 um 21:58

    Stimmt, Du hattest das ja da oben schon geschrieben. Oh mann, ich glaube es wird Zeit, dass ich vom Rechner wegkomme. Zuviel für heute...

    In so einem Dateimanager finde ich Ordnericons eher störend. Beim Explorer ist das was anderes (der ist eh unübersichtlich :D ).

  • FileCommander

    • Oscar
    • 5. Dezember 2010 um 21:48

    Ach, das ist ja ein Ordner-Icon!
    Die werden von meinem Programm gar nicht ausgelesen. Dafür gibt es das Standard-Icon. Finde ich persönlich auch übersichtlicher.

  • FileCommander

    • Oscar
    • 5. Dezember 2010 um 21:31

    Welches Betriebssystem benutzt Du?

    Kannst Du von den fehlerhaft dargestellten Icons mal einen Screenshot machen? Und welche Icons da eigentlich hingehören.

    Für die Pfadauswahl wird es noch etwas ähnliches wie im TotalCommander geben. Für Copy&Paste fehlt noch die Netzwerkunterstützung.

    Das mit der Markierung beim Pfad stimmt. Ist ja das gleiche blau. Mal sehen, wie man das ändern kann...

  • FileCommander

    • Oscar
    • 5. Dezember 2010 um 21:00

    @progandy: Vielen Dank! Das sieht gleich viel besser aus.

    Tweaky:
    - Laufwerksicons für jedes Laufwerk hatte ich schonmal ausprobiert, aber das nimmt zuviel Platz weg (das sind Checkboxen).
    - Hmm...das mit der Ansicht muss ich mir mal überlegen.
    - Die Inidatei im Exeordner ist nicht sehr empfehlenswert, weil man unter Win7 im Programmeordner keinen Schreibzugriff hat.
    - Ordner tauschen!? Hmm...wozu? Quelle und Ziel sind doch variabel.
    - Buttons deaktivieren? Ok, das lässt sich einrichten.
    - Das mit den Dateisymbolen ist bereits geschehen.

    Und es gibt eine neue Version (siehe Post #1). :)

  • FileCommander

    • Oscar
    • 5. Dezember 2010 um 11:43

    Naja, ich besitze den TotalCommander ebenfalls (Version 7.55, registrierter User). Um da mithalten zu können, fehlt meinem Programm schon noch ziemlich viel. Aber ich bin ja auch erst bei v1.0. :D

    Hotkeys für die Buttons gibt es bereits (siehe unterstrichene Buchstaben). Hatte ich vergessen zu erwähnen. :whistling:

    Drag and Drop kommt später. Zunächst gibt es wichtigere Dinge.

    Aber danke fürs testen. Falls Bugs auftreten, bitte melden! Ich teste es hier immer auf zwei Systemen (Win7, 64 Bit und WinXP, 32 Bit).

  • Strings werden irgendwann Leerstrings

    • Oscar
    • 5. Dezember 2010 um 11:12

    Um diese Frage beantworten zu können, solltest Du mal Dein Skript posten.

  • "Flughafenanzeige"

    • Oscar
    • 5. Dezember 2010 um 11:11

    Deine Beschreibung ist reichlich verwirrend, aber meine Glaskugel sagt, dass Du vielleicht sowas suchst:

    Spoiler anzeigen
    [autoit]


    $sName = 'PROBLEMUSER'

    [/autoit] [autoit][/autoit] [autoit]

    $hGui = GUICreate('Anzeige', 600, 100)
    Dim $aDisplay[32]
    For $i = 0 To UBound($aDisplay) - 1
    $aDisplay[$i] = GUICtrlCreateLabel('_', 10 + $i * 16, 20, 14, 22)
    GUICtrlSetFont(-1, 14)
    Next
    GUISetState()
    Sleep(1000)
    For $i = 1 To StringLen($sName)
    For $j = Asc('A') To Asc(StringMid($sName, $i, 1))
    GUICtrlSetData($aDisplay[$i - 1], Chr($j))
    Sleep(50)
    Next
    Next
    Do
    Until GUIGetMsg() = -3

    [/autoit]
  • UDF: Windows Explorer fernsteuern

    • Oscar
    • 5. Dezember 2010 um 10:59

    Oh! Dann habe ich das missverstanden. Beim testen hatte ich nur im Taskmanager nachgesehen und dort waren zwei Explorer-Prozesse. Deshalb bin ich davon ausgegangen, dass für jedes Explorerfenster ein neuer Prozess gestartet wird.
    Ich hätte mal die PIDs testen sollen, sorry! :rolleyes:

  • FileCommander

    • Oscar
    • 5. Dezember 2010 um 08:31
    Zitat von progandy

    Das erinnert mich irgendwie an meine Explorer Listview, aber die hast du nicht verwendet.
    ( z.B. mit _GUIImageList_GetFileIconIndex ... ;) )

    Die kannte ich noch gar nicht. Das ist eine total coole Funktion. Darf ich die verwenden?

  • FileCommander

    • Oscar
    • 5. Dezember 2010 um 00:49

    Mein neuestes Projekt ist ein Dateimanager in der Art des "TotalCommander". Mangels Phantasie habe ich es mal FileCommander genannt. :D
    Version 2.7 (17.08.2015) ist nun fertig.


    Neu in Version 2.7 (17.08.2015):
    - Diverse Anpassungen von autoBert (https://autoit.de/www.autoit.de) damit das Programm auch unter v3.3.14.0 lauffähig ist.

    History
    History


    Neu in Version 2.6 (25.01.2011):
    - Die Buttons in der oberen Leiste können nun verschoben werden (rechts/links um die Reihenfolge zu ändern).
    - Die Buttons können jetzt auch umbenannt werden (Kontextmenü: "Umbenennen").
    - Fehler, wenn man Buttons hinzugefügt und dann einen Button entfernt hat. Die Kontextmenüs wurden nicht mit gelöscht. Behoben!
    - Array-Fehler, wenn in einem Verzeichnis nur Verzeichnisse und/oder Dateien lagen, die versteckt sind. Behoben!
    - Der FileCommander kann jetzt nur noch einmal gestartet werden.

    Neu in Version 2.5.1 (23.01.2011):
    - Array-Fehler, wenn noch kein Button in der Button-Leiste vorhanden war. Behoben!
    - Fehler beim beenden, wenn das Programm minimiert ist. Es wurde -32000 als und X- und Y-Position gespeichert. Behoben!

    Neu in Version 2.5 (23.01.2011):
    - Es gibt nun eine Button-Leiste (oben, siehe Screenshot), in die man Exe-Dateien ziehen kann, die dann (beim anklicken) per ShellExecute gestartet werden.
    - Falls kein externer HexEditor ausgewählt wurde, wird nun ein einfacher HexViewer verwendet. Danke für die Funktion, Kleiner!
    - Alle in der Registry ausgeblendeten Laufwerksbuchstaben können im FileCommander ebenfalls ausgeblendet werden (Einstellungsmenü).
    - Die auszublendenden Laufwerksbuchstaben können konfiguriert werden (Einstellungsmenü).
    - Wenn der FileCommander in einem Verzeichnis lag das Leerzeichen enthielt, funktionierte das (ent-)packen mit 7z nicht. Behoben!

    Neu in Version 2.4 (18.01.2011):
    - Für die Suchfunktion stehen nun weitere Befehle (verschieben, kopieren, löschen) zur Verfügung.
    - Bei der StringInStr-Suche steht ein Leerstring nun für: "alle Einträge"
    - Bei der Suchfunktion habe ich die ReparsePoints nicht berücksichtigt. Behoben! Danke, Kleiner!

    Neu in Version 2.3 (17.01.2011):
    - Suchfunktion mit StringInStr- und StringRegExp-Suche eingebaut (Aufruf über Hotkey = ALT + s oder im Dateimenü)
    - Hotkey zum anzeigen des Vorschaufensters auf ALT + v geändert
    - Man kann nun Verknüpfungen erstellen (Kontextmenü).
    - Beim zurückkehren in das vorherige Verzeichnis wird nun auch der zuletzt gewählte Eintrag markiert.
    - Das zurückkehren zur letzten Scrollposition des vorherigen Verzeichnisses funktionierte nicht richtig. Behoben!

    Neu in Version 2.2 (15.01.2011):
    - Das erstellen der Listview-Einträge geschieht nun über eine von mir modifizierte Funktion (_GUICtrlListView_AddArrayEx). Dadurch wurde das anzeigen der Dateien und Verzeichnisse wesentlich schneller.
    - OS-abhängige Mindestgröße des Fensters, damit die Icons mit auf die Buttons passen.
    - Im Vorschaufenster wird nun immer das Bild angezeigt, dessen Eintrag den Focus besitzt, nicht das erste Selektierte.

    Neu in Version 2.1 (03.01.2011):
    - Das im Vorschaufenster angezeigte Bild lässt sich jetzt mit den Pfeiltasten (Rechts/Links) um 90 Grad im/gegen den Uhrzeigersinn drehen.
    - Das Vorschaufenster passt sich nun der Größe des FileCommanders an.
    - Das Vorschaufenster wird immer auf der, der aktiven Dateiliste, gegenüberliegenden Seite geöffnet.
    - Fehler beim "nicht anzeigen" von versteckten Dateien. Behoben! Danke Tweaky!

    Neu in Version 2.0 (02.01.2011):
    - Das einlesen der Verzeichnisse optimiert (ca. 30% schneller)
    - Gitternetzlinien für die Dateilisten (Ein-/Ausschalten im Einstellungsmenü).
    - Beim anklicken einer nicht unterstützten Datei wird nun das Vorschaufenster schwarz und ein Hinweis in der Statuszeile angezeigt.
    - Der Vorschaumodus sowie die Auswahl in den Dateilisten funktioniert nun auch über die Pfeiltasten (Rauf/Runter) und RETURN.
    - Fehler beim neuzeichnen des Vorschaufensters. Hintergrund wurde nicht neugezeichnet. Behoben!
    - Fehler beim auswählen des Hex-Editors. Behoben!
    - Fehler beim anklicken der Laufwerks-Buttons. Laufwerk wurde doppelt eingelesen. Behoben!

    Neu in Version 1.9 (26.12.2010):
    - Vorschau-Fenster für alle von GDI+ unterstützen Bilddateien. Öffnen/Schließen mit: [ALT] & s
    - Im Einstellungsmenü kann man nun auswählen, ob man grosse oder kleine Icons in der Dateiliste haben will.
    - Wenn beim kopieren/verschieben eine Datei bereits existiert, gibt es nun auch die Option des Umbenennens.
    - Markierung für die Laufwerks-Buttons wieder eingeführt. Geht jetzt auch mit den Icons.
    - Unter WindosXP wurde der Eigenschaften-Dialog für die Laufwerke nicht aufgerufen. Behoben!
    - Den Hotkey für das wechseln in die nächsthöhere Verzeichnisebene auf [STRG] & [BACKSPACE] geändert.
    - Das Skript lässt sich jetzt auch als 64Bit-Exe compilieren. Danke, progandy!

    Neu in Version 1.8 (23.12.2010):
    - Kopieren und Verschieben (SHIFT gedrückt halten) von Dateien/Verzeichnissen via Drag&Drop zwischen den beiden Dateilisten.
    - Datei-/Verzeichnisdatum ändern (eigenes Fenster mit: erstellt, geändert und letzter Zugriff)
    - Man kann jetzt einen Hex-Editor einbinden (Einstellungen), der mit dem linken unteren Button ["Anzeigen (Hex)"] aufgerufen wird.
    - "Datum ändern" und "Attribute ändern" sind jetzt über das Dateimenü bzw. das Kontextmenü erreichbar.
    - Die Inputboxen bei Umbenennen, Neuer Ordner und Neue Datei "folgen" (Position beim öffnen) nun dem Hauptfenster
    - Die Laufwerks-Buttons sind jetzt echte Buttons, keine Checkboxen mehr. Dadurch ist zwar der Markierungs-Effekt weg, aber dafür werden nun die Icons angezeigt.

    Neu in Version 1.7 (19.12.2010):
    - Eigenschaften-Dialog öffnen (Kontext- und Dateimenü).
    - Packen der markierten Einträge mit 7z als ZIP- oder 7z-Archiv (je nach Dateiendung).
    - Entpacken von ZIP- oder 7z-Archiven ins Zielverzeichnis.
    - Bei Netzwerkpfaden wird nun an der Stelle des Laufwerkslabels die LAN-IP angezeigt.

    Neu in Version 1.6 (15.12.2010):
    - Netzwerk-Button eingebaut zum auswählen des Netzwerkpfades. Danke für den Tip, Raupi!
    - Mit [BACKSPACE] kommt man in der aktiven Dateiliste eine Verzeichnisebene nach oben (für meine Zurücktaste auf der Maus).
    - Das Programm merkt sich, bis zu welcher Zeile man im Listview gescrollt ist und scrollt wieder dorthin zurück, wenn man aus dem Unterverzeichnis zurückkehrt
    - Neu im Einstellungsmenü: "Versteckte Verzeichnisse und Dateien anzeigen"
    - Erkennung neuer bzw. abgemeldeter (USB-)Laufwerke verbessert.
    - Beim Verschieben eines Verzeichnisses wurde das (dann leere) Verzeichnis im Quellverzeichnis nicht gelöscht. Behoben!
    - Wenn es das Laufwerk "C:\" beim ersten Start nicht gibt, wurde trotzdem versucht "C:\" einzulesen. Behoben!
    - Fehler bei der Eingabe im Pfad-Input. Es wurde das falsche Verzeichnis eingelesen. Behoben!

    Neu in Version 1.5.2 (14.12.2010):
    - Fehler beim ermitteln der Anzahl der Verzeichnisse. Behoben!

    Neu in Version 1.5.1 (14.12.2010):
    - Sortieren der Dateiliste nach Klick auf Spaltenüberschrift (auf-/abwärts) eingebaut.

    Neu in Version 1.5 (14.12.2010):
    - Wenn beim Kopieren/Verschieben die Datei im Zielverzeichnis bereits existiert, erscheint ein Auswahlfenster (Abbrechen, überschreiben, überspringen).
    - Beim Kopieren/Verschieben wird jetzt die Geschwindigkeit (in MB/s) sowie die ungefähre Restzeit (in s) angezeigt.
    - Buffer beim Kopieren/Verschieben auf 512 KByte erhöht.
    - Man konnte kein leeres Verzeichnis kopieren, wenn es sich im aktuellen Pfad befand (als Unterverzeichnis schon). Behoben!
    - Fehler beim Header-Drag&Drop behoben. Danke, Raupi!
    - Das Inputfeld für den Pfad ist nun kein ReadOnly-Feld mehr. Man kann also auch per Copy&Paste Pfade einfügen.

    Neu in Version 1.4.1 (12.12.2010):
    - Beim auslesen des Verzeichnispfades wird nun immer geprüft, ob ein abschließender Backslash vorhanden ist.
    - ShellExecute wird jetzt auch im rechten Fenster mit entsprechendem WorkingDir aufgerufen. Sorry... :wacko:

    Neu in Version 1.4 (12.12.2010):
    - Kopieren/Verschieben jetzt mit Fortschrittsanzeige (Progressbar, eigenes Fenster)
    - Diverse Änderungen am Quellcode
    - Die Spaltenreihenfolge bei den Dateilisten kann per Header-Drag&Drop geändert werden. Danke, Raupi!
    - Damit ist das Einstellungsfenster für die Spaltenreihenfolge per Zahleneingabe rausgeflogen.
    - Im Fenster zum bearbeiten der Favoriten kann man nun auch neue Einträge erstellen.
    - Es trat ein Fehler auf, wenn man bei den Favoriten keinen Eintrag ausgewählt hat und dann einen Namen und Pfad eingegeben hat. Behoben!

    Neu in Version 1.3 (11.12.2010):
    - Verzeichnisliste (Favoriten) für die Dateilisten hinzugefügt.
    - Die Spaltenreihenfolge bei den Dateilisten kann geändert (Einstellungen) werden.
    - ShellExecute wird nun mit entsprechendem WorkingDir aufgerufen.
    - Ein Mausklick auf das Pfad-Eingabefeld ändert jetzt auch den Fokus. Danke, Raupi!

    Neu in Version 1.2.2 (09.12.2010):
    - Bugfix! Beim ändern der Spaltenbreite gab es noch einen Fehler. Behoben! Danke, Raupi!

    Neu in Version 1.2.1 (09.12.2010):
    - Bugfix! Beim ändern der Spaltenbreite gab es noch einen Fehler. Behoben!

    Neu in Version 1.2 (08.12.2010):
    - Die Spaltenbreite wird nun für beide Dateilisten gleich eingestellt.
    - Die Hintergrundfarbe der Pfadanzeige habe ich dunkler gemacht, damit man eine evtl. Markierung sehen kann.
    - Die Buttons werden deaktiviert wenn kein Eintrag markiert ist.
    - Es gibt jetzt für jede Dateiliste ein Kontextmenü (gleich dem Markierenmenü).
    - Beim Markierenmenü (+Kontextmenüs) sind mehrere Funktionen hinzugekommen:

    • "Alle Verzeichnisse markieren"
    • "Größe der markierten Verzeichnisse einlesen"
    • "Größe aller Verzeichnisse einlesen"
    • "Alle Dateien markieren"
    • "Alle Dateien mit der gleichen Endung markieren"

    Neu in Version 1.1 (05.12.2010):
    - Die Datei-Icons haben nun das Icon ihrer verknüpften Programme. Vielen Dank Progandy für die tollen Funktionen (siehe auch Danksagungen).
    - Es gibt nun ein Icon pro Dateiliste, wo das Laufwerks-Icon angezeigt wird. Die Buttonfunktion kommt noch...
    - Neben dem Button zum aktualisieren gibt es jetzt noch einen Button zum wechseln ins übergeordnete Verzeichnis.
    - Der Laufwerkspfad befindet sich nun in einem Input-Control (so kann man den Pfad kopieren).
    - In der Statusleiste wird nun auch ein Icon angezeigt.
    - Beim einlesen eines Verzeichnisses gibt es jetzt noch einen "Warte"-Tooltip.

    Features in Version 1.0 (05.12.2010):
    - voll resizable (auch maximiert), Position und Größe werden gespeichert
    - die Spalten in den beiden Dateilisten sind individuell einstellbar (werden auch gespeichert)
    - Laufwerke werden auch während der Laufzeit erkannt und entfernt/hinzugefügt (z.B. USB-Stick angesteckt/entfernt)
    - Doppelklick auf eine Datei führt ein ShellExecute mit der Datei aus, sodass das mit der Datei verknüpfte Programm gestartet wird.
    - Man kann die Dateiattribute aller markierten Einträge ändern.
    - Das Umbenennen von Dateien/Verzeichnissen ist möglich.
    - Verschieben/Kopieren aller markierten Einträge (ohne zusätzliche Abfrage).
    - Löschen (mit Sicherheitsabfrage) aller markierten Einträge.
    - Neues Verzeichnis erstellen.
    - Neue Textdatei erstellen.
    - Hotkeys für die Buttons.

    Hinweise: Die Dateiliste, deren Pfadanzeige (oben unter den Laufwerksbuchstaben) eine blaue Hintergrundfarbe aufweist, ist die aktive Dateiliste. Diese aktive Dateiliste ist für die Buttons am unteren Rand ausschlaggebend. Beim Attribute ändern, Umbenennen, Löschen und neues Verzeichnis/Datei erstellen wird stets die aktive Dateiliste verwendet. Es werden also nur die markierten Einträge der aktiven Dateiliste verändert.
    Beim Verschieben/Kopieren ist die aktive Dateiliste immer das Quellverzeichnis und die inaktive Dateiliste das Zielverzeichnis.
    Vorgänge die längere Zeit benötigen können mit der Tastenkombination [ALT] + [code=c] abgebrochen werden.


    Skript, Icons und Exe im ZIP-Archiv (Anhang).

    Dateien

    FileCommander27.zip 2,12 MB – 566 Downloads FileCommander.png 167,34 kB – 0 Downloads
  • UDF: Windows Explorer fernsteuern

    • Oscar
    • 5. Dezember 2010 um 00:18

    Dieses Verhalten (nur ein Explorer-Prozess oder mehrere) kannst Du einstellen:
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.
    Ist der Haken gesetzt, wird für jedes Explorerfenster ein eigener Prozess gestartet.

    Dateien

    Ordneroptionen.png 34,74 kB – 0 Downloads
  • Happy Birthday Pee und Funkey

    • Oscar
    • 4. Dezember 2010 um 07:03

    Herzlichen Glückwunsch zum Geburtstag euch Beiden!
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.
    Feiert schön!

    Bilder

    • 00005875.jpg
      • 20,79 kB
      • 293 × 401
  • Noch ein Adventskalender

    • Oscar
    • 3. Dezember 2010 um 18:04

    Doch, das Hintergrundbild! ;)
    Darum geht es ja gerade. Die anderen Bilder sollen doch persönliche Bilder sein. Die sollst Du selbst hinzufügen.

  • Warum wird Fenster nicht maximiert ?

    • Oscar
    • 3. Dezember 2010 um 14:41

    Ja, bei Win7 funktioniert es einwandfrei.
    Wobei man ja auch nicht maximieren muss. Man könnte ja auch mit WinMove die Größe und Position anpassen.
    Ich wollte nur zeigen, dass man auch solche Dialogboxen vom gleichen Skript aus verändern kann.

  • Warum wird Fenster nicht maximiert ?

    • Oscar
    • 3. Dezember 2010 um 14:34

    Bei mir funktioniert es sowohl unter XP als auch unter Win7. Bei XP wird es allerdings extrem maximiert (über die Taskleiste hinaus), sodass man den Abbrechen-Button nicht mehr sehen kann.

  • Warum wird Fenster nicht maximiert ?

    • Oscar
    • 3. Dezember 2010 um 14:23

    Probier das Script aus! Der Dialog wird maximiert. :)

  • Warum wird Fenster nicht maximiert ?

    • Oscar
    • 3. Dezember 2010 um 14:15

    Es gibt schon eine Möglichkeit, denn die _Timer-Funktionen werden auch bei Dialogboxen ausgeführt:

    Spoiler anzeigen
    [autoit]


    #include <Timers.au3>
    $hGui = GUICreate('Test')
    _Timer_SetTimer($hGui, 250, '_CheckDialog')
    $varFile4Signatur = FileOpenDialog("Bitte zu signierende Datei auswählen...", "" & "\", "All (*.exe)")
    If Not @error Then MsgBox(0, 'Datei', $varFile4Signatur)
    _Timer_KillAllTimers($hGUI)
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    Func _CheckDialog($hWnd, $Msg, $iIDTimer, $dwTime)
    If WinExists("Bitte zu signierende Datei auswählen...") And Not BitAND(WinGetState("Bitte zu signierende Datei auswählen..."), 32) Then WinSetState("Bitte zu signierende Datei auswählen...", "", @SW_MAXIMIZE)
    EndFunc

    [/autoit]

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™