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

Beiträge von autoBert

  • Ordner in TV auflisten; nach Größe sortiert

    • autoBert
    • 25. Mai 2009 um 20:46

    Hallo Oscar ,

    die Sortierung scheint jetzt zu passen, jedoch hab ich zweifel an den Größenangaben. Kann es durch Summieren der Rundungsdifferenz passieren, dass alle Unterordner zusammen z.T. bis 1% weniger ergeben als der Parent?

    Spoiler anzeigen
    [autoit]

    #include <GuiTreeView.au3>
    #include <GUIConstantsEx.au3>

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

    $gui = GUICreate("Treeview")
    Global $id = 0, $dir[9999], $path = "c:\Programme\AutoIt3\"

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

    $tree = GUICtrlCreateTreeView(0, 0, 481, 353)
    $dir[$id] = GUICtrlCreateTreeViewItem($path, $tree)
    GUISetState(@SW_SHOW)
    searchdir($path, $id, $tree)
    ReDim $dir[$id + 1]
    GUICtrlSetState($dir[0], $GUI_EXPAND)
    MsgBox(0, 0, 'Bin fertig')
    ;_GUICtrlTreeView_Sort($tree)

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

    While 1
    $g = GUIGetMsg()
    If $g = -3 Then Exit
    WEnd

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

    Func searchdir($d, $i,$sortNode)
    Local $f, $n, $s
    $f = FileFindFirstFile($d & "*")
    While 1
    $n = FileFindNextFile($f)
    If @error Then ExitLoop
    $s = DirGetSize($d & $n)
    If $s > -1 Then
    $id += 1
    $sSize = StringFormat("%.3f",Round($s / 1024 / 1024, 3))
    $dir[$id] = GUICtrlCreateTreeViewItem(StringFormat("%10s", $sSize) & " MB - " & $n, $dir[$i])
    _GUICtrlTreeView_Sort($sortNode)
    searchdir($d & $n & "\", $id, $dir[$id])
    EndIf
    WEnd
    EndFunc ;==>searchdir

    [/autoit]

    mfg (Auto)Bert

  • Ordner in TV auflisten; nach Größe sortiert

    • autoBert
    • 25. Mai 2009 um 20:23

    Hallo Oscar,

    ich weis, bin noch daran am arbeiten (kämpfe noch mit StringFormat, hab ich bis jetzt zu selten benutzt) Die aktuelle Version im Spoiler würde richtig sortieren, wenn ich es schaffe, dass immer alle 3 Nachkommastellen usgegeben werden und da ich unbedingt mit StringFormat lösen will, kann es noch etwas dauern,

    so diese sortiert richtig allerdings aufsteigend:

    Spoiler anzeigen
    [autoit]

    #include <GuiTreeView.au3>
    #include <GUIConstantsEx.au3>

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

    $gui = GUICreate("Treeview")
    Global $id = 0, $dir[9999], $path = "c:\Programme\AutoIt3\"

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

    $tree = GUICtrlCreateTreeView(0, 0, 481, 353)
    $dir[$id] = GUICtrlCreateTreeViewItem($path, $tree)
    GUISetState(@SW_SHOW)
    searchdir($path, $id, $tree)
    ReDim $dir[$id + 1]
    GUICtrlSetState($dir[0], $GUI_EXPAND)
    MsgBox(0, 0, 'Bin fertig')
    ;_GUICtrlTreeView_Sort($tree)

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

    While 1
    $g = GUIGetMsg()
    If $g = -3 Then Exit
    WEnd

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

    Func searchdir($d, $i,$sortNode)
    Local $f, $n, $s
    $f = FileFindFirstFile($d & "*")
    While 1
    $n = FileFindNextFile($f)
    If @error Then ExitLoop
    $s = DirGetSize($d & $n)
    If $s > -1 Then
    $id += 1
    $sSize = StringFormat("%.3f",Round($s / 1024 / 1024, 3))
    $dir[$id] = GUICtrlCreateTreeViewItem(StringFormat("[%10s]", $sSize) & " MB - " & $n, $dir[$i])
    _GUICtrlTreeView_Sort($sortNode)
    searchdir($d & $n & "\", $id, $dir[$id])
    EndIf
    WEnd
    EndFunc ;==>searchdir

    [/autoit]

    mfg (Auto)Bert

  • Ordner in TV auflisten; nach Größe sortiert

    • autoBert
    • 25. Mai 2009 um 19:54

    Hallo

    auf Oscar Skript aufbauend:

    Spoiler anzeigen
    [autoit]

    #include <GuiTreeView.au3>
    #include <GUIConstantsEx.au3>

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

    $gui = GUICreate("Treeview")
    Global $id = 0, $dir[9999], $path = "c:\Programme\AutoIt3\"

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

    $tree = GUICtrlCreateTreeView(0, 0, 481, 353)
    $dir[$id] = GUICtrlCreateTreeViewItem($path, $tree)
    GUISetState(@SW_SHOW)
    searchdir($path, $id, $tree)
    ReDim $dir[$id + 1]
    GUICtrlSetState($dir[0], $GUI_EXPAND)
    MsgBox(0, 0, 'Bin Fertig')
    ;_GUICtrlTreeView_Sort($tree)

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

    While 1
    $g = GUIGetMsg()
    If $g = -3 Then Exit
    WEnd

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

    Func searchdir($d, $i,$sortNode)
    Local $f, $n, $s
    $f = FileFindFirstFile($d & "*")
    While 1
    $n = FileFindNextFile($f)
    If @error Then ExitLoop
    $s = DirGetSize($d & $n)
    If $s > -1 Then
    $id += 1
    $dir[$id] = GUICtrlCreateTreeViewItem(StringFormat("[%10s]", Round($s / 1024 / 1024, 3)) & " MB - " & $n, $dir[$i])
    _GUICtrlTreeView_Sort($sortNode) ; immer nur einen Ast sortieren
    searchdir($d & $n & "\", $id, $dir[$id])
    EndIf
    WEnd
    EndFunc ;==>searchdir

    [/autoit]


    die Reihenfolge ist leider gerade umgedreht, aber damit solltest du erstmal weiterkommen

    mfg (Auto)Bert

  • brauch hilfe

    • autoBert
    • 25. Mai 2009 um 19:33

    Hallo frecherclown,

    dein Name ist sehr treffend was den ersten Teil betrifft um 19.12 den ersten Thraed eröffnet, der um 19.14 von Oscar geschlossen worden ist

    Zitat

    Bitte die Forenregeln lesen! Wir unterstützen hier keine Bots!
    [Thread closed]

    Um 19.19 die selbe Frage nur ohne Begründung, das nenn ich mehr als frech :!: .

    mfg (Auto)Bert

  • Mehrer Probleme mit Folgendem Code

    • autoBert
    • 25. Mai 2009 um 19:10

    Hallo Ryu 1991,

    teste mal folgendes Skript:

    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------

    AutoIt Version: 3.3.0.0
    Author: myName

    Script Function:
    Template AutoIt script.

    #ce ----------------------------------------------------------------------------

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

    ; Script Start - Add your code below here

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

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <WinApi.au3>

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

    Global $Abbrechen = False
    Global $Time

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Timer", 410, 296, 192, 124)
    $Group1 = GUICtrlCreateGroup("Aktion", 232, 16, 153, 105)
    $Shutdown = GUICtrlCreateRadio("Herunterfahren", 248, 32, 121, 17)
    $PlaySound = GUICtrlCreateRadio("Sound abspielen", 248, 56, 129, 25)
    $RUN = GUICtrlCreateRadio("Script/Anwendung/CMD-Command Ausführen", 248, 88, 105, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Group2 = GUICtrlCreateGroup("Zeit", 16, 16, 153, 105)
    $Label1 = GUICtrlCreateLabel("Stunden:", 32, 40, 47, 17)
    $Hours = GUICtrlCreateInput("", 88, 40, 49, 21, BitOR($ES_AUTOHSCROLL, $ES_NUMBER))
    $Label2 = GUICtrlCreateLabel("Minuten", 32, 80, 42, 17)
    $mins = GUICtrlCreateInput("", 88, 80, 49, 21, BitOR($ES_AUTOHSCROLL, $ES_NUMBER))
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $StartPause = GUICtrlCreateButton("Start", 96, 248, 89, 25, $WS_GROUP)
    $CancelQuit = GUICtrlCreateButton("Beenden", 204, 248, 97, 25, $WS_GROUP)
    $Progress1 = GUICtrlCreateProgress(24, 208, 353, 25)
    $Group3 = GUICtrlCreateGroup("Pfad/Befehl", 16, 136, 369, 57)
    $Path = GUICtrlCreateInput("", 24, 160, 273, 21)
    $Durchsuchen = GUICtrlCreateButton("Durchsuchen", 304, 160, 73, 25, $WS_GROUP)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    Case $StartPause
    runTimer()
    Case $CancelQuit
    Exit
    Case $Durchsuchen
    Durchsuchen()
    EndSwitch
    WEnd

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

    Func runTimer()

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

    GUICtrlSetData($StartPause, "Pause")
    GUICtrlSetData($CancelQuit, "Abbrechen")

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

    $Time = GUICtrlRead($Hours) * 3600 + GUICtrlRead($mins) * 60

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

    Local $count = 0

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

    While ($count < $time * 100000)
    Sleep($Time )
    GUICtrlSetData($Progress1, $count)
    $count += 1

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

    $nMsg = GUIGetMsg()

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

    Switch $nMsg
    Case $StartPause
    Pause()
    If ($Abbrechen == True) Then
    $Abbrechen = False
    Return
    EndIf

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

    Case $CancelQuit
    GUICtrlSetData($StartPause, "Start")
    GUICtrlSetData($CancelQuit, "Beenden")
    GUICtrlSetData($Progress1, 0)
    Return

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

    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd
    EndFunc ;==>runTimer

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

    Func Pause()
    $Running = False

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

    GUICtrlSetData($StartPause, "Fortsetzen")

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

    While True
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $StartPause
    Return
    Case $CancelQuit
    $Abbrechen = True
    GUICtrlSetData($StartPause, "Start")
    GUICtrlSetData($CancelQuit, "Beenden")
    GUICtrlSetData($Progress1, 0)
    Return

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

    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

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

    EndFunc ;==>Pause

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

    Func Durchsuchen()
    Local $Ret = _WinAPI_GetOpenFileName("Wähle eine Datei")
    If ($Ret[0] <> 0) Then
    GUICtrlSetData($Path, $Ret[2])
    EndIf

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

    EndFunc ;==>Durchsuchen

    [/autoit]


    Darin reagieren die Buttons schnell, ich weiß aber dass es bei langen Zeiten Probleme bereiten wird. Du must dir dringend eine ander Schleifenbedingung definieren z.B. über TimerInit und TimerDiff

    mfg (Auto)Bert

  • Mehrer Probleme mit Folgendem Code

    • autoBert
    • 25. Mai 2009 um 18:10

    Hallo Ryu 1991,

    das ist das erstemal, das ich höre mit MsgLoop könnte man präzisere Aufrufe formulierem, das Gegentei ist meines Erachtens nach der Fall.

    Zu 1. setze Opt('MustDeclareVars',1) als 1. Zeile nach den Includes, dadurch kannst du nicht vergessen Variablen zu definieren
    zu 2. daran dürfte deine Formel für sleep schuld sein, der Abbrechen-Button funktioniert, er muss halt warten bis er dran kommt, setze hier einen statischen Wert ein z.B. 250 du musst dann aber die Formel für Progress umschreiben und die while Bedingung abändern. Mit TimerInit und TimerDiff kannst du es besser lösen als mit einem Schleifenzähler.
    3. erledigt sich wenn du 2 erledigt hast

    mfg (Auto)Bert

  • Suchen ersetzen in Text Datei

    • autoBert
    • 25. Mai 2009 um 17:41

    Hallo bitworker,

    du hast zwar die Datei gelesen und auch den Text ersetzt, aber du hast das Schreiben vergessen.
    Füge in Zeile 10 ein FileClose ein und am Ende vor dem abschliessenden FileClose ein FileOpen mit dem modus 2 und FileWrite ein, lies die die Stichpunkte in der Hilfe durch.
    Auch liest dein Skript nur die 1. Zeile einer Datei (ist sie nicht länger?)

    mfg (Auto)Bert

  • Wie heißt dieser Ladebalken

    • autoBert
    • 25. Mai 2009 um 17:07

    Hallo Benne, du könntest es so probieren (Nur als Kommentare in das Hilfe Beispiel eingefügt):

    Spoiler anzeigen
    [autoit]

    #include <GuiConstantsEx.au3>
    #include <GuiStatusBar.au3>
    #include <ProgressConstants.au3>
    #include <SendMessage.au3>

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

    Opt('MustDeclareVars', 1)

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

    $Debug_SB = False ; Check ClassName being passed to functions, set to True and use a handle to another control to see it work

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

    _Main()

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

    Func _Main()

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

    Local $hGUI, $hProgress, $hInput, $input, $progress, $hStatus

    ;<======================================================== hier baust du deine GUI auf, aber nur die GUI sonst noch nichts

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

    Local $aParts[4] = [80, 160, 300, -1]

    ; Create GUI
    $hGUI = GUICreate("StatusBar Embed Control", 400, 300)

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

    ;===============================================================================
    ; defaults to 1 part, no text
    $hStatus = _GUICtrlStatusBar_Create ($hGUI)
    _GUICtrlStatusBar_SetMinHeight ($hStatus, 20)

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

    ;===============================================================================
    GUISetState()

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

    ; Initialize parts
    _GUICtrlStatusBar_SetParts ($hStatus, $aParts)
    _GUICtrlStatusBar_SetText ($hStatus, "Part 1")
    _GUICtrlStatusBar_SetText ($hStatus, "Part 2", 1)

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

    ; Embed a progress bar
    If @OSTYPE = "WIN32_WINDOWS" Then
    $progress = GUICtrlCreateProgress(0, 0, -1, -1, $PBS_SMOOTH)
    $hProgress = GUICtrlGetHandle($progress)
    _GUICtrlStatusBar_EmbedControl ($hStatus, 2, $hProgress)
    Else
    $progress = GUICtrlCreateProgress(0, 0, -1, -1, $PBS_MARQUEE) ; marquee works on Win XP and above
    $hProgress = GUICtrlGetHandle($progress)
    _GUICtrlStatusBar_EmbedControl ($hStatus, 2, $hProgress)
    _SendMessage($hProgress, $PBM_SETMARQUEE, True, 200) ; marquee works on Win XP and above
    EndIf
    <================================================================ hier gehts dann weiter
    ;der [s]Ladebalken[/s] Progress läuft schon, und läuft und läuft
    $bGetBENNE = _GetBENNE() ; Funktion starten
    ;jetzt entweder Progress löschen oder verstecken falls du in an anderer Stelle nochmal benutzen willst
    ;deine MsgLoop hier einfügen
    ; Loop until user exits
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
    EndFunc ;==>_Main
    <============ hier Funcs reinkopieren

    [/autoit]

    mfg (Auto)Bert

  • Click n' Play - List

    • autoBert
    • 25. Mai 2009 um 15:48

    Hallo ChaosKeks,

    obwohl ich das Skript schon im Hilfe-Forum gelobt habe tu ich es auch hier nochmal :thumbup: . Wird sicher öfters heruntergeladen (die Anzahl könntest du besser beobachten in dem du es als Datei dem Beitrag anhängst).

    ein Paar Anregungen sind mir auch noch eingefallen:

    • Du könntest daraus ein Programm-Menü (ist es ja schon) in der Art von Portable-Apps machen, also im Tray minimieren und nur bei Bedarf kurz einblenden und nachdem der Anwender ein Programm gestartet hat wieder ausblenden.
    • Die Column-width bei Programmende mit in die INI speichern und natürlich auch wieder laden (Dies ärgert mich am Explorer schon immer).
    • Für visuell veranlagte könntest du auch noch das Programm-Icon mit in die Listview aufnehmen



    Zu der ToDo width: mach es doch ähnlich wie bei Height oder ein größerer Fixer Wert

    Viel Spass beim Aufräumen und auskommentieren :D ,

    mfg (Auto)Bert

  • [SPIEL] AUTOITEROIDS v1.019 (Final): ein Klon des Arcade Klassikers Asteroids von 1979 (Atari) (Stand: 2016-01-14)

    • autoBert
    • 25. Mai 2009 um 15:20

    Hallo UEZ,

    gelungene Umsetzung des Spiels :thumbup: , hat mich sofort 30 Jahre jünger gemacht, hab gedaddelt bis ich ich Ladehemmung hatte (STRG-Taste muss ich mal nachkontrolieren). Weiter so und großes Lob :thumbup: ,

    mfg (Auto)bert

  • Programme in TreeView ausführen (Drag & Drop)

    • autoBert
    • 25. Mai 2009 um 14:42

    Hallo @ChaosKeks,

    ist richtig gut geworden :thumbup: , den Max-Wert für with würde ich etwas höher setzen, aber das kann ja jeder selber machen, du solltest dir überlegen das Skript in Skripte einzustellen, weil unter TV sucht und findet (fast niemand) ein LV

    Edit: das mit dem Bild versteh ich auch noch nicht

    mfg (Auto)Bert

  • in GUI bilder einfügen und verschieben

    • autoBert
    • 25. Mai 2009 um 14:22

    Hallo subzero007,

    in dem Skript (von @ChaosKeks) hab ich dir in einem anderen Thread etra das Resizen eingefügt. Das man es auch wieder ausschalten möchte darüber habe ich mir bisher keine Gedanken gemacht. Beschreib mal genau was du erreichen möchtest (Aussehen der GUI, notfalls Bilder erstellen, wie welches Control aussehen soll)

    Hallo @Blackdeath,

    mach einen eigenen Thread auf und lies die Forenregeln
    besonders diese Stelle:

    Zitat

    Folgende Inhalte sind nicht erwünscht oder gar komplett verboten. Das Team behält es sich ausdrücklich vor, die Umsetzung der Regeln je nach Schweregrad zu verwarnen, zu löschen oder gar komplett zu sperren.

    - Bots für Spiele jeglicher Art, insbesondere Onlinespiele und ganz besonders Silkroad Online sowie World of Warcraft

    mfg (Auto)Bert

  • _soundplay tötet meinen pc

    • autoBert
    • 25. Mai 2009 um 13:56

    Hallo deify,

    hier der Link: Oscar's Starplayer (MP3-Player) ist Quellcode, musst du dir selbst kompilieren,

    mfg (Auto)Bert

  • WinWait --> Verständnisproblem

    • autoBert
    • 25. Mai 2009 um 13:38

    Hallo Kirsche,

    Zitat

    Auszug aus Hilfe: GUIDelete
    --------------------------------------------------------------------------------

    Löscht ein GUI Fenster und alle enthaltenen Controls.


    GUIDelete ( [winhandle] )

    mfg (Auto)Bert

  • Programme in TreeView ausführen (Drag & Drop)

    • autoBert
    • 25. Mai 2009 um 13:21

    Hallo @ChaosKeks,

    schau dir von @progandy mal das https://autoit.de/index.php?page…92090#post92090 an, notfalls lässt du die SizeBox weg und läßt Größenänderungen nur über die Mouse zu. Aber schau einfach selbst,

    mfg (Auto)Bert

  • WinWait --> Verständnisproblem

    • autoBert
    • 25. Mai 2009 um 13:12

    Hallo Kirsche,

    meine Glaskugel sagt, das in der Zeile mit WinWait ein Fehler ist => also etwas Code wäre nicht schlecht,

    mfg (Auto)Bert

  • Problem mit ShellExecute, Fehlermeldung "Für diesen Vorgang ist keine Anwendung der abgegebenen Datei zugeordnet..."

    • autoBert
    • 25. Mai 2009 um 12:50

    Hallo Skywalker,

    versuch doch mal im Explorer eine solche Datei mit Doppelklick zu starten und die wirst diese Fehlermeldung verstehen,

    mfg (Auto)Bert

  • Programme in TreeView ausführen (Drag & Drop)

    • autoBert
    • 25. Mai 2009 um 12:45

    Hallo subzero007,

    hier ist es:

    Spoiler anzeigen
    [autoit]

    #cs **************************************************************************

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

    Programme in TreeView ausführen (Drag &amp; Drop)

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

    https://autoit.de/index.php?page…96194#post96194

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

    #ce **************************************************************************

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

    ; #AUTHOR = CHAOSKEKS# ============================================================================
    ; #NAME = CHAOS-EXECUTION#
    ; #DATE = 24.05.2009#
    ; Resizen eingebaut AutoBert 25.05.2009
    #include <ListviewConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <SliderConstants.au3>
    #Include <GuiListView.au3>
    #Include <Array.au3>
    #Include <File.au3>

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

    Global $Active = True, $mod = True, $i, $trans = 0
    Dim $filepaths[1],$szDrive, $szDir, $szFName, $szExt

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

    $hGUI = GUICreate("Chaos-Execution", 275, 310, Default, Default, BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_SIZEBOX), $WS_EX_ACCEPTFILES)
    GUICtrlSetState(-1, $GUI_DROPACCEPTED)
    $hListview = GUICtrlCreateListView("Files|*. Ext", 10, 10, 254, 220)
    GUICtrlSetResizing(-1, $GUI_DOCKBORDERS) ;Abstand zu allen 4 Seiten bleibt fix
    _GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))
    _GUICtrlListView_SetColumnWidth($hListView, 0, 199)
    IF FileExists(@ScriptDir&"/ExecuteItLog.ini") Then
    $aData = IniReadSection(@ScriptDir&"\ExecuteItLog.ini","Files")
    For $i = 1 To UBound($aData) - 1
    _ArrayAdd($filepaths, $aData[$i][1])
    $split = _PathSplit($aData[$i][1], $szDrive, $szDir, $szFName, $szExt)
    _GUICtrlListView_AddItem($hListview, $split[3])
    _GUICtrlListView_AddSubItem($hListView, $i-1,StringTrimLeft($split[4],1),1)
    Next
    $trans = IniRead(@ScriptDir&"\ExecuteItLog.ini","Trans","Key1", "0")
    FileDelete(@ScriptDir&"/ExecuteItLog.ini")
    EndIf

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

    $contextmenu = GUICtrlCreateContextMenu($hListView)
    $insertitem = GUICtrlCreateMenuItem("Insert Item(s)", $contextmenu)
    $renameitem = GUICtrlCreateMenuItem("Rename", $contextmenu)
    $deletemenu = GUICtrlCreateMenu("Delete...", $contextmenu)
    $deleteAll = GUICtrlCreateMenuItem("All Items", $deletemenu)
    $deleteitem = GUICtrlCreateMenuItem("Selected Item", $deletemenu)
    GUICtrlCreateMenuItem("", $contextmenu)
    $exititem = GUICtrlCreateMenuItem("Exit", $contextmenu)

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

    $deletebutton = GuiCtrlCreateButton("&Delete List",54,252,60,28)
    GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKSIZE + $GUI_DOCKBOTTOM)
    ;Abstand Links und unten bleibt fix die Größe (Breite und Höhe) ebenso
    $insertbutton = GuiCtrlCreateButton("&Insert",10,252,40,28)
    GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKSIZE + $GUI_DOCKBOTTOM)
    ;Abstand Links und unten bleibt fix die Größe (Breite und Höhe) ebenso
    $label = GUICtrlCreateLabel("Transparence = 0%", 148, 237, -1, 14)
    GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM + $GUI_DOCKHEIGHT)
    ;Abstand Rechts und unten bleibt fix die Höhe ebenso
    $slider = GUICtrlCreateSlider(120, 257, 144, 20, BitOR($TBS_AUTOTICKS, $WS_BORDER))
    GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM + $GUI_DOCKHEIGHT)
    ;Abstand Rechts und unten bleibt fix die Höhe ebenso
    GuiCtrlSetLimit($slider, 80,0)
    GuiCtrlSetData($slider, $trans)
    GUICtrlSetData($label, "Transparence = " & GUICtrlRead($slider) & "%")
    WinSetTrans("Chaos-Execution", "", 255 - GUICtrlRead($slider) * 2.55)
    Dim $Acc[2][2] = [["^i", $insertButton], ["^d", $deleteALL]]
    GUISetAccelerators($Acc)
    GUISetState(@SW_SHOW)

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

    $EditBox = GUICreate('', 240, 30, -1, -1, BitOR($WS_POPUP,$WS_BORDER),$WS_EX_TOPMOST+$WS_EX_MDICHILD,$hGui)
    $hEdit = GUICtrlCreateInput('', 5, 5, 195, 20)
    $hButton = GuiCtrlCreateButton("...",205,5,30,20)
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
    GUIRegisterMsg($WM_HSCROLL, "WM_HVSCROLL")

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

    ; #MAIN LOOP# ==============================================================================================
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE,$exititem
    For $i = 1 To Ubound($filepaths)-1
    IniWrite(@ScriptDir&"\ExecuteItLog.ini","Files", "Key"&$i,$filepaths[$i]& @LF)
    Next
    IniWrite(@ScriptDir&"\ExecuteItLog.ini","Trans", "Key1",GuiCtrlRead($slider))
    Exit
    Case $GUI_EVENT_DROPPED
    $file = @GUI_DragFile
    If StringRegExp($file, "^.+\.(?i)((EXE)|(AU3)|(GIF)|(JPG))$") Then
    _ArrayAdd($filepaths, $file)
    $split = _PathSplit($file, $szDrive, $szDir, $szFName, $szExt)
    _GUICtrlListView_AddItem($hListview, $split[3])
    _GUICtrlListView_AddSubItem($hListView, _GuiCtrlListView_GetItemCount($hlistview)-1,StringTrimLeft($split[4],1),1)
    Else
    MsgBox(64, "Chaos-Execution Info!", $file & @CRLF & "Is an invalid file type.")
    EndIf
    Case $hButton
    GUIRegisterMsg($WM_ACTIVATE, "")
    GuiSetState(@SW_HIDE, $EditBox)
    GuiSetState(@SW_HIDE, $hGui)
    $insert = FileOpenDialog("Select an item to insert!",@DesktopDir, "Dateien(*.Exe;*.Au3;*.gif;*.jpg)",1)
    GuiSetState(@SW_SHOW, $hGui)
    If $insert <> "" Then
    For $i = 0 To _GuiCtrlListView_GetItemCount($hlistview)
    If _GuiCtrlListView_GetItemSelected($hlistview,$i) Then
    $mod = False
    ExitLoop
    EndIf
    Next
    $split = _PathSplit($insert, $szDrive, $szDir, $szFName, $szExt)
    GuiCtrlSetData($hEdit, $split[3])
    GuiSetState(@SW_Show, $EditBox)
    Else
    _EditEsc()
    EndIf
    GUIRegisterMsg($WM_ACTIVATE, "WM_ACTIVATE")
    Case $insertitem,$insertButton
    $insert = FileOpenDialog("Select an item to insert!",@DesktopDir, "Dateien(*.Exe;*.Au3;*.gif;*.jpg)",5)
    If $insert <> "" Then
    $insertsplit = StringSplit($insert, "|")
    For $i = 1 To Ubound($insertsplit) -1
    $split = _PathSplit($insertsplit[$i], $szDrive, $szDir, $szFName, $szExt)
    If Ubound($insertsplit) -1 > 1 Then
    If $i > 1 Then
    _ArrayAdd($filepaths, $insertsplit[1]&"\"&$insertsplit[$i])
    _GUICtrlListView_AddItem($hListview, $split[3])
    _GUICtrlListView_AddSubItem($hListView,_GuiCtrlListView_GetItemCount($hlistview)-1,StringTrimLeft($split[4],1),1)
    EndIf
    Else
    _ArrayAdd($filepaths, $insertsplit[$i])
    _GUICtrlListView_AddItem($hListview, $split[3])
    _GUICtrlListView_AddSubItem($hListView,_GuiCtrlListView_GetItemCount($hlistview)-1,StringTrimLeft($split[4],1),1)
    EndIf
    Next
    EndIf
    Case $renameitem
    Local $posGui, $posControl, $textItem
    For $i = 0 To _GuiCtrlListView_GetItemCount($hlistview)
    If _GuiCtrlListView_GetItemSelected($hlistview,$i) Then
    $textItem = _GUICtrlListView_GetItemText($hlistview, $i)
    $posControl = _GuiCtrlListView_GetItemPositionY($hlistview, $i)
    $posGui = WinGetPos($hGui)
    ExitLoop
    EndIf
    Next
    If $textitem <> "" Then
    GUIRegisterMsg($WM_ACTIVATE, "WM_ACTIVATE")
    GuiSetState(@SW_DISABLE, $hGui)
    $mod = True
    HotKeySet('{ESC}', '_EditEsc')
    HotKeySet('{ENTER}', '_EditEnter')
    GUICtrlSetData($hEdit, $textItem)
    WinMove($EditBox, "", $posGui[0]+19,$posGui[1]+$posControl+28)
    GuiSetState(@SW_SHOW, $EditBox)
    EndIf
    Case $deleteitem
    For $i = 0 To _GuiCtrlListView_GetItemCount($hlistview)
    If _GuiCtrlListView_GetItemSelected($hlistview,$i) Then
    ExitLoop
    EndIf
    Next
    _ArrayDelete($filepaths,$i+1)
    _GUICtrlListView_DeleteItemsSelected(GUICtrlGetHandle($hListView))
    Case $deleteAll, $deleteButton
    _GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($hListView))
    For $i = 1 To Ubound($filepaths)-1
    _ArrayDelete($filepaths, $i)
    Next
    EndSwitch
    WEnd

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

    ; #INTERNAL FUNCTIONS# =====================================================================================
    Func _EditEnter()
    $text = GUICtrlRead($hEdit)
    If $mod Then
    $split = _PathSplit($filepaths[$i+1], $szDrive, $szDir, $szFName, $szExt)
    FileMove($filepaths[$i+1], $split[1] & $split[2] & $text & $split[4])
    $filepaths[$i+1] = $split[1] & $split[2] & $text & $split[4]
    Else
    $filepaths[$i+1] = $insert
    $split = _PathSplit($filepaths[$i+1], $szDrive, $szDir, $szFName, $szExt)
    EndIf
    _GUICtrlListView_SetItemText($hListView, $i, $text)
    _GUICtrlListView_SetItemText($hListView, $i, StringTrimLeft($split[4],1),1)
    _EditEsc()
    EndFunc

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

    Func _EditEsc()
    GuiSetState(@SW_HIDE, $EditBox)
    GuiSetState(@SW_ENABLE, $hGui)
    WinActivate($hGui)
    GUIRegisterMsg($WM_ACTIVATE, "")
    HotKeySet('{ESC}')
    HotKeySet('{ENTER}')
    EndFunc

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

    ; #REGISTERED FUNCTIONS# ==================================================================================
    Func WM_NOTIFY($hWnd, $MsgID, $wParam, $lParam)
    Local $tagNMHDR, $event, $hwndFrom, $code
    $tagNMHDR = DllStructCreate("int;int;int", $lParam)
    If @error Then Return 0
    $code = DllStructGetData($tagNMHDR, 3)
    If $wParam = $hListView And $code = -3 And _GUICtrlListView_GetSelectedCount($hListView) > 0 Then
    For $i = 0 To _GUICtrlListView_GetItemCount($hListView)
    IF _GUICtrlListView_GetItemSelected($hListView, $i) Then
    ShellExecute($filepaths[$i+1])
    EndIf
    Next
    Endif
    Return $GUI_RUNDEFMSG
    EndFunc

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

    Func WM_HVSCROLL($hwnd, $iMsg, $wParam, $lParam)
    Local $hWndFrom, $iCode
    If Not IsHWnd($slider) Then $hWndCombo1 = GUICtrlGetHandle($slider)
    $hWndFrom = $lParam
    $iCode = _WinAPI_HiWord($wParam)
    Switch $hWndFrom
    Case $slider, $hWndCombo1
    GUICtrlSetData($label, "Transparence = " & GUICtrlRead($slider) & "%")
    WinSetTrans("Chaos-Execution", "", 255 - GUICtrlRead($slider) * 2.55)
    EndSwitch
    EndFunc

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

    Func WM_ACTIVATE($hWnd, $Msg, $wParam, $lParam)
    $state = WinGetState($hGui)
    If NOT BitAnd($state, 8) Then
    GuiSetState(@SW_HIDE, $EditBox)
    WinActivate($hGui)
    Else
    GuiSetState(@SW_Show, $EditBox)
    EndIf
    EndFunc

    [/autoit]


    Das Resizen hab ich auskommentiert für den Rest wäre @ChaosKeks zuständig (eigentlich hatte ich einen TV erwartet, ist aber ein LV)

    mfg (Auto)Bert

  • Programme in TreeView ausführen (Drag & Drop)

    • autoBert
    • 25. Mai 2009 um 10:49

    Hallo subzero007,

    schau dir mal diesen Beitrag von mir an https://autoit.de/index.php?page…86854#post86854 und lade es dir herunter, in der Demo zum Aufruf der _Easter.au3 hab ich eine in der Größe veränderbare GUI:

    [autoit]

    Global $sTitel = 'Beispiele zur Nutzung der UDF _Easter'

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

    Local $hMainGui = GUICreate($sTitel, 400, 280, 140, 150, BitOR($WS_MINIMIZEBOX, $WS_MAXIMIZEBOX, $WS_SIZEBOX))
    ;erzeugt eine GUI die zurückgebebene ID wird in der Variablen $hMainGui gespeichert
    ;die GUI hat BOXen für Mininmieren, Maximieren und ist in der Größe frei änderbar

    [/autoit]


    Mit GUICtrlSetResizing beinflusst du dann noch das Verhalten der Gui-Controls, schau dir einfach die Demo an,

    mfg (Auto)Bert

  • _soundplay tötet meinen pc

    • autoBert
    • 24. Mai 2009 um 23:52

    Hallo 'deify',

    Zitat von deify

    hi erstmal :)
    da ich neu in diesem forum bin stelle ich mich erstmal vor :)
    mein rl-name ist michael ich bin 16 jahre alt und habe eher kleine scriptingkenntnisse was autoit angeht ^^
    also die überschrift sagt ja eigentlich schon mein problem, und zwar dass _soundplay nicht so will wie ich will... entweder es spielt den sound ab oder es macht garnichts ODER es lässt meine cpuauslastung auf 100 hochschießen und ich kann erstmal garnichts machen :D
    habt ihr vllt irgendeine idee woran das liegen könnte? falsche sound.au3 oder sonstiges?
    oder habt ihr vllt eine andere bessere lösung? (am besten keine objectmodel, da ich fps sparen möchte und einen simpelen eigenen mediaplayer machen möchte :) )
    danke im vorraus

    Alles anzeigen


    Wenn du Bedenken hast dass ein oder mehrere Dateien fehlerhaft sind solltest du dir die neueste Version erneut herunterladen: http://www.autoitscript.com/cgi-bin/getfil…it-v3-setup.exe

    Hallo Oscar , stell doch deinenStarplayer (MP3-Player) in der Download Database als EXE zur Verfügung dann kann er damit die MP3s testen, außerdem hätte er dann einen wirklich guten MP3-Player :thumbup:

    mfg (Auto)Bert

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™