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

  • PDF´s in Reihenfolge drucken.

    • BugFix
    • 26. Oktober 2008 um 14:48

    Kommandozeilendruck mit PDF-Creator auf anderen Printer hab ich noch nicht probiert, halte ich aber für möglich.
    Vielleicht hilft dir das ja weiter: PDF Toolkit.

    Edit:
    Zur Erklärung warum ich das Toolkit vorschlage: Damit kannst du recht zügig alle deine Dokumente in der gewünschten Reihenfolge zu einem Dokument zusammenfassen, welches du dann druckst - und schon stimmt die Reihenfolge.

  • Assoziatives Array - pur AutoIt , Aufatmen für "Arrayverweigerer" ;-)

    • BugFix
    • 26. Oktober 2008 um 13:53

    Hier mal noch ( als kleiner Service :D ), die UserCallTipps für die Funktionen.
    Im Ordner '..\SciTE\api\' die Datei 'au3.user.calltips.api' öffnen, oder wenn nicht vorhanden - erstellen, und die folgenden Zeilen anfügen:

    Calltips
    Code
    _AssocArray_Create($CaseSensitive=-1)erstellt assoziatives Array, CaseSensitiv: aus(Standard)/ein (-1/1) #include <AssocArray.au3>
    _AssocArray_Pref($Handle)Gibt die Eigenschaft (CaseSensitiv) zurück. #include <AssocArray.au3>
    _AssocArray_Add($Handle, $Wert)Fügt einen Wert zum Array hinzu. #include <AssocArray.au3>
    _AssocArray_AddColl($Handle, $Kollektion, $Trennzeichen=Default, $Ignore_0=True)Fügt 1D-Array od. mit Trennzeichen von Opt("GUIDataSeparatorChar") gesplitteten String zum Array. #include <AssocArray.au3>
    _AssocArray_Insert($Handle, $Index, $Wert)Fügt einen Wert am gegebenen Index ein. #include <AssocArray.au3>
    _AssocArray_Count($Handle)Gibt die Anzahl der Elemente im Array zurück. #include <AssocArray.au3>
    _AssocArray_DelByName($Handle, $Wert, $All=False)Löscht ersten Eintrag=Wert, $All=True löscht alle Einträge=Wert. #include <AssocArray.au3>
    _AssocArray_DelByIndex($Handle, $Index)Löscht den Eintrag am Index. #include <AssocArray.au3>
    _AssocArray_Clear($Handle)Löscht alle Elemente aus dem Array. #include <AssocArray.au3>
    _AssocArray_Sort($Handle, $Richtung=0)Sortiert alle Elemente des Array auf-/absteigend (0/1). #include <AssocArray.au3>
    _AssocArray_ToString($Handle, $Trennzeichen=Default)Rückgabe String mit allen Elementen, Trennzeichen von Opt("GUIDataSeparatorChar"). #include <AssocArray.au3>
    _AssocArray_GetItem($Handle, $Index)Gibt den Wert an der Indexposition zurück. #include <AssocArray.au3>
    _AssocArray_GetRange($Handle, $Index, $Anzahl)Gibt ab Index Anzahl Elemente als Assoziatives Array zurück. #include <AssocArray.au3>
    _AssocArray_SetRange($Handle, $EinfügeArray, $Index, $Ignore_0=True)Kopiert Elemente eines Einfüge-Array über einen Bereich im Array, bei Bedarf wird Basisarray erweitert. #include <AssocArray.au3>
    _AssocArray_InsertRange($Handle, $EinfügeArray, $Index, $Ignore_0=True)Fügt an Indexposition ein Einfüge-Array ein. #include <AssocArray.au3>
    _AssocArray_Search($Handle, $Wert)Gibt TRUE zurück, wenn Wert im Array enthalten, sonst FALSE. #include <AssocArray.au3>
    _AssocArray_GetIndex($Handle, $Wert)Rückgabe Index des ersten Eintrags=Wert. #include <AssocArray.au3>
    _AssocArray_LastIndexOf($Handle, $Wert, $Von=1, $Bis=0)Rückgabe Index des letzten Eintrags=Wert in Array od. Bereich. #include <AssocArray.au3>
    _AssocArray_RemoveRange($Handle, $Index, $Anzahl=0)Löscht Anzahl Elemente ab Index, mit Anzahl=0 wird Rest ab Index gelöscht. #include <AssocArray.au3>
    _AssocArray_Reverse($Handle, $Von=1, $Bis=0)Kehrt die Reihenfolge der Elemente im Array od. Bereich um. #include <AssocArray.au3>
    Alles anzeigen
  • Erweiterte Dateiinfo (eine Datei od. alle eines Ordners)

    • BugFix
    • 26. Oktober 2008 um 10:32

    Hi,
    ich kann mich erinnern, dass mal jemand nach einer Möglichkeit zur Abfrage der erweiterten Dateiinformationen gesucht hatte.
    Hier nun die entsprechende Funktion dafür.
    Einfach mit dem Pfad der Datei / des Ordners aufrufen, die Unterscheidung erfolgt in der Funktion automatisch.
    Zurückgegeben wird ein 34-spaltiges Array mit allen Informationsfeldern. Die erste Zeile enthält den Namen der Eigenschaft (sofern von MS hinterlegt).

    Spoiler anzeigen
    [autoit]

    #include<array.au3>

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

    $Path = @ScriptFullPath ; @ScriptDir
    $ret = _FileInfoExtended($Path)
    _ArrayDisplay($ret)

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

    Func _FileInfoExtended($FolderOrFile)
    If Not FileExists($FolderOrFile) Then Return SetError(1)
    Local $objShell = ObjCreate("Shell.Application")
    Local $arrHeaders[34], $Type = 'F'
    If StringInStr(FileGetAttrib($FolderOrFile), 'D') Then
    Local $objFolder = $objShell.Namespace($FolderOrFile)
    $Type = 'D'
    Else
    Local $objFSO = ObjCreate("Scripting.FileSystemObject")
    Local $objFile = $objFSO.GetFile($FolderOrFile)
    Local $FileName = $objFSO.GetFileName($objFile)
    Local $objFolder = $objShell.Namespace($objFSO.GetParentFolderName($objFile))
    EndIf
    Local $arRet[1][34]
    For $i = 0 To 33
    $arrHeaders[$i] = $objFolder.GetDetailsOf($objFolder.Items, $i)
    $arRet[0][$i] = $arrHeaders[$i]
    Next
    For $strFileName In $objFolder.Items
    If $Type = 'F' And $objFolder.GetDetailsOf($strFileName, 0) <> $FileName Then ContinueLoop
    ReDim $arRet[UBound($arRet)+1][34]
    For $i = 0 to 33
    $arRet[UBound($arRet)-1][$i] = $objFolder.GetDetailsOf($strFileName, $i)
    Next
    Next
    Return $arRet
    EndFunc

    [/autoit]
  • PDF´s in Reihenfolge drucken.

    • BugFix
    • 26. Oktober 2008 um 09:11

    Mal als alternativer Gedanke:
    Versuche doch mal, ob es mit PDF-Creator wie gewollt funktioniert. Ich kann es bei mir nicht in der Form testen, da mir die Netzwerkumgebung fehlt.
    Läßt sich prima über Commandline-Parameter steuern, als Netzwerkdrucker installierbar.

  • Do-Until-Schleife: Durchlauf überspringen?

    • BugFix
    • 25. Oktober 2008 um 21:51

    In der Schleife einfügen:

    [autoit]

    If $i = 2 Then ContinueLoop

    [/autoit]
  • Probleme mit skript, dass txt zerlegt

    • BugFix
    • 25. Oktober 2008 um 21:20

    Hier schreibst du die Zeile:

    [autoit]

    if ($Ausgeben == 1) then
    FileWriteLine($Output, $Zeile_original)
    endif

    [/autoit]

    Einfach eine Leerzeile dahinter setzen:

    [autoit]

    if ($Ausgeben == 1) then
    FileWriteLine($Output, $Zeile_original & @CRLF)
    endif

    [/autoit]
  • Assoziatives Array - pur AutoIt , Aufatmen für "Arrayverweigerer" ;-)

    • BugFix
    • 25. Oktober 2008 um 20:55

    Hi,
    vielleicht bietet diese UDF-Sammlung all jenen, die mit Arrays auf Kriegsfuß stehen, einen kleinen Lichtblick. :D
    Ich habe hier die Arrayfunktionen so gestaltet, dass der Zugriff ananlog zur objektbasierten ArrayList erfolgt. Da für das Objekt das nicht zwingend installierte NET-Framework erforderlich ist, ist diese reine AutoIt-Lösung sicher eine gute Ergänzung.
    Für einige Funktionen ist die Angabe der CaseSensitivity erforderlich. Da dieses Verhalten für mehrere Funktionen gilt, wird diese Eigenschaft für das gesamte Array deklariert.

    EDIT
    Eh ich's vergesse, der Vorteil für 'Array-Problematiker' ;) : Keinerlei Größenverwaltung notwendig, Index muß nicht verwendet werden.

    Funktionsübersicht


    _AssocArray_Create(CaseSensitive)
    Erstellt ein Assoziatives Array mit der definierten Eigenschaft.
    Mit -1 = Nicht Sensitive (Standard), mit 1 = Case Sensitive.
    Diese ist gültig für alle auf dieses Array angewendete Funktionen.
    Das Setzen der Eigenschaft in den HighWord-Bereich von Array[0] dient der Unterscheidung zu
    'normalen' Array. -1 statt 0 deshalb, da _WinAPI_HiWord() 0 zurückgibt, wenn kein DWORD-Wert
    abgefragt wird.
    Gibt das Handle des Array zurück.

    _AssocArray_Pref(Handle)
    Gibt die Eigenschaft des Assoziativen Array zurück.

    _AssocArray_Add(Handle, Wert)
    Fügt einen Wert zum Array hinzu.

    _AssocArray_AddColl(Handle, Kollektion, Trennzeichen, Ignore_0)
    Fügt eine Kollektion (1D-Array od. mit Trenner gesplitteter String) zum Array hinzu.
    Standardtrennzeichen (Zeichen von Opt("GUIDataSeparatorChar"))
    Ist das EinfügeArray 0-basiert, muß das Flag Ignore_0 auf 'False' gesetzt werden.

    _AssocArray_Insert(Handle, Index, Wert)
    Fügt einen Wert am gegebenen Index ein.

    _AssocArray_Count(Handle)
    Gibt die Anzahl der Elemente im Array zurück.

    _AssocArray_DelByName(Handle, Wert, All)
    Löscht den ersten gefundenen Eintrag, der mit Wert übereinstimmt.
    Mit Flag All auf 'True' werden alle dem Wert entsprechenden Einträge gelöscht.

    _AssocArray_DelByIndex(Handle, Index)
    Löscht den Eintrag am übergebenen Index.

    _AssocArray_Clear(Handle)
    Löscht alle Elemente aus dem Array.

    _AssocArray_Sort(Handle, Richtung)
    Sortiert alle Elemente des Array (Standard: aufsteigend).

    _AssocArray_ToString(Handle, Trennzeichen)
    Gibt einen String mit allen Elementen,
    getrennt durch Trennzeichen (Zeichen von Opt("GUIDataSeparatorChar")), zurück.

    _AssocArray_GetItem(Handle, Index)
    Gibt den Inhalt an der Indexposition zurück.

    _AssocArray_GetRange(Handle, Index, Anzahl)
    Gibt ab Indexposition eine Anzahl Elemente als Assoziatives Array zurück.
    Eigenschaft des abgefragten Array wird übernommen.

    _AssocArray_SetRange(Handle, EinfügeArray, Index, Ignore_0)
    Kopiert die Elemente eines (Assoziativen)Array über einen Bereich von Elementen im Array.
    Enthält das EinfügeArray mehr Elemente als ab Index überschrieben werden können,
    wird das Basisarray vergrößert.
    Ist das EinfügeArray 0-basiert, muß das Flag Ignore_0 auf 'False' gesetzt werden.

    _AssocArray_InsertRange(Handle, EinfügeArray, Index, Ignore_0)
    Fügt an der Indexposition ein (Assoziatives)Array ein.
    Für das eingefügte Array gilt die Eigenschaft des Zielarray.
    Ist das EinfügeArray 0-basiert, muß das Flag Ignore_0 auf 'False' gesetzt werden.

    _AssocArray_Search(Handle, Wert)
    Gibt TRUE zurück, wenn Wert im Array enthalten, sonst FALSE.

    _AssocArray_GetIndex(Handle, Wert)
    Gibt den Index des ersten gefundenen Eintrags zurück, der mit Wert übereinstimmt.

    _AssocArray_LastIndexOf(Handle, Wert, Von, Bis)
    Gibt den nullbasierten Index des letzten Vorkommens eines Werts im Array bzw. in einem Abschnitt davon zurück.

    _AssocArray_RemoveRange(Handle, Index, Anzahl)
    Löscht eine Anzahl Elemente ab Indexposition.
    Wird keine Anzahl übergeben, oder überschreitet die Anzahl die Arraygrenze,
    werden ab Indexposition alle restlichen Elemente gelöscht.

    _AssocArray_Reverse(Handle, Von, Bis)
    Kehrt die Reihenfolge der Elemente im angegebenen Bereich um.

    Beispiele
    [autoit]


    #include <AssocArray.au3>

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

    ; Array erstellen, Standardeigenschaft 'Nicht Case Sensitive'
    $array = _AssocArray_Create()

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

    ConsoleWrite('Eigenschaft: ' & _AssocArray_Pref($array) & @CRLF)

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

    ; Element hinzufügen
    _AssocArray_Add($array, 'AutoIt')

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

    ; Inhalt als String ausgeben, Trennzeichen von Opt("GUIDataSeparatorChar")
    ConsoleWrite('Inhalt als String: ' & _AssocArray_ToString($array) & @CRLF)

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

    ; Kollektion als String hinzufügen
    _AssocArray_AddColl($array, 'mama|papa|oma|opa|onkel|tante|mama')
    ConsoleWrite('AddColl String: ' & _AssocArray_ToString($array) & @CRLF)

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

    ; Kollektion als Array einfügen
    Local $ar[3] = [1,2,3]
    _AssocArray_AddColl($array, $ar, Default, False)
    ConsoleWrite('AddColl Array: ' & _AssocArray_ToString($array) & @CRLF)

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

    ; Vorkommen eines Wertes prüfen
    ConsoleWrite('Wert enthalten: ' & _AssocArray_Search($array, 'opa') & @CRLF)

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

    ; Wert einfügen an Indexposition
    _AssocArray_Insert($array, 5, 'mama')
    ConsoleWrite('Insert an Index 5: ' & _AssocArray_ToString($array) & @CRLF)

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

    ; Wert von Indexposition zurückgeben
    ConsoleWrite('Wert von Index 4: ' & _AssocArray_GetItem($array, 4) & @CRLF)

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

    ; Index für einen Wert zurückgeben
    ConsoleWrite('Index des Wertes, erstes Auftreten: ' & _AssocArray_GetIndex($array, 'mama') & @CRLF)

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

    ; Index für einen Wert, letztes Auftreten
    ConsoleWrite('Index des Wertes, letztes Auftreten: ' & _AssocArray_LastIndexOf($array, 'mama') & @CRLF)

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

    ; Bereich als Array zurückgeben
    $b = _AssocArray_GetRange($array, 2, 4)
    ConsoleWrite('Das Array: ' & _AssocArray_ToString($array) & @CRLF)
    ConsoleWrite('Der selektierte Bereich: ' & _AssocArray_ToString($b) & @CRLF)

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

    ; Bereich überschreiben
    Local $c[3] = ['X','Y','Z']
    _AssocArray_SetRange($array, $c, 6, False)
    ConsoleWrite('ab Index 6 überschrieben: ' & _AssocArray_ToString($array) & @CRLF)

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

    ; Array sortieren
    ; Kopie erstellen
    $copy_ar = $array
    _AssocArray_Sort($array)
    ConsoleWrite('sortiert aufsteigend: ' & _AssocArray_ToString($array) & @CRLF)
    _AssocArray_Sort($copy_ar, 1)
    ConsoleWrite('sortiert fallend: ' & _AssocArray_ToString($copy_ar) & @CRLF)

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

    ; Wert am Index löschen
    _AssocArray_DelByIndex($array, 3)
    ConsoleWrite('an Index 3 gelöscht: ' & _AssocArray_ToString($array) & @CRLF)

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

    ; Wert nach Namen löschen, erstes Auftreten
    _AssocArray_DelByName($array, 'mama')
    ConsoleWrite('erstes Auftreten "mama" gelöscht: ' & _AssocArray_ToString($array) & @CRLF)

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

    ; Wert nach Namen löschen, jedes Auftreten
    _AssocArray_DelByName($array, 'mama', True)
    ConsoleWrite('jedes Auftreten "mama" gelöscht: ' & _AssocArray_ToString($array) & @CRLF)

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

    ; Reihenfolge im Array umkehren
    _AssocArray_Reverse($array)
    ConsoleWrite('umgedreht: ' & _AssocArray_ToString($array) & @CRLF)

    [/autoit]
  • Flimmern bei Labels unterdrücken

    • BugFix
    • 25. Oktober 2008 um 17:49

    Hi,
    verwende meinen CountDown, mit der Option heraufzählen.

  • Gui-Liste für Daten aus einem Array

    • BugFix
    • 24. Oktober 2008 um 17:25

    Hi,
    nun kann ich mir das Elend nicht länger mit ansehen :D
    Du hattest beim Einfügen der ListviewSubelemente immer in Index 0 geschrieben ;)

    Hier mal die angepaßte Version, leicht optimiert:

    Spoiler anzeigen
    [autoit]

    HotKeySet("{ESC}", "Terminate")

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

    $pfad = FileSelectFolder("Wählen Sie den Ordner.", "")
    ;$dateityp = InputBox("Auswahl der Endung / Des Dateityps", "Bitte geben Sie hier die 3stellige Dateiendung des Dateityps an. lwp / doc / odt", "", "", 500, 10)
    ; Liest den Pfad und den Dateitypen ein

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

    ;=======================================================================================================================
    #include <array.au3>
    #include <file.au3>
    Global $dateityp1 = "odt"
    Global $dateityp2 = "doc"
    Global $dateityp3 = "odt"

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

    Global $alwp = _GetFilesFolder_Rekursiv($pfad, $dateityp1, 0)
    Global $adoc = _GetFilesFolder_Rekursiv($pfad, $dateityp2, 0)
    Global $aodt = _GetFilesFolder_Rekursiv($pfad, $dateityp3, 0)

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

    Local $max = $alwp[0]
    If $adoc[0] > $max Then $max = $adoc[0]
    If $aodt[0] > $max Then $max = $aodt[0]

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

    Global $arOut[$max][3]
    For $i = 1 To UBound($alwp) -1
    $arOut[$i-1][0] = $alwp[$i]
    Next
    For $i = 1 To UBound($adoc) -1
    $arOut[$i-1][1] = $adoc[$i]
    Next
    For $i = 1 To UBound($aodt) -1
    $arOut[$i-1][2] = $aodt[$i]
    Next

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

    ;=======================================================================================================================
    #include <GuiConstantsEx.au3>
    #include <GuiListView.au3>
    #include <GuiImageList.au3>

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

    Opt('MustDeclareVars', 1)

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

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

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

    Global $GUI, $hImage, $hListView, $lwp, $doc, $odt
    $GUI = GUICreate("Vergleichsliste", 900, 600)

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

    $hListView = _GUICtrlListView_Create ($GUI, "", 2, 2, 894, 568)
    _GUICtrlListView_SetExtendedListViewStyle ($hListView, BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES))
    GUISetState()

    ; GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

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

    ; Load images
    ;~ $hImage = _GUIImageList_Create ()
    ;~ _GUIImageList_Add ($hImage, _GUICtrlListView_CreateSolidBitMap ($hListView, 0xFF0000, 16, 16))
    ;~ _GUIImageList_Add ($hImage, _GUICtrlListView_CreateSolidBitMap ($hListView, 0x00FF00, 16, 16))
    ;~ _GUIImageList_Add ($hImage, _GUICtrlListView_CreateSolidBitMap ($hListView, 0x0000FF, 16, 16))
    ;~ _GUICtrlListView_SetImageList ($hListView, $hImage, 1)

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

    ; Add columns
    _GUICtrlListView_InsertColumn ($hListView, 0, "lwp", 100)
    _GUICtrlListView_InsertColumn ($hListView, 1, "doc", 100)
    _GUICtrlListView_InsertColumn ($hListView, 2, "odt", 100)

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

    ; Add items

    For $i = 0 To UBound($arOut) -1
    _GUICtrlListView_AddItem ($hListView, $arOut[$i][0], 0)
    _GUICtrlListView_AddSubItem ($hListView, $i, $arOut[$i][1], 1)
    _GUICtrlListView_AddSubItem ($hListView, $i, $arOut[$i][2], 2)
    Next

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

    ; Loop until user exits
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()

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

    ; ################################### F U N K T I O N E N ###################################

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

    Func Terminate()
    Exit
    EndFunc

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

    ;==================================================================================================
    ; Function Name: _GetFilesFolder_Rekursiv($sPath [, $sExt='*' [, $iDir=-1 [, $iRetType=0 ,[$sDelim='0']]]])
    ; Description: Rekursive Auflistung von Dateien und/oder Ordnern
    ; Parameter(s): $sPath der Basispfad für die Auflistung ('.' -aktueller Pfad, '..' -Parentpfad)
    ; $sExt Erweiterung für Dateiauswahl '*' oder -1 für alle (Standard)
    ; $iDir -1 Dateien+Ordner(Standard), 0 nur Dateien, 1 nur Ordner
    ; optional: $iRetType 0 gibt Array, 1 gibt String zurück
    ; optional: $sDelim legt Trennzeichen für Stringrückgabe fest
    ; 0 -@CRLF (Standard); 1 -@CR; 2 -@LF; oder beliebiges Zeichen
    ; Return Value(s): Array (Standard) od. String mit den gefundenen Pfaden der Dateien und/oder Ordner
    ; Array[0] enthält die Anzahl der gefundenen Dateien/Ordner
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;==================================================================================================

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

    Func _GetFilesFolder_Rekursiv($sPath, $sExt='*', $iDir=-1, $iRetType=0, $sDelim='0')
    Global $oFSO = ObjCreate('Scripting.FileSystemObject')
    Global $strFiles = ''
    Switch $sDelim
    Case '1'
    $sDelim = @CR
    Case '2'
    $sDelim = @LF
    Case Else
    $sDelim = @CRLF
    EndSwitch
    If ($iRetType < 0) Or ($iRetType > 1) Then $iRetType = 0
    If $sExt = -1 Then $sExt = '*'
    If ($iDir < -1) Or ($iDir > 1) Then $iDir = -1
    _ShowSubFolders($oFSO.GetFolder($sPath),$sExt,$iDir,$sDelim)
    If $iRetType = 0 Then
    Local $aOut
    $aOut = StringSplit(StringTrimRight($strFiles,1), $sDelim, 1)
    If $aOut[1] = '' Then
    ReDim $aOut[1]
    $aOut[0] = 0
    EndIf
    If $aOut[0] <> 0 Then $aOut[$aOut[0]] = StringTrimRight($aOut[$aOut[0]], 1)
    Return $aOut
    Else
    Return StringTrimRight($strFiles, StringLen($sDelim))
    EndIf
    EndFunc

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

    Func _ShowSubFolders($Folder, $Ext='*', $Dir=-1, $Delim=@CRLF)
    If Not IsDeclared("strFiles") Then Global $strFiles = ''
    If ($Dir = -1) Or ($Dir = 0) Then
    For $file In $Folder.Files
    If $Ext <> '*' Then
    If StringRight($file.Name, StringLen($Ext)) = $Ext Then _
    $strFiles &= $file.Path & $Delim
    Else
    $strFiles &= $file.Path & $Delim
    EndIf
    Next
    EndIf
    For $Subfolder In $Folder.SubFolders
    If ($Dir = -1) Or ($Dir = 1) Then $strFiles &= $Subfolder.Path & '\' & $Delim
    _ShowSubFolders($Subfolder, $Ext, $Dir, $Delim)
    Next
    EndFunc

    [/autoit]
  • Zwei GUIs

    • BugFix
    • 23. Oktober 2008 um 22:26

    War etwas unübersichtlich, wegen der fehlenden Einzüge.
    Also die GUIGetMsg-Abfrage war OK, aber du verwendest WinSetState statt GUISetState. Somit kann die zweite GUI niemals angezeigt werden.
    Außerdem mußt du den Status der Checkboxen auslesen (GUICtrlRead).

  • Zwei GUIs

    • BugFix
    • 23. Oktober 2008 um 22:08

    Du hast mein Bsp. nicht richtig angeschaut.
    Du mußt mit $msg[1] das Win-Handle abfragen und innerhalb dieser Abfrage jeweils mit $msg[0] die zugehörigen ID's.

  • Auslesen der Eigenschaften eines Shortcuts

    • BugFix
    • 23. Oktober 2008 um 21:27

    Standardfunktion: FileGetShortcut()

  • Zwei GUIs

    • BugFix
    • 23. Oktober 2008 um 21:17
    Zitat von r1fLeX

    er will den Button ( $Button2) aus der zweiten Gui nicht erkennen.


    Falls du mit GUIGetMsg() arbeitest, mußt du die erweiterte Form verwenden: GUIGetMsg(1)
    Dann bekommst du auslösendes ID + GUI zurück. Schau mal in die Hilfe.
    Geht wesentlich einfacher, wenn man mit OnEventMode arbeitet, da weist du Funcs zu und gut ist's :)

    Hier mal Bsp. zu beiden Varianten:

    GUIGetMsg-Mode
    [autoit]

    #include <GUIConstants.au3>

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

    $gui1 = GUICreate('GUI 1')
    $btn1 = GUICtrlCreateButton('Zeige GUI 2', 10, 20, 100, 20)

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

    $gui2 = GUICreate('GUI 2')
    $btn2 = GUICtrlCreateButton('Button 2', 10, 20, 100, 20)

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

    GUISetState(@SW_SHOW, $gui1)

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

    While 1
    $msg = GUIGetMsg(1)
    Switch $msg[1] ; Window Handle
    Case $gui1
    Switch $msg[0] ; Event
    Case $GUI_EVENT_CLOSE
    Exit
    Case $btn1
    GUISetState(@SW_HIDE, $gui1)
    GUISetState(@SW_SHOW, $gui2)
    EndSwitch
    Case $gui2
    Switch $msg[0]
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_SHOW, $gui1)
    GUISetState(@SW_HIDE, $gui2)
    Case $btn2
    MsgBox(0, '', 'Button 2 geklickt')
    EndSwitch
    EndSwitch
    WEnd

    [/autoit]
    OnEvent-Mode
    [autoit]

    #include <GUIConstants.au3>
    Opt("GUIOnEventMode", 1) ; OnEventMode = EIN

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

    $gui1 = GUICreate('GUI 1')
    GUISetOnEvent($GUI_EVENT_CLOSE, 'GUI1_close')
    $btn1 = GUICtrlCreateButton('Zeige GUI 2', 10, 20, 100, 20)
    GUICtrlSetOnEvent(-1, 'ClickButton1')

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

    $gui2 = GUICreate('GUI 2')
    GUISetOnEvent($GUI_EVENT_CLOSE, 'GUI2_close')
    $btn2 = GUICtrlCreateButton('Button 2', 10, 20, 100, 20)
    GUICtrlSetOnEvent(-1, 'ClickButton2')

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

    GUISetState(@SW_SHOW, $gui1)

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

    While True
    Sleep(100)
    WEnd

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

    Func GUI1_close()
    Exit
    EndFunc

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

    Func GUI2_close()
    GUISetState(@SW_HIDE, $gui2)
    EndFunc

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

    Func ClickButton1()
    GUISetState(@SW_SHOW, $gui2)
    EndFunc

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

    Func ClickButton2()
    MsgBox(0, '', 'Button 2 geklickt')
    EndFunc

    [/autoit]
  • Maus-Meter

    • BugFix
    • 23. Oktober 2008 um 16:58

    Man kann Tastendrücke zählen - aber da dass auch für Keylogger mißbraucht werden kann, bleibt der Code außen vor.

  • Limit möchte nicht arbeiten (GUICtrlSetLimit)

    • BugFix
    • 23. Oktober 2008 um 16:48

    Habe ich mal verwendet bei meiner IntelliSenseBox.
    Mußt du nur auf deine Bedürfnisse anpassen.

  • GuiCtrListView SubItem suchen und Zeile zurückgeben

    • BugFix
    • 23. Oktober 2008 um 16:21

    Öhm... dazu hatte ich mal 'ne Suchfunktion gebastelt, die du als erster kommentiert hattest. :D
    ListView - Suche

  • Limit möchte nicht arbeiten (GUICtrlSetLimit)

    • BugFix
    • 22. Oktober 2008 um 22:26

    Du mußt die Länge auslesen, wenn du den Button 'Weiter' drückst. Stimmt die Länge, führst du den weiteren Code aus, ansonsten Fehlermeldung an User und erneute Eingabe anfordern.

  • Limit möchte nicht arbeiten (GUICtrlSetLimit)

    • BugFix
    • 22. Oktober 2008 um 22:10

    Geht z.B. auch so:

    [autoit]

    $input = GUICtrlCreateInput(...)
    $max = ..
    $min = ..
    If StringLen(GUICtrlRead($input)) < $min Or StringLen(GUICtrlRead($input)) > $max Then _
    MsgBox(0, 'Fehler', 'Eingabe hat nicht die richtige Länge!')

    [/autoit]
  • Limit möchte nicht arbeiten (GUICtrlSetLimit)

    • BugFix
    • 22. Oktober 2008 um 21:13

    Für Label kannst du nur Max, aber nicht Min festlegen.

  • Links suchen in unsichtbarem Firefox-Fenster

    • BugFix
    • 22. Oktober 2008 um 20:45

    Wenn ich mich richtig erinnere, hat Stilgar ein Tool geschrieben, dass alle Links, Forms etc. aus einer ff-Site ausliest. Bemühe mal die SuFu.

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™