in GUI bilder einfügen und verschieben

  • Hallo,
    habe eine frage wie kann ich in eine gui bilder einfügen über durchsuchen und im laufenden betrieb sie verschieben?
    danke

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

    2 Mal editiert, zuletzt von subzero007 (26. Mai 2009 um 13:56)

  • hiermit kannst ein bild-ctrl in ein gui einfügen

    [autoit]

    GUICtrlCreatePic ( filename, left, top [, width [, height [, style [, exStyle]]]] )

    [/autoit]

    den pfad lannst du zb über

    [autoit]

    FileOpenDialog ( "title", "init dir", "filter" [, options [, "default name" [, hwnd]]] )

    [/autoit]

    ermitteln...


    was meinst du mit verschieben??? bitte genauer erklären was du vor hast!

  • ich möchte die "zeichnung" "bild" in der gui frei verschieben weil es transparent sein wird ich will dann das bild dem desktop anpassen, ich hoffe ich konnte dir meine vorstellung erleutern??

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • Da bleibt nur noch 1 Frage: Willstu das Pic per Mouse verschieben oder nicht?

    Wenn ja dann hab ich dir hier mal was geschrieben (hoffe es geht, weil ich es bei mir gerade nicht testen kann):

    Spoiler anzeigen
    [autoit]

    $Pos_M2 = MouseGetPos()
    _DragMe($GuiHandle, $DeinPic)

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

    Func _DragMe($hwnd, $Ctrl)
    Local $Pos_C, $Pos_M, $Pos_M2, $Opt_old
    Local $dll = DllOpen("user32.dll")
    $Opt_old = Opt('MouseCoordMode', 0)
    $Pos_C = ControlGetPos($hwnd, "", $Ctrl)
    $Pos_M = MouseGetPos()
    $y_Offset = $Pos_M[1] - $Pos_C[1]
    $x_Offset = $Pos_M[0] - $Pos_C[0]
    While _IsPressed('01', $dll)
    $Pos_M = MouseGetPos()
    If $Pos_M <> $Pos_M2 Then
    If $Pos_M[1] > $Pos_C[1] + $y_Offset AND $Pos_M[1] < $Pos_C[3] - $Pos_C[1] - $y_Offset Then
    If $Pos_M[0] > $Pos_C[0] + $x_Offset AND $Pos_M[0] < $Pos_C[2] - $Pos_C[0] - $x_Offset Then
    GUICtrlSetPos($Ctrl,$Pos_M[2] - $x_Offset, $Pos_M[1] - $y_Offset)
    Sleep(50)
    EndIf
    EndIf
    EndIf
    $Pos_M = $Pos_M2
    sleep(50)
    WEnd
    DllClose($dll)
    Opt('MouseCoordMode', $Opt_old)
    EndFunc

    [/autoit]
  • wenn du noch satzzeichen verwenden würdest und du dir ein bisschen mehr mühe beim schreiben geben würdest, wäre ich dir sehr dankbar.

    mal n ganz einfaches beispiel wie du es machen kannst (nur mal eben schnell gecoded - ungetestet) kannst dir ja noch ausbauen...

    [autoit]


    #Include <GUIConstantsEx.au3>
    #NoTrayIcon
    Opt("GUIOnEventMode", 1)
    Opt("GUICoordMode", 0)
    Global $posXStart, $posYStart, $posXStop, $posYStop
    $main=GUICreate("Tööööst", @DesktopWidth ,@DesktopHeight-55)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_GUIEvents")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "_GUIEvents")
    GUISetOnEvent($GUI_EVENT_RESTORE, "_GUIEvents")
    GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, "_leftClicked")
    GUISetOnEvent($GUI_EVENT_PRIMARYUP, "_leftReleased")
    $pic=GUICtrlCreatePic("C:\WINDOWS\Help\Tours\htmlTour\safe_easy_easier.jpg", @DesktopWidth/2, @DesktopHeight/2)
    GUISetState(@SW_SHOW, $main)
    While True
    Sleep(10)
    WEnd
    Func _GUIEvents()
    Select
    Case @GUI_CtrlId = $GUI_EVENT_CLOSE
    Exit
    Case @GUI_CtrlId = $GUI_EVENT_MINIMIZE
    Case @GUI_CtrlId = $GUI_EVENT_RESTORE
    EndSelect
    EndFunc ;==> _GUIEvents()
    Func _leftClicked()
    $pos=MouseGetPos()
    $posXStart=$pos[0]
    $posYStart=$pos[1]
    EndFunc ;==> _leftClicked()
    Func _leftReleased()
    $pos=MouseGetPos()
    $posXStop=$pos[0]
    $posYStop=$pos[1]
    GUICtrlSetPos($pic, -1*($posXStart-$posXStop), -1*($posYStart-$posYStop))
    EndFunc ;==> _leftClicked()

    [/autoit]
  • so....

    das mit dem bild klappt ja wunder bar aber wie sieht es den aus wenn ich meine listview auch verschieben möchte wie mein Pic.
    vorallem sehe ich die listview nicht mehr?
    und an welche stelle muss ich fileopen dialog setzen damit ich die bilder auswählen kann?
    wo ist der fehler?

    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)
    Opt("GUIOnEventMode", 1)
    Opt("GUICoordMode", 0)
    Global $posXStart, $posYStart, $posXStop, $posYStop
    ;$main=GUICreate("Tööööst", @DesktopWidth ,@DesktopHeight-55)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_GUIEvents")
    GUISetOnEvent($GUI_EVENT_MINIMIZE, "_GUIEvents")
    GUISetOnEvent($GUI_EVENT_RESTORE, "_GUIEvents")
    GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, "_leftClicked")
    GUISetOnEvent($GUI_EVENT_PRIMARYUP, "_leftReleased")
    $pic=GUICtrlCreatePic("C:\WINDOWS\Help\Tours\htmlTour\safe_easy_easier.jpg", @DesktopWidth/2, @DesktopHeight/2)
    GUISetState(@SW_SHOW, $hGui)
    While True
    Sleep(10)
    WEnd
    Func _GUIEvents()
    Select
    Case @GUI_CtrlId = $GUI_EVENT_CLOSE
    Exit
    Case @GUI_CtrlId = $GUI_EVENT_MINIMIZE
    Case @GUI_CtrlId = $GUI_EVENT_RESTORE
    EndSelect
    EndFunc ;==> _GUIEvents()
    Func _leftClicked()
    $pos=MouseGetPos()
    $posXStart=$pos[0]
    $posYStart=$pos[1]
    EndFunc ;==> _leftClicked()
    Func _leftReleased()
    $pos=MouseGetPos()
    $posXStop=$pos[0]
    $posYStop=$pos[1]
    GUICtrlSetPos($pic, -1*($posXStart-$posXStop), -1*($posYStart-$posYStop))
    EndFunc

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

    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]

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • Mal ne ganz kurze zwischenfrage :)

    wenn man in einer Combobox ( hab mir z.B. ein script geschrieben wo ich per Combobox meine Games aussuche und mitm Button "Start Game" das spiel starte) wenn man da dann nur z.B. Counterstrike Source angegeben hat (ohne klick auf Run oder so) das daneben dann mit dem befehl "GUICtrlCreatePic" ein kleines Bild danebenmachen kann, und wenn man dann z.B. auf Warcraft 3 geht sich es automatisch ändert und dann auf Run Game drücken kann..

    geht das?
    If abfrage?
    If Combobox = Counterstrike Source then
    GuiCtrlCreatePic

    so in etwa geht das???
    MFG: Blacky911

    Kleiner AutoIt Lehrling :)

  • 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

  • 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:

    mfg (Auto)Bert

    ich denke er will keinen bot machen, sondern eine art game-starter mit vorschaubild... aber wie AutoBert schon geschrieben hat, bitte extra thread aufmachen!

  • 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)

    Eh ausschalten geht glaub ich mit GuiSetStyle..

  • Ok ich wähle die möglichkeit mit dem bild ;)

    so ungefähr soll es aussehen wo ich bilder manuell hinzufügen aber auch entfernen kann , und sie anschliessen plazieren kann.
    Die bilder sollten dann über eine ini wissen wo sie standen und welche bilder vor allem in der gui waren .
    das ganze sollte mann anpassen können,so dass man auch die listview mit den button's verschieben kann und das ganze transparent.

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

    Einmal editiert, zuletzt von subzero007 (25. Mai 2009 um 20:26)

  • keine idee?

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

  • leider hänge ich wieder finde den fehler nicht??!!
    siehe zeile 56- 64
    mein ziel ist es bilder in die GUI zu packen und sie anschliessend per maus verschieben können und auch entfernen eine idee?
    ist es dabei möglich die bilder gross zu ziehen, wenn ich die bilder eingefügt habe.
    Das ich sie positioniere mit der maus und anschliessen die grösse des bildes anpassen kann?

    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)

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

    $delpic = GuiCtrlCreateButton("Delete Pic",170,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
    $inspic = GuiCtrlCreateButton("Insert Pic",115,252,50,28)
    GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKSIZE + $GUI_DOCKBOTTOM)
    $message = "Bild auswählen"
    $var = FileOpenDialog($message, @WindowsDir & "\", "Bilder (*.jpg;*.bmp)", 1 + 4 )
    $Pic=GUICtrlCreatePic($var)
    GUISetState(@SW_SHOW)

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

    ;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]

    lg SubZero ;)
    ==========================================================================

    "Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral."

    Einmal editiert, zuletzt von subzero007 (26. Mai 2009 um 09:24)