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

Beiträge von BugFix

  • µit - Juli

    • BugFix
    • 26. Juni 2009 um 23:26

    Kann es sein, dass du Flag1 in deiner Testumgebung genau falsch betrachtest? Ich würde sagen: JA :D

    _Check(1, _StringStrCount("test TEST Test TestTest", "Test", False, False, "", False), 5)
    Sensitive = False, Partial=False: ==> Test u. test richtig ==> 3!

    _Check(2, _StringStrCount("test TEST Test TestTest", "Test", True, False, "", False), 3)
    Sensitive =True, Partial=False: ==> Test richtig ==> 1!

    usw.

    Ahh, nochwas:
    _Check(6, _StringStrCount("test TEST Test TestTest", "TEST Test", True, True, " ", False), 2)
    Hier wird ein Leerzeichen als Trenner übergeben, d.h. wir zählen beide Begriffe und bekommen demzufolge auch zwei Ergebnisse: Anzahl_Begriff1-Trenner-Anzahl_Begriff2
    Hast du hier alles zusammengezählt? Dann ergibt das wenig Sinn.

  • µit - Juli

    • BugFix
    • 26. Juni 2009 um 23:13

    Noch eine Frage :D
    Flag4: True für String-JA oder Array-JA ?

  • µit - Juli

    • BugFix
    • 26. Juni 2009 um 22:43

    Das das mit den Flags abgeklärt wird ist klar.
    Ich wollte nur eine Definition von Partialsuche geklärt haben, da es innerhalb der AutoIt-Funktionen dort auch unterschiedliche Suchmethoden gibt:
    1. partial ist, wenn ein Begriff mit dem Suchbegriff beginnt (Test Testosteron)
    2. partial ist, wenn der Begriff den Suchbegriff enthält (test Attest)

    Verstehst du jetzt, was ich meine? ;)

  • µit - Juli

    • BugFix
    • 26. Juni 2009 um 22:29
    Zitat von Schnuffel

    das beantwortet sich doch eigentlich von selbst, da es ja ein Flag "Case sensitiv" gibt


    Das würde nun gerade bei meinem Bsp. zutreffen. Aber wie ist es hiermit: (insensitiv test) Testat, testen, Test, Attest. Ostestland ;)

  • µit - Juli

    • BugFix
    • 26. Juni 2009 um 22:13

    Noch eine Frage zur Partialsuche:
    Treffer nur am Wortanfang (Test - Testosteron)
    oder beliebig im Wort (Test - Attest)

  • Neue Funktionen für GuiMenu ==> ..._ColumnsCreate, ..._JustifyRight

    • BugFix
    • 26. Juni 2009 um 21:39
    Zitat von tobi_girst

    Aber ich kapier nicht, wie man nur 1en Teil auf die rechte Seite bringt


    Die Menüs haben in der Reihenfolge, in der du sie erstellst einen 0-basierten Index. Wenn du also das zweite Menü rechts anordnen willst, mußt du, wie im Bsp., _GUICtrlMenu_JustifyRight($gui, 1) anwenden.

  • µit - Juli

    • BugFix
    • 26. Juni 2009 um 18:59
    Zitat von eukalyptus

    Flag3=' ' : 'Test Muster Das ist ein Muster und ein Test' (SubString wird in diesem Fall beim Leerzeichen getrennt und nach allen Teilen einzeln gesucht)


    Das solltest du dann für den Return präzisieren:
    Rückgabe Anzahl
    - für jedes Element einzeln? (Array, delimited String)
    - als Summe für alle Elemente?

    Also ich würde mitmachen.

  • Verschicken

    • BugFix
    • 26. Juni 2009 um 18:49

    Schau dir mal TCPSend() und die zugehörigen Funktionen an. Die Bsp. in der Hilfe enthalten schon genau dein Problem.

  • Neue Funktionen für GuiMenu ==> ..._ColumnsCreate, ..._JustifyRight

    • BugFix
    • 26. Juni 2009 um 14:57
    Zitat von progandy

    warum machst du das nicht mit Unicode ?

    :D Die Macht der Gewohnheit. Aber hast recht, werde es einfügen.

  • Neue Funktionen für GuiMenu ==> ..._ColumnsCreate, ..._JustifyRight

    • BugFix
    • 26. Juni 2009 um 14:21

    Hi,
    wenn ihr mal sehr viele Menüpunkte unterbringen müßt, ist es übersichtlicher diese in Spalten anzuordnen.
    Da diese Funktion in der GuiMenu.au3 nicht enthalten ist, habe ich sie mal erstellt.

    Edit:
    Habe grad noch erweitert um die Möglichkeit, Menüpunkte rechts im Fenster anzuordnen.

    Anwendung s. Bsp. bzw. Angaben im Funktionskopf:

    Spoiler anzeigen
    [autoit]

    #Include <GuiMenu.au3>

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

    $gui = GUICreate('Test')
    $mnu1 = GUICtrlCreateMenu('Mainmenü 1')
    For $i = 1 To 20
    GUICtrlCreateMenuItem('SubMenü_' & $i, $mnu1)
    Next
    $mnu2 = GUICtrlCreateMenu('Mainmenü 2')
    For $i = 1 To 20
    GUICtrlCreateMenuItem('SubMenü_' & $i, $mnu2)
    Next
    GUISetState()

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

    _GUICtrlMenu_ColumnsCreate($gui, 0, 5)
    _GUICtrlMenu_ColumnsCreate($gui, 1, 10)

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

    _GUICtrlMenu_JustifyRight($gui, 1)

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

    Do
    Until GUIGetMsg() = -3

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

    ;===============================================================================
    ; Function Name: _GUICtrlMenu_JustifyRight($hWnd, $iMnuIndex)
    ; Description:: Das MenüItem wird rechts im Fenster positioniert
    ; Parameter(s): $hWnd - Fenster ID
    ; $iMnuIndex - 0-Index des gewünschten Menüs
    ; Requirement(s): #Include <GuiMenu.au3>
    ; Return Value(s): Erfolg - 1
    ; Fehler - 0
    ; @error: 1= Fenster enthält kein Menü
    ; 2= $iMnuIndex außerhalb des Indexbereiches
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;===============================================================================
    Func _GUICtrlMenu_JustifyRight($hWnd, $iMnuIndex)
    Dim $hMenu, $mnuID, $mnuItemText, $buffer
    $hMenu = _GUICtrlMenu_GetMenu($hWnd)
    If Not $hMenu Then Return SetError(1,0,0)
    If ($iMnuIndex+1 > _GUICtrlMenu_GetItemCount($hMenu)) Or ($iMnuIndex < 0) Then Return SetError(2,0,0)
    $mnuID = _GUICtrlMenu_GetItemID($hMenu, $iMnuIndex)
    $mnuItemText = _GUICtrlMenu_GetItemText($hMenu, $iMnuIndex)
    $buffer = DllStructCreate('wchar[' & StringLen($mnuItemText)+1 & ']')
    DllStructSetData($buffer, 1, $mnuItemText)
    DllCall("user32", 'long', "ModifyMenuW", 'long', $hMenu, 'long', $mnuID, _
    'long', $MF_RIGHTJUSTIFY, 'long', $mnuID, 'ptr', DllStructGetPtr($buffer))
    DllCall("user32", 'long', 'DrawMenuBar', 'long', $hWnd)
    Return 1
    EndFunc ;<==_GUICtrlMenu_JustifyRight

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

    ;===============================================================================
    ; Function Name: _GUICtrlMenu_ColumnsCreate($gui, $iMnuIndex, $ItemInCol=0)
    ; Description:: Listet MenüItem spaltenförmig auf
    ; Parameter(s): $gui - Fenster ID
    ; $iMnuIndex - 0-Index des gewünschten Menüs
    ; $ItemInCol - Anzahl der Item in einer Spalte
    ; Requirement(s): #Include <GuiMenu.au3>
    ; Return Value(s): Erfolg - 1
    ; Fehler - 0
    ; @error: 1= Fenster enthält kein Menü
    ; 2= $iMnuIndex außerhalb des Indexbereiches
    ; 3= Menü enthält weniger Item als je Spalte gelistet werden sollen
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;===============================================================================
    Func _GUICtrlMenu_ColumnsCreate($gui, $iMnuIndex, $ItemInCol=0)
    Local $hMenu, $hSubMenu, $buffer
    Local $mnuItemCnt, $mnuItemID, $mnuItemText
    Local $Mode, $count = 0
    $hMenu = _GUICtrlMenu_GetMenu($gui)
    If Not $hMenu Then Return SetError(1,0,0)
    If ($iMnuIndex+1 > _GUICtrlMenu_GetItemCount($hMenu)) Or ($iMnuIndex < 0) Then Return SetError(2,0,0)
    $hSubMenu = _GUICtrlMenu_GetItemSubMenu($hMenu, $iMnuIndex)
    If BitAND(_GUICtrlMenu_GetItemState($hMenu, $hSubMenu), 1) Then
    $Mode = $MF_MENUBARBREAK
    Else
    $Mode = $MF_MENUBREAK
    EndIf
    $mnuItemCnt = _GUICtrlMenu_GetItemCount($hSubMenu)
    If $mnuItemCnt <= $ItemInCol Then
    Return SetError(3,0,0)
    EndIf
    For $i = 1 To $mnuItemCnt
    If ($i > 1) And (Not Mod($i-1, $ItemInCol)) Then
    $mnuItemText = _GUICtrlMenu_GetItemText($hSubMenu, $i-1)
    $mnuItemID = _GUICtrlMenu_GetItemID($hSubMenu, $i-1)
    $buffer = DllStructCreate('wchar[' & StringLen($mnuItemText)+1 & ']')
    DllStructSetData($buffer, 1, $mnuItemText)
    DllCall("user32", 'long', "ModifyMenuW", 'long', $hSubMenu, 'long', $i-1, _
    'long', BitOR($MF_BYPOSITION, $Mode), 'long', $mnuItemID, 'ptr', DllStructGetPtr($buffer))
    EndIf
    Next
    Return 1
    EndFunc ;<==_GUICtrlMenu_ColumnsCreate

    [/autoit]


    Und so sieht es dann aus:

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

  • Feuerwehr - Alarmfax -> Prüfung ob Datei da ist, Verarbeitung

    • BugFix
    • 26. Juni 2009 um 10:20

    Du benötigst:
    - Endlosschleife in der dein Stammordner auf neue Dateien geprüft wird, hier das Prüfintervall festlegen mit Sleep in der Schleife
    - Variable, die den Namen der letzten aktuellen Datei speichert (hatten wir vor kurzem gerade das Thema: Neueste Datei in einem Ordner suchen, schau mal mit der SuFu)
    - gegen diese Variable prüfst du bei jedem Schleifendurchlauf, ob die jetzt neueste Datei einen anderen Namen hat als in der Variable steht
    - wenn ja, ist ein neues Fax da, das du deiner Verarbeitung zuführen kannst
    (Ich würde sicherheitshalber dann explizit alle Dateinamen verwalten und prüfen, es könnten ja auch mehrere Faxe eingegangen sein. Kannst du gut mit _FileListToArray erledigen. Wenn nur die Faxe in dem Ordner landen, hast du schon nur durch die Anzahl der Dateien den Hinweis ob etwas Neues hinzugekommen ist.)

  • String auf gültigen Ordnernamen prüfen

    • BugFix
    • 26. Juni 2009 um 10:10

    Das kannst du so lösen:

    [autoit]


    ; Ordnername prüfen
    $folder1 = 'blablub'
    $folder2 = 'bla?blub'

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

    If StringRegExp($folder1, '[/\\:*?"<>|]') Then
    MsgBox(0, 'Prüfung', 'Ordnername fehlerhaft')
    Else
    MsgBox(0, 'Prüfung', 'Ordnername OK')
    EndIf

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

    If StringRegExp($folder2, '[/\\:*?"<>|]') Then
    MsgBox(0, 'Prüfung', 'Ordnername fehlerhaft')
    Else
    MsgBox(0, 'Prüfung', 'Ordnername OK')
    EndIf

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

    ; nur Klein-/Großbuchstaben
    $str1 = 'abCDefGH'
    $str2 = 'ab12CD'

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

    If StringRegExp($str1, '\A[a-zäöüßA-ZÄÖÜ]*\z') Then
    MsgBox(0, 'Prüfung', 'OK')
    Else
    MsgBox(0, 'Prüfung', 'FEHLER')
    EndIf

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

    If StringRegExp($str2, '\A[a-zäöüßA-ZÄÖÜ]*\z') Then
    MsgBox(0, 'Prüfung', 'OK')
    Else
    MsgBox(0, 'Prüfung', 'FEHLER')
    EndIf

    [/autoit]
  • Listview: Inhalt rechtsbündig anzeigen // Inhalt ins Clipboard kopieren

    • BugFix
    • 26. Juni 2009 um 09:25

    Du mußt das Doppelklick-Event im ListView verwerten. Dazu nutzt du WM_NOTIFY.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>
    #include <StructureConstants.au3>
    #include <WindowsConstants.au3>
    $gui = GUICreate('test')
    $lv = GUICtrlCreateListView('eMail|value', 10,10,300,150,Default,$LVS_EX_FULLROWSELECT)
    $hLV = GUICtrlGetHandle($lv)
    _GUICtrlListView_SetColumnWidth($hLV, 0, 200)
    _GUICtrlListView_SetColumnWidth($hLV, 1, 86)
    _GUICtrlListView_JustifyColumn($hLV, 1, 1)
    For $i = 1 To 10
    GUICtrlCreateListViewItem('('&$i&') '&Random(2000,20000,1)&'mail@bla.com|'& StringFormat('%.3f', Random(0,200)), $lv)
    Next
    GUISetState()
    GUIRegisterMsg($WM_NOTIFY, 'WM_NOTIFY')

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

    Do
    Until GUIGetMsg() = -3

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

    Func _LeftDblClick($index)
    If $index < 0 Then Return
    Local $txt = _GUICtrlListView_GetItemText($hLV, $index)
    ClipPut($txt)
    ToolTip('"' & $txt & '"' & @LF & 'wurde in die Zwischenablage kopiert.')
    Sleep(1500)
    ToolTip('')
    EndFunc

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

    Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
    $hWndListView = $hLV
    If Not IsHWnd($hLV) Then $hWndListView = GUICtrlGetHandle($hLV)

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

    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    Switch $hWndFrom
    Case $hWndListView
    Switch $iCode
    Case $NM_DBLCLK ; Sent by a list-view control when the user double-clicks an item with the left mouse button
    Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
    _LeftDblClick(DllStructGetData($tInfo, "Index"))
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

    [/autoit]
  • VBS zu EXE Konvertieren

    • BugFix
    • 26. Juni 2009 um 08:43
    Zitat von DjDominik

    Es Konvertiert .VBS Dateien in eine .Exe Datei.

    Nunja, eine Konvertierung ist es nicht. Dazu müßtest du den Inhalt des Skriptes in AutoIt-Befehle umsetzen.
    Es handelt sich hierbei um den Aufruf der Skriptdatei über eine AutoIt.exe.
    Aber warum rufst du dann die VBS nicht direkt auf und gehst den Umweg über eine exe ?

  • Word Dokumente öffnen, aber kein Inhalt???

    • BugFix
    • 25. Juni 2009 um 11:25

    _WordCreate() dient dazu, eine Word-Instanz zu erstellen.
    Deine Datei mußt du dann mit _WordDocOpen() öffnen:

    [autoit]

    #include <Word.au3>

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

    $path ='C:\Test\test.doc'
    $oWordApp = _WordCreate()
    _WordDocOpen($oWordApp, $path)

    [/autoit]

    Edit: Korrigiere mich :D
    $oWordApp = _WordCreate($path) funktioniert auch - wenn es bei dir nich läuft, überprüfe mal den Pfad.

  • Erfahrungen mit Excel

    • BugFix
    • 25. Juni 2009 um 10:06

    Hi,
    du kannst auch die in AutoIt integrierte Excel-UDF nutzen.
    Wenn du allerdings mit dem Excel-Objektmodell vertraut bist, kannst du viele Dinge effektiver lösen, wenn du direkt mit den Methoden arbeitest.

    Zu deiner Frage: Ich schaus mir mal an und erstelle ein Muster.

    Edit
    So, hier die Lösung:

    [autoit]

    Local $LW = 'C:\'
    Local $folder = 'TEST'
    Local $filename = 'beispiel'
    Local $sFilePath = $LW & $folder & '\' & $filename & '.xls'

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

    Local $oExcel = ObjCreate("Excel.Application")
    $oExcel.Visible = 0 ; 1= sichtbar
    Local $oBook = $oExcel.WorkBooks.Open($sFilePath, Default, False)

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

    ; hier folgt dein Code zur Bearbeitung

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

    ; Speichern in neuem Ordner
    Local $sFolderSave = $folder & '_' & $filename
    Local $sFileSave = $LW & $folder & '\' & $sFolderSave & '\' & $sFolderSave & '.xls'
    If Not FileExists($LW & $folder & '\' & $sFolderSave) Then DirCreate($LW & $folder & '\' & $sFolderSave)

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

    $oExcel.Application.DisplayAlerts = False
    $oExcel.ActiveWorkBook.SaveAs($sFileSave)
    $oExcel.Application.Quit

    [/autoit]
  • IP Adresse in GUI mit mehrern Reitern (Tabs)

    • BugFix
    • 24. Juni 2009 um 14:14

    Hintergrund:
    Die IP-Controls erhalten keine ID sondern ein Handle. Dadurch sind sie nicht in der Hierarchie der Controlerstellung gebunden sondern rein auf das Fenster fixiert. D.h. sie befinden sich nur auf dem Tab, weil das Tab auf dem Fenster ist. Blendest du das Tab aus, sind sie weiter dort. ;)

  • IP Adresse in GUI mit mehrern Reitern (Tabs)

    • BugFix
    • 24. Juni 2009 um 14:04

    Ist ganz simpel: Die Controls nur anzeigen lassen, wenn das Tab aktiv ist:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <TabConstants.au3>
    #include <WindowsConstants.au3>
    #include <ComboConstants.au3>
    #include <GuiIPAddress.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1");, 378, 354, 377, 548)
    $Tabs = GUICtrlCreateTab(0, 0, 377, 25)

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

    ;Tab 1 Allgemein
    $Allgemein = GUICtrlCreateTabItem("Allgemein")
    $Combo1 = GUICtrlCreateCombo("Combo1", 48, 48, 185, 25)

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

    ;Tab 2 Einstellunegn
    $Einstellungen = GUICtrlCreateTabItem("Einstellungen")
    $IP = GUICtrlCreateLabel("IP-Adresse", 48, 200, 55, 17)
    $IPAddress1 = _GUICtrlIpAddress_Create($Form1, 104, 200, 129, 17)
    _GUICtrlIpAddress_Set($IPAddress1, "192.168.223.100")
    _GUICtrlIpAddress_ShowHide ($IPAddress1, @SW_HIDE)
    $IPAddress2 = _GUICtrlIpAddress_Create($Form1, 104, 232, 129, 17)
    _GUICtrlIpAddress_Set($IPAddress2, "192.168.223.255")
    _GUICtrlIpAddress_ShowHide ($IPAddress2, @SW_HIDE)
    $Input1 = GUICtrlCreateInput("Input1", 48, 128, 185, 21)
    $Input2 = GUICtrlCreateInput("Input2", 48, 160, 185, 21)
    $Broadcast = GUICtrlCreateLabel("Broadcast", 48, 232, 52, 17)
    GUICtrlCreateTabItem("")

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

    GUISetState()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Tabs
    $current = GUICtrlRead($Tabs)
    Switch $current
    Case 0
    _GUICtrlIpAddress_ShowHide ($IPAddress1, @SW_HIDE)
    _GUICtrlIpAddress_ShowHide ($IPAddress2, @SW_HIDE)
    Case 1
    _GUICtrlIpAddress_ShowHide ($IPAddress1, @SW_SHOW)
    _GUICtrlIpAddress_ShowHide ($IPAddress2, @SW_SHOW)
    EndSwitch
    EndSwitch
    WEnd

    [/autoit]
  • Wort suchen Iron

    • BugFix
    • 24. Juni 2009 um 13:44

    Die werden ja nich ständig ihre Position tauschen, also brauchst du doch nur den Suchbereich genauer festlegen.

  • ListView sortieren

    • BugFix
    • 24. Juni 2009 um 13:30
    Zitat von Commander21

    Warum wird die Funktion _GUICtrlListView_SortItems eigl. nirgends in der hilfe angezeigt?


    Also in meiner Hilfe (AutoIt 3.3.0.0) steht es drin. :D

    Edit:

    Hier mal die Lösung:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #Include <GuiListView.au3>
    Global $SelDia
    Global $bDesc = True ; <== Sortparameter ist ByRef, muß vorab deklariert werden

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

    #Region ### START Koda GUI section ### Form=
    $Form1_1 = GUICreate("Löschomat", 777, 447, 195, 126)
    GUISetFont(8, 800, 0, "MS Sans Serif")
    GUISetBkColor(0x878787)
    $ListView1 = GUICtrlCreateListView("Dateiname|Größ (KB)|Endung|Pfad", 0, 0, 605, 445)
    GUICtrlSendMsg(-1, 0x101E, 0, 200)
    GUICtrlSendMsg(-1, 0x101E, 1, 80)
    GUICtrlSendMsg(-1, 0x101E, 2, 70)
    GUICtrlSendMsg(-1, 0x101E, 3, 250)
    GUICtrlCreateGroup("Handlungen", 612, 4, 157, 189)
    GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
    $Button1 = GUICtrlCreateButton("Auswahl löschen", 620, 32, 143, 33)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $Checkbox1 = GUICtrlCreateCheckbox("Löschanfrage ein/aus", 620, 168, 145, 17)
    GUICtrlSetState(-1, $GUI_CHECKED)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $Button2 = GUICtrlCreateButton("Aktuallisieren", 620, 112, 143, 25)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    $Button3 = GUICtrlCreateButton("Ordner aufrufen", 620, 140, 143, 25)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button3
    _DirSelect ($ListView1, 0)
    Case $Button1
    $Read1 = GUICtrlRead ($Checkbox1)
    If $Read1 = $GUI_CHECKED Then
    $Ch = 1
    Else
    $Ch = 0
    EndIf
    _Delete ($ListView1, $Ch)
    Case $Button2
    _DirSelect ($ListView1, 1)
    EndSwitch
    WEnd

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

    Func _DirSelect ($Handle, $Update)
    $hLV = GUICtrlGetHandle($Handle)
    If $Update = 0 Then
    $SelDia = FileSelectFolder ("Bitte wählen Sie einen Ordner aus.", "", 4)
    EndIf
    If Not @Error Then
    _GUICtrlListView_DeleteAllItems($hLV)
    $Search = FileFindFirstFile ($SelDia & "\*.*")
    $FileCount = DirGetSize ($SelDia, 1)
    For $i = 1 To $FileCount[1] Step 1
    $NextFile = FileFindNextFile ($Search)
    $Split = StringRight ($NextFile, 3)
    GUICtrlCreateListViewItem ($NextFile & "|" & Round (FileGetSize ($SelDia & "\" & $NextFile) /1024, 4) & "|" & $Split & "|" & $SelDia, $Handle)
    Next
    _GUICtrlListView_SimpleSort ($hLV, $bDesc, 3)
    EndIf
    EndFunc ;==> _DirSelect

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

    Func _Delete ($Handle, $Checked)
    $hLV = GUICtrlGetHandle($Handle)
    $i1 = _GUICtrlListView_GetSelectedIndices ($hLV, True)
    $i2 = _GUICtrlListView_GetItem ($hLV, $i1[1], 0)
    $i3 = _GUICtrlListView_GetItem ($hLV, $i1[1], 2)
    If $Checked = 1 Then
    If MsgBox (4, "Wirklich löschen?", "Soll die folgende Datei wirklich gelöscht werden:" & @CRLF & $i3[3] & "\" & $i2[3]) = 6 Then
    FileDelete ($i3[3] & "\" & $i2[3])
    _GUICtrlListView_DeleteItemsSelected ($hLV)
    EndIf
    Else
    FileDelete ($i3[3] & "\" & $i2[3])
    _GUICtrlListView_DeleteItemsSelected ($hLV)
    EndIf
    EndFunc ;==> _Delete

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