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 Verstecken/Wiedersichtbarmachen (Was ist an meinem Script falsch?)

    • autoBert
    • 11. Februar 2012 um 10:12
    Zitat von $var

    Zeile 55... "-H"?


    -H ist korrekt, nur wird die Zeile nie ausgeführt.

    @Davolutiion: Ich habe dass Prgramm daher so abgeändert:

    Spoiler anzeigen
    [autoit]

    #NoTrayIcon
    #RequireAdmin
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

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

    ;ConsoleWrite(FileGetAttrib ("D:\Programme\AutoIt3\Test\Julien") & @CRLF)
    ;Exit

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

    $Form1 = GUICreate("Folder/File Locker", 410, 140, 192, 124)
    GUISetFont(12, 400, 0, "Comic Sans MS")
    GUISetBkColor(0xFFFFFF)
    $Label1 = GUICtrlCreateLabel("Pfad: ", 8, 8, 47, 27)
    $Input1 = GUICtrlCreateInput("C:\Users\Admin\Desktop\Alles", 64, 8, 289, 31)
    $Button2 = GUICtrlCreateButton("Lock", 8, 48, 185, 49)
    $Button3 = GUICtrlCreateButton("Unlock", 208, 48, 193, 49)
    $Label2 = GUICtrlCreateLabel("Status: ", 128, 104, 62, 27)
    $Label3 = GUICtrlCreateLabel("Locked", 200, 107, 62, 22)
    GUICtrlSetFont(-1, 10, 400, 0, "Comic Sans MS")
    GUISetState(@SW_HIDE)

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

    Abfrage()

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

    Func Abfrage()
    Local $iVersuch = 0
    $pwabfrage = InputBox("Password", "Password eingeben!", "", "*")
    If $pwabfrage = "XXX" Then
    MsgBox(0, "Success", "Erfolgreich eingeloggt!")
    GUISetState(@SW_SHOW)
    Else
    If $iVersuch < 3 Then
    MsgBox(0, "Error", "Error, bitte versuche es erneut!")
    Abfrage()
    Else
    MsgBox(0, "Error", "Error, Pech gehabt!")
    Exit
    EndIf
    EndIf
    EndFunc ;==>Abfrage

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

    While 1
    $msg = GUIGetMsg()
    ;If @error Then Exit GuiGetMsg setzt keinen Errr
    If StringInStr(FileGetAttrib(GUICtrlRead($Input1)), "HD") Then ;<====
    If GUICtrlRead($Label3) <> "Locked" Then GUICtrlSetData($Label3, "Locked") ;<=====
    Else
    If GUICtrlRead($Label3) <> "Unlocked" Then GUICtrlSetData($Label3, "Unlocked") ;<=====
    EndIf
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit ;ExitLoop geht in deinem Fall auch
    Case $Button2
    ConsoleWrite("Vor Lock: " & FileGetAttrib("D:\Programme\AutoIt3\Test\Julien") & @CRLF)
    If StringInStr(FileGetAttrib(GUICtrlRead($Input1)), "HD") Then ;<====
    MsgBox(0, "Locked", "Allready locked!")
    Else
    FileSetAttrib(GUICtrlRead($Input1), "H")
    GUICtrlSetData($Label3, "Locked")
    EndIf
    ConsoleWrite("Nach Lock: " & FileGetAttrib("D:\Programme\AutoIt3\Test\Julien") & @CRLF)
    Case $Button3
    ConsoleWrite("Vor UnLock: " & FileGetAttrib("D:\Programme\AutoIt3\Test\Julien") & @CRLF)
    If StringInStr(FileGetAttrib(GUICtrlRead($Input1)), "HD") Then ;<====
    FileSetAttrib(GUICtrlRead($Input1), "-H")
    GUICtrlSetData($Label3, "Unlocked")
    Else
    MsgBox(0, "Unlocked", "Allready Unlocked")
    EndIf
    ConsoleWrite("Nach UnLock: " & FileGetAttrib("D:\Programme\AutoIt3\Test\Julien") & @CRLF)
    EndSwitch
    WEnd

    [/autoit]

    Die Zeilen mit ConsoleWrite kannst du auskmmentieren, nachdem du verstanden hast warum es nicht ging. Ausserdem habe ich die Anzahl der Versuche Passworteinagbe begrenzt,

    mfg autoBert

  • Das Thema mit den Virenscanner

    • autoBert
    • 11. Februar 2012 um 00:47

    Ich habe bei meinen EXEn sehr selten Probleme dass ein Scanner sie als Virus einstuft. Ich verichte grundsätzlich auf upx und gebe ich immer die Fileversion und den Author an. Kurz vor der Auslieferung lade ich die EXE das 1. mal auf Virustotal.com hoch, sollte doch 1 Scanner darauf anspringen trete ich in EMail Kontakt mit dem jeweiligen Hersteller 2-3 Tage später wird die EXE dann vn keinem mehr als Virus eingestuft. Auch bei Änderungen am Programm kam es erst 1 mal vor, dass die neue Version als Virus eingestuft wurde, aber bereits am nächsten Tag wurde sie wieder vn keinem eingestuft.
    Das erfolgreichste Mittel wäre natürlich sie zu signieren, ich weis aber leider nicht wie man kostenls zu einem vertrauenswürdigen Schlüssel kmmt,

    mfg autoBert

  • [Beispiel] BMP-, GIF-, PNG- & JPG-Viewer (Stand: 10.02.2012)

    • autoBert
    • 10. Februar 2012 um 21:46

    Update: siehe Post 1 PNG-Format aufgenommen, danke @Großvater für https://autoit.de/index.php?page=Thread&amp;threadID=24514

    SEuBo: das Skript nimmt (derzeit immer noch) nur Dateien im BMP-, GIF, PNG- und JPG-Frmat entgegen. Zum einfügen müssen sie über der Listview sein. Die Spaltenbreiten setze ich nach jeder Einfügeaktion: Spalte Name auf den längsten Eintrag und Spalte Pfad auf 0,

    mfg autBert

  • GDI+ Höhe und Breite ermitteln failt

    • autoBert
    • 10. Februar 2012 um 19:53

    Hall Julien,

    ich habe es gerade so getestet:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Include <GDIPlus.au3>
    _GDIPlus_Startup()
    $Form1 = GUICreate("Form1", 446, 73, 192, 124)
    $BildPfad = GUICtrlCreateLabel("BildPfad", 8, 8, 43, 17)
    $Input1 = GUICtrlCreateInput("", 56, 8, 377, 21)
    $uberprufen = GUICtrlCreateButton("uberprufen", 176, 40, 75, 25)
    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    _GDIPlus_Shutdown()
    Exit
    Case $uberprufen
    $sImage = GuiCtrlRead($Input1)
    $hImage = _GDIPlus_ImageLoadFromFile($sImage)
    $iX = _GDIPlus_ImageGetWidth($hImage)
    $iY = _GDIPlus_ImageGetHeight($hImage)
    _GDIPlus_ImageDispose($hImage)
    ConsoleWrite("Breite " & $iX & " Hohe " & $iY)
    If $iX = 166 And $iY = 44 Then
    MsgBox(64,"Bild richtig","Das Bild hat die richtigen Maße")
    Else
    MsgBox(64,"Bild falsch","Maße nicht eingehalten!")
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    Die ermittelten Masse die in der Scite-Konsole angezeigt werden stimmen bei mir, kann es sein dass du einen Tippfehler in deiner If-Abfrage hast und anstelle von 166 116 schreiben wolltest, dies sind zumindest die Masse der Bilder, die ich aus dem PatchUp-Projekt von dir habe,

    mfg autoBert

  • GUICtrlSetImage Problem(e)

    • autoBert
    • 10. Februar 2012 um 14:14

    Ich denke er möche so etwas erreichen:

    Spoiler anzeigen
    [autoit]

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

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

    AutoIt Version: 3.3.8.1
    Author: Timinio

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

    Script Function:
    Test-Script um Bilder in einem Gui zu verändern.

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

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

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

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>

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

    $lap = GUICreate("Test", 200, 200, Default, Default, $WS_SYSMENU)
    $x = 0
    $y = 0
    Global $feldid[150]
    For $id = 1 To 101
    If $x > 180 Then
    $y = $y + 20
    $x = 0
    EndIf
    ;$id = (($y / 20) * 5) + ($x / 20) + 1 ;diese Rechnung ist unnötig da sie als Ergebnis die Lauf-Varaible der Schleife errechnt, diese ist aber bekannt
    $feldid[$id] = GUICtrlCreatePic("c:\Programme\AutoIt3\Examples\GUI\msoobe.jpg", $x, $y, 20, 20)
    $x = $x + 20
    Next
    GUISetState()
    _ArrayDisplay($feldid)

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $feldid[1] To $feldid[101]
    $id =$msg-$feldid[1] + 1
    Stone_edit($id)
    ;MsgBox(0, "Feld", $id & " = ContrlID: " & $feldid[$id])
    EndSwitch
    WEnd

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

    Func Stone_edit($id)
    $msg = GUICtrlSetImage($feldid[$id],"c:\Programme\AutoIt3\Examples\GUI\mslogo.jpg")
    ;MsgBox(0, "", $msg)
    EndFunc ;==>Stone_edit
    [autoit]

    [/autoit]

    [/autoit]

  • Variablen werden nicht ausgegeben

    • autoBert
    • 10. Februar 2012 um 10:50
    Zitat von SubSeven

    Danke, die eckige Klammer hat gefehlt

    Dann ist dein Prblem ja gelöst, du solltest es allerdings auch auf gelöst setzen: Eröffnungsbeitrag bearbeiten, Präfix (Nähe Überschrift) umstellen und absenden,

    mfg autobert

  • Doppelten Programmstart in Terminalsitzung verhindern

    • autoBert
    • 10. Februar 2012 um 10:45
    Zitat von F1109

    Spitze. Das war's. Vielen Dank.

    Schön, dann ist dein Prblem ja gelöst. Schön wäre es auch wenn du es auf gelöst setzt. Einfach Eröffnungsbeitrag bearbeiten, Präfix (Nähe Überschrift) umstellen und absenden.

    Zitat von F1109

    Und in anderen Foren wird darüber mehrere Wochen lange geschrieben ;)

    Man muss halt die Experten fragen,

    mfg autoBert

  • _FTP_FilePut

    • autoBert
    • 10. Februar 2012 um 00:09
    Zitat von Fr34k

    autoBert, nein auch dieser Stimmt ganz sicher.

    na dann versuche einfach einmal mit

    [autoit]

    Shellexecute("C:\..\Documents\movies.html")

    [/autoit]

    die Datei zu öffnen, dann siehst du ja ob der Dateipfad richtig ist,

    mfg autoBert

  • Array Problem mit Ubound ?

    • autoBert
    • 9. Februar 2012 um 22:58

    Hallo Julien,

    $Pfad ist kein Array, du musst schn $Split nehmen:

    [autoit]

    #include<Array.au3>
    $Pfad = "C:\Users\User\Desktop\MyPatchSkripteRichtig\Datalister.au3"
    $Split = StringSplit ($Pfad,"\")
    MsgBox(64,"Dateiname",$Split[UBound($Split)-1])

    [/autoit]

    mfg autoBert

  • Ein "kleines" FTP Problem

    • autoBert
    • 9. Februar 2012 um 22:44

    Hallo Stevenx,

    warfum nimmst du nicht die FTPEx.au3 auf der auch die Beispiele in der Hilfe zu FTPaufbauen? 2. welche AutoIt-Version verwendest du?
    Normalerweise sollte es genügen wenn die entsprechende Zeile auskommentiert wird. Ich würde dir aber raten auf die FTPEx.au3 umzustellen,

    mfg autoBert

  • _FTP_FilePut

    • autoBert
    • 9. Februar 2012 um 15:10

    Hallo Fr34k,

    wen du dir sicher bist dass der Fhelr in der Zeile mit _FilePut ausgelöst wird, dann wird es wohl an einer Pfadangabe liegn. Und wenn du das Skript nicht vor dem Einstellen annymisiert hast ist es der lokale Pfad: "C:\..\Documents\movies.html",

    mfg autoBert

  • _Arraydisplay

    • autoBert
    • 9. Februar 2012 um 10:57

    Hallo Ilse,

    _ArrayDisplay stellt das Array immer so dar wie es ist. Du hats ein 1D Array mit 3 Zeilen und einer Spalte möchtest aber die Ausgabe in einer Zeile und 3 Spalten, daher must du aus dem 1D-Array zuerst ein 2D Array machen. Das man dafür sinnvller weise eine For...Next-Schleife nimm ist richtig, bin allerdings entäuscht das du den Aufbau nicht allein hin bekmmst.

    Nur spicken wenn kein Ehrgeiz
    [autoit]


    ;$a1D = dein jetziges Array
    ;$a2D = dein Wunsch- Array
    _ArrayDisplay($a1d,"So sieht dein Arrayaufbau aus")
    $iRows = int((UBound($a1d)-1)/3) +1
    ConsoleWrite($iRows & @CRLF)
    dim $a2D[$iRows][3]

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

    $j=0
    for $i = 0 To UBound($a1d) -1 Step 3
    ConsoleWrite($i & @TAB)
    $a2D[$j][0] = $a1d[$i]
    $a2D[$j][1] = $a1d[$i+1]
    $a2D[$j][2] = $a1d[$i+2]
    $j += 1
    Next
    _ArrayDisplay($a2D,"So soll es angezeigt werden")

    [/autoit]

    mfg autoBert

  • Probleme mit Schleife und Zwischenablage

    • autoBert
    • 8. Februar 2012 um 22:22

    Hallo clint13,

    ich denke das ein Bedienungsfehler vorliegt. Um diesen auszuschliessen habe ich das Skript etwas abgeändert:

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    #include <Array.au3>
    #include <Excel.au3>

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

    Global $wert1, $wert2

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

    HotKeySet('{ESC}', 'Terminate') ; Esc
    HotKeySet('{F1}', 'Hilfe') ; F1
    HotKeySet('{F2}', 'OpenPDF') ; F2
    HotKeySet('{F3}', 'copy_1') ; F3
    HotKeySet('{F4}', 'copy_2') ; F4
    HotKeySet('{F5}', 'write_Excel') ; F5

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

    Local $sPfad = 'C:\PDF\', $sInfo = 'Ctrl oder Shift drücken um mehrere Dateien auszuwählen.'
    Local $string = FileOpenDialog($sInfo, $sPfad, "Datei (*.pdf)", 1 + 4)
    Global $aArray = StringSplit($string, '|', 2)
    Global $aBound = UBound($aArray) - 1, $trim_r
    _ArrayDisplay($aArray) ; zum testen auskommentieren
    Local $Tip = ToolTip('Hotkey F2', 700, 1, "Programm wird ausgeführt")

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

    While 1
    Sleep(100)
    WEnd

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

    Func Terminate()
    Exit 0
    EndFunc ;==>Terminate

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

    Func Hilfe()
    MsgBox(64, "Belegung der Funktionstasten", "ESC - Abbrechen" & @CR & "F1 - Hilfe" & @CR & "F2 - PDF laden" & @CR & "F3 - Bereich 1 kopieren" & @CR & "F4 - Bereich 2 kopieren" & @CR & "F5 - Exceldatei erstellen")
    EndFunc ;==>Hilfe

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

    Func OpenPDF()
    HotKeySet('{F2}') ; F2
    ConsoleWrite($aBound & @TAB & 'Opening PDF >> ' & $aArray[$aBound] & '<<' & @CRLF)
    ShellExecute($aArray[$aBound])
    $trim_r = StringTrimRight($aArray[$aBound], 4) ; entfernt .pdf
    MsgBox(48, "Dateinamen bearbeiten", "geändert von '" & $aArray[$aBound] & "' nach '" & $trim_r & "'") ; zur Kontrolle aktivieren
    Sleep(50)
    WinWaitActive("Adobe Acrobat Pro")
    If @error Then
    ConsoleWrite('ERROR Code >> ' & @error & '<<' & @CRLF)
    Exit
    EndIf
    $aBound -= 1
    If $aBound = 0 Then Exit
    ConsoleWrite('PDF Opened ' & $aBound & @CRLF)
    HotKeySet('{F2}', 'OpenPDF') ; F2
    EndFunc ;==>OpenPDF

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

    Func copy_1()
    Send("^c")
    $wert1 = ClipGet() ; ruft die zwischenablage ab (den Makierten test der mit Strg C in die Zwischenablage kopiert wurde)
    EndFunc ;==>copy_1

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

    Func copy_2()
    Send("^c")
    $wert2 = ClipGet() ; ruft die zwischenablage ab (den Makierten test der mit Strg C in die Zwischenablage kopiert wurde)
    EndFunc ;==>copy_2

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

    Func write_Excel()
    Local $sFilePath1 = "C:\PDF\Vorlage\Vorlage_PDF.xls" ; Diese Excel-Vorlage sollte existieren
    Global $oExcel = _ExcelBookOpen($sFilePath1)
    If @error = 1 Then
    MsgBox(0, "Error!", "Excel kann nicht gestartet werden")
    Exit
    ElseIf @error = 2 Then
    MsgBox(0, "Error!", "Vorlagendatei nicht gefunden!")
    Exit
    EndIf
    Sleep(50)
    MsgBox(0, "Wert1", "Wert1: " & $wert1) ; zur Kontrolle aktivieren
    MsgBox(0, "Wert2", "Wert2: " & $wert2) ; zur Kontrolle aktivieren
    _ExcelWriteCell($oExcel, $wert1, 4, 1)
    _ExcelWriteCell($oExcel, $wert2, 4, 3)

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

    $oExcel.ActiveWorkBook.SaveAs("C:\PDF\bearbeitet\" & $trim_r & ".xls")
    If Not @error Then MsgBox(0, "Erfolgreich!", "Die Datei wurde als " & $trim_r & ".xls gespeichert.", 3)
    _ExcelBookClose($oExcel, 1, 0)
    EndFunc ;==>write_Excel

    [/autoit]

    auch sollten Globale Variablen bereits am Anfang und nicht erst innerhalb einer Funktion deklareirt werden, daher $trim_r schon oben deklariert,

    mfg autoBert

  • Kein Kontextmenü in Group-Control möglich?

    • autoBert
    • 8. Februar 2012 um 21:42

    Hallo Trubadour,
    war im 1. Moment auch verwundert dass dies mit einer Grou nicht funktioniert, aber hier ein Workaround:

    Spoiler anzeigen
    [autoit]

    ; *** Start added by AutoIt3Wrapper ***
    #include <GUIConstantsEx.au3>
    ; *** End added by AutoIt3Wrapper ***
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseUpx=n
    #AutoIt3Wrapper_Add_Constants=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    $GUI_Breite = 480

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

    GUICreate("Group with Context Menü", $GUI_Breite, 300)
    $Group1 = GUICtrlCreateGroup("Ergebnis", 10, 115, $GUI_Breite - 20, 90)
    GUICtrlCreateGroup("", -99, -99, 1, 1) ; Gruppe schliessen
    $label = GUICtrlCreateLabel("", 10, 115, $GUI_Breite - 20, 90)
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
    $Group1_context = GUICtrlCreateContextMenu($label)
    $Group1_item1 = GUICtrlCreateMenuItem("Über Ergebnis 1", $Group1_context)
    GUICtrlCreateMenuItem("", $Group1_context) ; Trennstrich
    $Group1_item2 = GUICtrlCreateMenuItem("Über Ergebnis 2", $Group1_context)

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

    GUISetState()

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

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

    [/autoit]

    ich hoffe du kannst die 2 zusätzlichen Zeilen im Skript verschmerzen,

    mfg autoBert

  • Dateiversion eines Verzeichnisses & Unterverzeichnissen auslesen

    • autoBert
    • 8. Februar 2012 um 12:26
    Zitat von Surfy

    Danke Dir autoBert, das ist perfekt so! ;)

    Schön, dann hast du ja jetzt eine Lösung, schön wäre es auch wenn du das Thema auf gelöst setzen würdest. Einfach 1. Beitrag bearbeiten, Präfix (nähe Überschrift) auf gelöst setzten und absenden.

    Zitat von Surfy

    Nun sind noch mehr Kommandos drin, die ich noch nie gelesen habe 8|

    Da kann die Hilfe helfen, dass du diese jetzt nicht nur kennst sndern auch verstehst was sie tun,

    mfg autoBert

  • GUICtrlCreateMenuItem <- Menüeintrag ausblenden

    • autoBert
    • 8. Februar 2012 um 11:53

    Hallo WhiteLion,

    MenuItems reagieren nicht auf Hide (MS-Festlegung) aber du kannst es so machen:

    abgewandeltes Hilfebeispiel zu GUICtrlCreateMenu
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>

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

    Opt('MustDeclareVars', 1)

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

    Example()

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

    Func Example()
    Local $defaultstatus = "Ready", $status, $filemenu, $fileitem
    Local $helpmenu, $saveitem = -9999, $infoitem, $exititem, $recentfilesmenu
    Local $separator1, $okbutton, $cancelbutton
    Local $statuslabel, $msg, $file

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

    GUICreate("My GUI menu", 300, 200)

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

    $filemenu = GUICtrlCreateMenu("&File")
    $fileitem = GUICtrlCreateMenuItem("Open", $filemenu)
    GUICtrlSetState(-1, $GUI_DEFBUTTON)
    $helpmenu = GUICtrlCreateMenu("?")
    GUICtrlSetState(-1, $GUI_DISABLE)
    $infoitem = GUICtrlCreateMenuItem("Info", $helpmenu)
    $exititem = GUICtrlCreateMenuItem("Exit", $filemenu)
    $recentfilesmenu = GUICtrlCreateMenu("Recent Files", $filemenu, 1)

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

    $separator1 = GUICtrlCreateMenuItem("", $filemenu, 2) ; create a separator line

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

    $okbutton = GUICtrlCreateButton("&show save", 50, 130, 70, 20)
    GUICtrlSetState(-1, $GUI_FOCUS)
    $cancelbutton = GUICtrlCreateButton("&hide save", 180, 130, 70, 20)

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

    ;$statuslabel = GUICtrlCreateLabel($defaultstatus, 0, 165, 300, 16, BitOR($SS_SIMPLE, $SS_SUNKEN))

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

    GUISetState()
    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $fileitem
    $file = FileOpenDialog("Choose file...", @TempDir, "All (*.*)")
    If @error <> 1 Then GUICtrlCreateMenuItem($file, $recentfilesmenu)
    Case $GUI_EVENT_CLOSE, $exititem
    ExitLoop
    Case $infoitem
    MsgBox(0, "Info", "Only a test...")
    Case $okbutton
    $saveitem = GUICtrlCreateMenuItem("Save", $filemenu, 3)
    Case $cancelbutton
    GUICtrlDelete($saveitem)
    $saveitem = -9999
    Case $saveitem
    MsgBox(0, "Save", "saveitemtest", 5)
    EndSwitch
    WEnd
    GUIDelete()
    EndFunc ;==>Example

    [/autoit]

    wenn das entsprechende Item in der MsgLop-Schleife abgefragt wird muss ihm der Variable welche die ControlID aufnimmt ein Wert zugewiesen werden der ganz sicher nicht von anderen Contrls oder Guievents schon benutzt wird,

    mfg autoBert

  • Schnitzel hat Geburtstag !

    • autoBert
    • 7. Februar 2012 um 17:21

    Auch von mir nch nachträglich alles Gute und die besten Wünsche, besonders Gesundheit, Glück und Erfolg in allen Lebenslagen.

    autoBert

  • Eingabe Feld in Programm finden?

    • autoBert
    • 7. Februar 2012 um 16:58

    Hallo Steakschen,

    dafür kannst du das AutoIt-Window-Info Tool benutzen. Am besten arbeitest du in der Hilfe dazu die Kapitel

    • AutoIt Fenster-Informations-Tool (AU3Info)
    • Fenster-Titel und -text (Grundlagen)
    • Fenster-Titel und -Text (erweitert)
    • Controls

    durch,

    mfg autoBert

  • Dateiversion eines Verzeichnisses & Unterverzeichnissen auslesen

    • autoBert
    • 7. Februar 2012 um 12:21

    Hallo Surfy,

    Zitat von Surfy

    Einziges goodie wäre noch, wenn man mit sortierbare Columnen, nach Datei Versionen sortieren könnte, aber das wäre dann auch wirklich nur noch ein goodie ;) Was aber anscheinend gar nicht so einfach ist? Die Suche war zu "Arraydisplay sortierbar" - nicht gerade hilfreich...

    Da müsstest du dir ein eigenes ArrayDisplay schreiben. Ich denke du suchst so etwas:

    Spoiler anzeigen
    [autoit]

    ; *** Start added by AutoIt3Wrapper ***
    #include <ListViewConstants.au3>
    #include <WindowsConstants.au3>
    ; *** End added by AutoIt3Wrapper ***
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseUpx=n
    #AutoIt3Wrapper_Add_Constants=n
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    ; *** Start added by AutoIt3Wrapper ***
    #include <GUIConstantsEx.au3>
    ; *** End added by AutoIt3Wrapper ***
    #include <Array.au3>
    #include <File.au3>
    #include <GuiListView.au3>

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

    $sPath = @ScriptDir

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

    Do
    $sPath = FileSelectFolder("Bitte Ordner für den die FileVersionen ermittelt werden sollen auswählen", "::{20D04FE0 - 3AEA - 1069 - A2D8 - 08002B30309D}", 2, $sPath)
    Until Not @error

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

    $aTmp = _RecursiveFileListToArray($sPath, '(?i).*exe', 1, 1)
    ;_ArrayDisplay($aTmp)

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

    $Gui = GUICreate("", 1024, 600)
    $hListview = GUICtrlCreateListView("Datei-Name|Version|erstellt am|letzte Änderung", 5, 5, 1014, 590, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES, $LVS_EX_DOUBLEBUFFER))
    For $i = 0 To UBound($aTmp) - 1
    $sFileVer = FileGetVersion($aTmp[$i], "FileVersion")
    ;If $sFileVer <> "" Then
    $aDate = FileGetTime($aTmp[$i], 1, 0)
    If IsArray($aDate) Then
    $tCreated = $aDate[0] & "/" & $aDate[1] & "/" & $aDate[2]
    Else
    $tCreated = ""
    EndIf
    $aDate = FileGetTime($aTmp[$i], 0, 0)
    If IsArray($aDate) Then
    $tLastChanged = $aDate[0] & "/" & $aDate[1] & "/" & $aDate[2]
    Else
    $tLastChanged = ""
    EndIf
    GUICtrlCreateListViewItem($aTmp[$i] & "|" & $sFileVer & "|" & $tCreated & "|" & $tLastChanged, $hListview)
    ;EndIf
    Next
    _GUICtrlListView_SetColumnWidth($hListview, 0, $LVSCW_AUTOSIZE)
    _GUICtrlListView_SetColumnWidth($hListview, 1, 80)
    _GUICtrlListView_SetColumnWidth($hListview, 2, 100)
    _GUICtrlListView_SetColumnWidth($hListview, 3, 100)
    _GUICtrlListView_RegisterSortCallBack($hListview)
    GUISetState(@SW_SHOW)

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

    ;GUICtrlSetColor(-1, 0x22C21F)
    ;GUICtrlSetColor(-1, 0xAA0000)

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    _GUICtrlListView_UnRegisterSortCallBack($hListview)
    Exit
    Case $hListview
    ; Anstoßen der Callback-Sortierfunktion
    _GUICtrlListView_SortItems($hListview, GUICtrlGetState($hListview))
    EndSwitch
    WEnd

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

    ;===============================================================================
    ; Description:: gibt Verzeichnisse und/oder Dateien (rekursiv) zurück, die
    ; einem RegExp-Pattern entsprechen
    ; Parameter(s): $sPath = Startverzeichnis
    ; $sPattern = ein beliebiges RexExp-Pattern für die Auswahl
    ; $iFlag = Auswahl
    ; 0 = Dateien & Verzeichnisse
    ; 1 = nur Dateien
    ; 2 = nur Verzeichnisse
    ; $iFormat = Rückgabeformat
    ; 0 = String
    ; 1 = Array mit [0] = Anzahl
    ; 2 = Nullbasiertes Array
    ; $sDelim = Trennzeichen für die String-Rückgabe
    ; Requirement(s): AutoIt 3.3.0.0
    ; Return Value(s): Array/String mit den gefundenen Dateien/Verzeichnissen
    ; Author(s): Oscar (http://www.autoit.de)
    ; Anregungen von: bernd670 (http://www.autoit.de)
    ;===============================================================================
    Func _RecursiveFileListToArray($sPath, $sPattern, $iFlag = 0, $iFormat = 1, $sDelim = @CRLF)
    Local $hSearch, $sFile, $sReturn = ''
    If StringRight($sPath, 1) <> '\' Then $sPath &= '\'
    $hSearch = FileFindFirstFile($sPath & '*.*')
    If @error Or $hSearch = -1 Then Return SetError(0, 0, $sReturn)
    While True
    $sFile = FileFindNextFile($hSearch)
    If @error Then ExitLoop
    If StringInStr(FileGetAttrib($sPath & $sFile), 'D') Then
    If StringRegExp($sPath & $sFile, $sPattern) And ($iFlag = 0 Or $iFlag = 2) Then $sReturn &= $sPath & $sFile & '\' & $sDelim
    $sReturn &= _RecursiveFileListToArray($sPath & $sFile & '\', $sPattern, $iFlag, 0)
    ContinueLoop
    EndIf
    If StringRegExp($sFile, $sPattern) And ($iFlag = 0 Or $iFlag = 1) Then $sReturn &= $sPath & $sFile & $sDelim
    WEnd
    FileClose($hSearch)
    If $iFormat Then Return StringSplit(StringTrimRight($sReturn, StringLen($sDelim)), $sDelim, $iFormat)
    Return $sReturn
    EndFunc ;==>_RecursiveFileListToArray

    [/autoit]

    falls nur Dateien mit einer Fileversion angezeigt werden sollen einfach die beiden auskommentierten Zeilen wieder zulassen,

    mfg autoBert

  • Dateiversion eines Verzeichnisses & Unterverzeichnissen auslesen

    • autoBert
    • 7. Februar 2012 um 00:40
    Zitat von Surfy

    Hat das schonmal jemand gemacht?


    Bisher nicht, aber hier ist die Basis für dein Skript:

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <File.au3>
    #include <Crypt.au3>

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

    $sPath = @ScriptDir

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

    Global $hFile = FileOpen(@ScriptDir & "\FileVersions.txt", 2) ; 1 = anhängen 2 = überschreiben

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

    Do
    $sPath = FileSelectFolder("Bitte Ordner für den die FileVersionen ermittelt werden sollen auswählen", "::{20D04FE0 - 3AEA - 1069 - A2D8 - 08002B30309D}", 2, $sPath)
    Until Not @error

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

    $aTmp = _RecursiveFileListToArray($sPath, '', 1, 1)
    Dim $aFiles[UBound($aTmp)][2]
    for $i = 0 to UBound($aTmp) -1
    $aFiles[$i][0] = $aTmp[$i]
    $aFiles[$i][1] = FileGetVersion ($aTmp[$i],"FileVersion")
    Next

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

    _ArrayDisplay($aFiles)
    ;for $i = 0 to UBound($aFiles)

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

    ;===============================================================================
    ; Description:: gibt Verzeichnisse und/oder Dateien (rekursiv) zurück, die
    ; einem RegExp-Pattern entsprechen
    ; Parameter(s): $sPath = Startverzeichnis
    ; $sPattern = ein beliebiges RexExp-Pattern für die Auswahl
    ; $iFlag = Auswahl
    ; 0 = Dateien & Verzeichnisse
    ; 1 = nur Dateien
    ; 2 = nur Verzeichnisse
    ; $iFormat = Rückgabeformat
    ; 0 = String
    ; 1 = Array mit [0] = Anzahl
    ; 2 = Nullbasiertes Array
    ; $sDelim = Trennzeichen für die String-Rückgabe
    ; Requirement(s): AutoIt 3.3.0.0
    ; Return Value(s): Array/String mit den gefundenen Dateien/Verzeichnissen
    ; Author(s): Oscar (http://www.autoit.de)
    ; Anregungen von: bernd670 (http://www.autoit.de)
    ;===============================================================================
    Func _RecursiveFileListToArray($sPath, $sPattern, $iFlag = 0, $iFormat = 1, $sDelim = @CRLF)
    Local $hSearch, $sFile, $sReturn = ''
    If StringRight($sPath, 1) <> '\' Then $sPath &= '\'
    $hSearch = FileFindFirstFile($sPath & '*.*')
    If @error Or $hSearch = -1 Then Return SetError(0, 0, $sReturn)
    While True
    $sFile = FileFindNextFile($hSearch)
    If @error Then ExitLoop
    If StringInStr(FileGetAttrib($sPath & $sFile), 'D') Then
    If StringRegExp($sPath & $sFile, $sPattern) And ($iFlag = 0 Or $iFlag = 2) Then $sReturn &= $sPath & $sFile & '\' & $sDelim
    $sReturn &= _RecursiveFileListToArray($sPath & $sFile & '\', $sPattern, $iFlag, 0)
    ContinueLoop
    EndIf
    If StringRegExp($sFile, $sPattern) And ($iFlag = 0 Or $iFlag = 1) Then $sReturn &= $sPath & $sFile & $sDelim
    WEnd
    FileClose($hSearch)
    If $iFormat Then Return StringSplit(StringTrimRight($sReturn, StringLen($sDelim)), $sDelim, $iFormat)
    Return $sReturn
    EndFunc ;==>_RecursiveFileListToArray

    [/autoit]

    mfg autoBert

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™