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

  • Unterordner einbinden - HELP

    • Oscar
    • 12. Dezember 2008 um 10:05

    @Pee: Interessantes Programm. Kannte ich noch gar nicht. Denke aber, dass das hier nicht weiterhilft, weil die Dateien ja auch in den anderen Verzeichnissen vorhanden sein können.

    @wk2x: Ok, mal sehen, ob ich das jetzt verstanden habe: Eine Datei z.B. "C:\testrename\test.txt" soll in der kompletten Verzeichnisstruktur von "C:\testrename2\" gesucht werden und im Falle des Nichtvorhandenseins dorthin kopiert werden. Findet das Script hingegen ein Duplikat z.B. in "C:\testrename2\bla\bla\test.txt", was soll dann mit der zu kopierenden Datei geschehen?
    Soll die Datei dann (weil sie direkt in "C:\testrename\" lag) ebenfalls in den "Hauptpfad" ("C:\testrename2\") kopiert werden oder in das Unterverzeichnis, in dem das Duplikat gefunden wurde.
    Und welche Datei (neue oder alte) soll im doppelten Fall umbenannt werden?

  • DLL-Download Seite / Suche DLL um aus JPG's ein Panoramabild zu machen

    • Oscar
    • 12. Dezember 2008 um 06:55

    Mit 'ner DLL kann ich jetzt nicht dienen, aber IrfanView kann auch Panoramabilder erstellen. Das kann man dann auch mit AutoIt per Kommandozeile erledigen (siehe Hilfe zu IrfanView).

  • Winamp Playliste erstellen

    • Oscar
    • 11. Dezember 2008 um 21:18

    _GUICtrlListView_GetSelectedIndices($hLVHandle) gibt ein Array zurück. Das kann man nicht einfach als Übergabeparameter für _GUICtrlListView_GetItemText() verwenden.
    So geht es aber:

    Spoiler anzeigen
    [autoit]


    #include<GuiListView.au3>
    #include<GUIConstantsEx.au3>
    #include<ListViewConstants.au3>
    #include <File.au3>
    #include <Array.au3>
    #include<ButtonConstants.au3>

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

    ;Form1
    $Form1 = GUICreate("Aufnahmen", 1000, 700, 195, 112)

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

    ;Auswahl
    Global $path = "D:\Mp3\MP3s\"
    Global $Header = "Titel"
    Global $ListView = GUICtrlCreateListView($Header, 0, 20, 600, 300, $LVS_SHOWSELALWAYS)
    GUICtrlSetFont($ListView, 16)
    Global $hLVHandle = GUICtrlGetHandle($ListView)
    _GUICtrlListView_SetColumn($hLVHandle, 0, "Titel", 595, 0)
    $red = GUICtrlCreateButton("Tab", 10, 400, 100, 60)
    GUICtrlSetBkColor($red, "0xFF0000")
    $green = GUICtrlCreateButton("Untab", 130, 400, 100, 60)
    GUICtrlSetBkColor($green, "0x006400")
    $yellow = GUICtrlCreateButton("Übergeben", 250, 400, 100, 60)
    GUICtrlSetBkColor($yellow, "0xFFFF00")
    $blue = GUICtrlCreateButton("Zurück", 370, 400, 100, 60)
    GUICtrlSetBkColor($blue, "0x0000FF")
    GUISetState(@SW_SHOW)

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

    $FileList = _FileListToArray($path)
    If @error = 1 Then
    MsgBox(0, "", "No Files\Folders Found.")
    Exit
    EndIf
    ;_ArrayDisplay($FileList,"$FileList")
    ;MsgBox(1, "", $Filelist[5])
    For $i = 1 To $FileList[0]
    GUICtrlCreateListViewItem($FileList[$i], $ListView)
    Next

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

    While 1
    $Msg = GUIGetMsg(1)
    Switch $Msg[0]
    Case $GUI_EVENT_CLOSE ; Fenster schließen
    Exit
    Case $red
    $aIndex = _GUICtrlListView_GetSelectedIndices($hLVHandle, 1)
    $Playlist = ''
    For $i = 1 To $aIndex[0]
    $Playlist &= $path & _GUICtrlListView_GetItemTextString($hLVHandle, $aIndex[$i]) & @CRLF
    Next
    FileWrite($path & 'playlist.m3u', $Playlist)
    MsgBox(1, "", $Playlist)
    ;~ ShellExecute($path & 'playlist.m3u')
    EndSwitch
    WEnd

    [/autoit]
  • Spielfeld, 2D-Array

    • Oscar
    • 11. Dezember 2008 um 20:21

    Zum einen in Zeile 100:

    [autoit]

    GUICtrlSetImage(-1, "feld.gif")

    [/autoit]


    Das funktioniert nicht bei GUICtrlSetGraphic.

    Zum anderen: $Laenge = 1500, $Breite = 500
    1500x500 = 750.000 Graphic-Elemente!
    Ich fürchte, dafür ist AutoIt nicht gemacht. Vor allem, weil die GUICtrl[...]Graphic-Funktionen auch noch fehlerhaft sind.

    Vielleicht kennt ja noch jemand eine Möglichkeit ein solch großes Spielfeld zu erstellen, aber ich denke, die Aussichten sind schlecht. :huh:

  • Warten bis man Online ist.

    • Oscar
    • 11. Dezember 2008 um 19:23

    Man könnte es ja um einen Timer erweitern:

    [autoit]


    If _waitinetconnect() Then
    MsgBox(0, "Online", "Jetzt bist du online!")
    Else
    MsgBox(0, "Offline", "Keine Onlineverbindung möglich!")
    EndIf

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

    Func _waitinetconnect()
    Local $timer = TimerInit()
    While Not Ping("www.google.de")
    Sleep(1000)
    If TimerDiff($timer) > 5000 Then Return 0
    WEnd
    Return 1
    EndFunc ;==>_waitinetconnect

    [/autoit]
  • GUICtrlCreateCheckbox Schrift ändern

    • Oscar
    • 11. Dezember 2008 um 19:16

    Ein bißchen Mathematik und ein paar kleine Änderungen und schon...

    Spoiler anzeigen
    [autoit]


    ; Muster Checkbox-Bearbeitung
    ; Ziel: einfache Abfrage, welche CB aktiviert sind

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

    #include <GUIConstants.au3>
    Opt('GUIOnEventMode', 1)
    Opt("MustDeclareVars", 1)
    Global $bCheckAll, $bUnCheckAll, $GUI, $i, $str, $bOutput
    Global $arCBNames = StringSplit('aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj,kkk,mmm,nnn,ooo,ppp,qqq,rrr,sss,ttt,uuu,vvv', ',')
    Global $arCB[21][3] ; Array für Handle und Dual-Wert der CB
    Global $Checked = 0 ; Variable nimmt Status ALLER Checkboxen in einem Wert auf,
    ; Startstatus für alle: UNCHECKED
    Global $w = 600, $h = 20*30+40, $l = (@DesktopWidth-$w)/2, $t = (@DesktopHeight-$h)/2
    $GUI = GUICreate('Test Checkbox', $w, $h, $l, $t)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_Ende')
    For $i = 0 To UBound($arCB) -1
    $arCB[$i][1] = 2^$i ; Zuweisung eindeutiger Wert
    $arCB[$i][0] = GUICtrlCreateCheckbox('"' & $arCBNames[$i+1] & '"', 20+Int($i/7)*100, 20+Mod($i,7)*30, 90, 20)
    GUICtrlSetOnEvent(-1, '_ClickCB')
    Next
    $bCheckAll = GUICtrlCreateButton('Alle markieren', 400, 20, 150, 21)
    GUICtrlSetOnEvent(-1, '_CheckAll')
    $bUnCheckAll = GUICtrlCreateButton('Markierung aufheben', 400, 50, 150, 21)
    GUICtrlSetOnEvent(-1, '_UnCheckAll')
    $bOutput = GUICtrlCreateButton('MsgBox-Ausgabe', 400, 80, 150, 21)
    GUICtrlSetOnEvent(-1, '_Output')
    GUISetState()

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

    While 1
    Sleep(100)
    WEnd

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

    Func _Ende()
    Exit
    EndFunc

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

    Func _ClickCB()
    For $i = 0 To UBound($arCB) -1
    If $arCB[$i][0] = @GUI_CtrlId Then
    $Checked = BitXOR($Checked, $arCB[$i][1])
    ExitLoop
    EndIf
    Next
    _ReadCB()
    EndFunc

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

    Func _CheckAll()
    For $i = 0 To UBound($arCB) -1
    If Not BitAND($Checked, $arCB[$i][1]) Then
    GUICtrlSetState($arCB[$i][0], $GUI_CHECKED)
    $Checked = BitXOR($Checked, $arCB[$i][1])
    EndIf
    Next
    _ReadCB()
    EndFunc

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

    Func _UnCheckAll()
    For $i = 0 To UBound($arCB) -1
    If BitAND($Checked, $arCB[$i][1]) Then
    GUICtrlSetState($arCB[$i][0], $GUI_UNCHECKED)
    $Checked = BitXOR($Checked, $arCB[$i][1])
    EndIf
    Next
    _ReadCB()
    EndFunc

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

    Func _ReadCB() ; Fkt. dient nur zur Ausgabe, welche CB markiert sind
    Local $str = 'Markiert: '
    For $i = 0 To UBound($arCB) -1
    If BitAND($Checked, $arCB[$i][1]) Then $str &= $i+1 & ', '
    Next
    WinSetTitle($GUI, '', StringTrimRight($str, 2))
    EndFunc

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

    Func _Output()
    Local $str = ''
    For $i = 0 To UBound($arCB) -1
    If BitAND($Checked, $arCB[$i][1]) Then $str &= '"' & $arCBNames[$i+1] & '", '
    Next
    MsgBox(0, 'Ausgabe', StringTrimRight($str, 2))
    EndFunc

    [/autoit]
  • Unterordner einbinden - HELP

    • Oscar
    • 11. Dezember 2008 um 17:36

    Ist die Verzeichnisstruktur in beiden Verzeichnissen gleich?
    Müssen also "nur" die Dateinamen aus "C:\testrename\bla\" mit den Dateinamen aus "C:\testrename2\bla\" verglichen werden?
    Oder muss in allen Unterordnern nach eventuellen Duplikaten gesucht werden?

  • Runder Button

    • Oscar
    • 11. Dezember 2008 um 15:20

    Ich habe mal noch eine andere Version erstellt, bei der man beliebig viele Buttons mit der Hover-Funktion belegen kann:

    Spoiler anzeigen
    [autoit]


    #include<GUIConstantsEx.au3>
    Opt('GUIOnEventMode', 1)

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

    $hGui = GUICreate(" My GUI Icons", 280, 100)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_End')
    GUISetOnEvent($GUI_EVENT_MOUSEMOVE, '_MoveOrDown')
    GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, '_MoveOrDown')
    GUISetOnEvent($GUI_EVENT_PRIMARYUP, '_Up')

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

    Global $aButton[3][7]
    $aButton[0][0] = GUICtrlCreateIcon("shell32.dll", -24, 20, 20, 32, 32)
    $aButton[0][1] = -24 ; Iconposition in der dll für nicht gedrückt
    $aButton[0][2] = -44 ; Iconposition in der dll für gedrückt
    $aButton[0][3] = False ; Check für Position bei gedrückt (verhindert flackern)
    $aButton[0][4] = False ; Check für Icon-Image bei gedrückt (verhindert flackern)
    $aButton[0][5] = 20 ; X-Position des Icons
    $aButton[0][6] = 20 ; Y-Position des Icons

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

    $aButton[1][0] = GUICtrlCreateIcon("shell32.dll", -14, 120, 20, 32, 32)
    $aButton[1][1] = -14
    $aButton[1][2] = -15
    $aButton[1][3] = False
    $aButton[1][4] = False
    $aButton[1][5] = 120
    $aButton[1][6] = 20

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

    $aButton[2][0] = GUICtrlCreateIcon("shell32.dll", -10, 220, 20, 32, 32)
    $aButton[2][1] = -10
    $aButton[2][2] = -11
    $aButton[2][3] = False
    $aButton[2][4] = False
    $aButton[2][5] = 220
    $aButton[2][6] = 20

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

    GUISetState()

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

    While 1
    Sleep(50)
    WEnd

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

    Func _End()
    Exit
    EndFunc

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

    Func _Up() ; wird aufgerufen, wenn die linke Maustaste losgelassen wird
    Local $aInfo = GUIGetCursorInfo($hGui), $j = -1
    For $i = 0 To UBound($aButton)-1
    If $aInfo[4] = $aButton[$i][0] Then $j = $i
    Next
    If $j = -1 Then Return
    MsgBox(0, 0, 'Button ' & $j+1 & ' wurde angeklickt')
    GUICtrlSetImage($aButton[$j][0], "shell32.dll", $aButton[$j][1]) ; ursprüngliches Icon wiederherstellen
    EndFunc

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

    Func _MoveOrDown() ; wird aufgerufen, wenn entweder die Maus bewegt oder die linke Maustaste runtergedrückt wird
    Local $aInfo = GUIGetCursorInfo($hGui), $j = -1
    For $i = 0 To UBound($aButton)-1
    If $aInfo[4] = $aButton[$i][0] Then $j = $i
    Next
    If $j = -1 Then
    For $i = 0 To UBound($aButton)-1
    if $aButton[$i][3] Then GUICtrlSetPos($aButton[$i][0], $aButton[$i][5], $aButton[$i][6])
    if $aButton[$i][4] Then GUICtrlSetImage($aButton[$i][0], "shell32.dll", $aButton[$i][1])
    $aButton[$i][3] = False
    $aButton[$i][4] = False
    Next
    Return
    EndIf
    If Not $aButton[$j][3] Then
    GUICtrlSetPos($aButton[$j][0], $aButton[$j][5]+1, $aButton[$j][6]+1)
    $aButton[$j][3] = True
    EndIf
    If $aInfo[2] And Not $aButton[$j][4] Then
    GUICtrlSetImage($aButton[$j][0], "shell32.dll", $aButton[$j][2])
    $aButton[$j][4] = True
    EndIf
    EndFunc

    [/autoit]

    Hier wird auch noch der linke Mausklick abgefangen und es wird, während man die Maustaste gedrückt hält, ein anderes Icon angezeigt. Der eigentliche Klick-Event erfolgt erst beim loslassen der Maustaste.

  • ClipboardMemo

    • Oscar
    • 11. Dezember 2008 um 11:10

    Ok, aber wozu braucht man das?
    Bevor ich mir überlege, wie ich das umsetzen kann, stelle ich mir erstmal die Frage nach dem Sinn?
    Ich bin überzeugter TotalCommander-Benutzer. Kopieren, verschieben, löschen usw. mache ich damit. Welche Anwendungsmöglichkeit kommt in Frage für "mehrere Dateien/Bilder/etc. in der Zwischenablage"?

  • ClipboardMemo

    • Oscar
    • 11. Dezember 2008 um 01:35

    Es gibt wieder eine neue Version (siehe Post #1).

  • _FileListToArray bei UNC und filtern

    • Oscar
    • 10. Dezember 2008 um 21:50

    Kann ich nicht bestätigen. Das funktioniert bei mir mit meinem lokalen NAS einwandfrei.

  • DLL-Download Seite / Suche DLL um aus JPG's ein Panoramabild zu machen

    • Oscar
    • 10. Dezember 2008 um 21:39

    Was ist so schwer daran, mal eine Suchmaschine zu bemühen?

    Dll

  • saubere Programmierung:Parameterübergabe an Funktionen

    • Oscar
    • 10. Dezember 2008 um 18:35

    Das TrayGetMsg kannst Du doch in die GUIGetMsg-Schleife mit einbauen:

    [autoit]


    [...]
    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    MsgBox(0, "", "Dialog was closed")
    Exit
    Case $button_1
    MsgBox(0, "Default button clicked", "Radio " & $radioval1)
    EndSwitch
    Switch TrayGetMsg()
    Case $aboutitem
    MsgBox(64, "About:", "AutoIt3-Tray-sample")
    Case $exititem
    ExitLoop
    EndSwitch
    WEnd
    [...]

    [/autoit]
  • HotKeySet

    • Oscar
    • 10. Dezember 2008 um 17:53

    In Deinem AutoIt-Ordner sollte es diese Datei "UDFs3.chm" geben. Das ist die Hilfe für die UDFs.

  • Runder Button

    • Oscar
    • 10. Dezember 2008 um 17:51

    Man kann sowas simulieren:

    Spoiler anzeigen
    [autoit]


    #include<GUIConstantsEx.au3>

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

    $hGui = GUICreate(" My GUI Icons", 250, 250)
    $icon = GUICtrlCreateIcon("shell32.dll", -24, 20, 75, 32, 32)
    GUISetState()
    Global $old, $msg
    While 1
    $msg = GUIGetMsg()
    $aInfo = GUIGetCursorInfo($hGui)
    If $aInfo[4] = $icon Then
    If $aInfo[4] <> $old Then
    $old = $aInfo[4]
    GUICtrlSetPos($icon, 21, 76, 32, 32)
    EndIf
    Else
    If $aInfo[4] <> $old Then
    $old = $aInfo[4]
    GUICtrlSetPos($icon, 20, 75, 32, 32)
    EndIf
    EndIf
    If $msg = $icon Then
    GUICtrlSetImage($icon, "shell32.dll", -44)
    MsgBox(0,0,'angeklickt')
    GUICtrlSetImage($icon, "shell32.dll", -24)
    EndIf
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd

    [/autoit]
  • HotKeySet

    • Oscar
    • 10. Dezember 2008 um 17:41

    Das muss man nicht unbedingt über einen Hotkey machen. Versuch's mit _IsPressed(). Und für die Hilfe gibt's: GUISetHelp

  • Runder Button

    • Oscar
    • 10. Dezember 2008 um 17:39

    Wie gesagt, man kann auch (runde) Icons abfragen.
    Probier einfach mal mein obiges Script-Beispiel aus.

  • Kann mir mal jemand erklären wie man nen Chat mach?

    • Oscar
    • 10. Dezember 2008 um 17:37

    Ich meinte Grundlagen über TCP/IP.
    Wenn die bei Dir vorhanden wären, dann würdest Du solche Fragen nicht stellen. ;)

  • HotKeySet

    • Oscar
    • 10. Dezember 2008 um 17:31

    Vielleicht schaust Du mal in die Hilfe, dort steht bei HotKeySet:

    The following hotkeys cannot be set:

    Ctrl+Alt+Delete It is reserved by Windows
    F12 It is also reserved by Windows, according to its API.
    NumPad's Enter Key Instead, use {Enter} which captures both Enter keys on the keyboard.
    Win+B,D,E,F,L,M,R,U; and Win+Shift+M These are built-in Windows shortcuts. Note: Win+B and Win+L might only be reserved on Windows XP and above.
    Alt, Ctrl, Shift, Win These are the modifier keys themselves!
    Other Any global hotkeys a user has defined using third-party software, any combos of two or more "base keys" such as '{F1}{F2}', and any keys of the form '{LALT}' or '{ALTDOWN}'.

  • Runder Button

    • Oscar
    • 10. Dezember 2008 um 17:29

    Einen runden Button gibt es nicht, aber Du kannst ein Icon auch als Klick-Event abfragen:

    [autoit]


    #include<GUIConstantsEx.au3>

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

    GUICreate(" My GUI Icons", 250, 250)
    $icon = GUICtrlCreateIcon("shell32.dll", -24, 20, 75, 32, 32)
    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    If $msg = $icon Then MsgBox(0,0,'angeklickt')
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd

    [/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™