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

  • GUI anfänger frage

    • BugFix
    • 3. Juli 2008 um 11:55

    Da brauchst du wohl

    [autoit]

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

    [/autoit]
  • Explorer Problem

    • BugFix
    • 3. Juli 2008 um 11:44

    Hi,
    ich habe bei nem Kunden ein seltsames Problem.
    PC: 3,6 GHz, 1 GB RAM, 2 x 80 GB HD, Windows 2000

    Sollstatus:
    Eine Anwendersoftware zeichnet synchron zu anderen Daten Video auf (AVI-File). Wenn die erfaßten Daten angezeigt werden (30 s - Intervalle) wird der zugehörige Videoabschnitt mit "mplayer2.exe" wiedergegeben.

    Iststatus:
    Wenn das Videofenster eingeblendet wird, schmiert die Software ab mit Verweis auf Lesefehler in Adresse XYZ.

    Habe dann auf Explorerebene versucht die AVI-Datei zu öffnen - aber bereits beim einfachen Mausklick auf die Datei erhalte ich sofort eine Fehlermeldung:
    "explorer.exe hat Fehler verursacht und wird geschlossen. Starten Sie das Programm neu."

    Danach habe ich den MPlayer geöffnet und mit "Datei öffnen" die AVI-Datei gestartet - läuft tadellos.
    Auch noch getestet in cmd-LIne: "Pfad\xyz.avi" - und startet mplayer, Datei wird abgespielt.

    Da es ein Kunden-PC ist, möchte ich vor Ort nicht ewig rumdoktorn. Für mich sieht das nach einem Fehler in der "explorer.exe" aus.
    Was meint ihr?
    Und kann ich ohne weiteres die "explorer.exe" löschen (natürlich im Reparaturmodus ;) )?
    Wird sie beim Neustart von allein wiederhergestellt aus dem Systemabbild oder muß ich sie von externer Quelle dann wieder ins System kopieren?

  • Rekursive Datei/Ordner Auflistung per Objekt

    • BugFix
    • 3. Juli 2008 um 11:12

    Änderungen (s. Post 1)
    - Erweiterte Option für Stringrückgabe: Trennzeichen festlegbar
    - Warnmeldung wegen Variablendeklaration eliminiert

  • ListView Elementen Funktionen zuweisen

    • BugFix
    • 3. Juli 2008 um 10:18

    Hier mal eine modifizierte Form der "WM_NOTIFY".
    Alle notwendigen Infos bekommst du als Array aus der jeweiligen Funktion zurückgegeben und kannst diese auswerten.
    Hier im Bsp. wird dir bei Mausklick auf ein ListView-Element der Text dieses Elements (also z.B. aus Spalte2, Zeile5) wiedergegeben.
    Kannst du dann ja beliebig weiterverarbeiten.

    Aber Frage am Rande: Warum verwendest du keine Datenbank für Adressbücher? SQLite bietet sich da an und hat gute AutoIt-Unterstützung.

    Spoiler anzeigen
    [autoit]

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

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

    $gui = GUICreate('test')
    $hListView = GUICtrlCreateListView('Spalte1|Spalte2', 10, 10, 300, 200)
    _GUICtrlListView_SetColumnWidth($hListView, 0, 146)
    _GUICtrlListView_SetColumnWidth($hListView, 1, $LVSCW_AUTOSIZE_USEHEADER)
    For $i = 1 To 10
    GUICtrlCreateListViewItem('Zeile ' & $i & ' Spalte 1|Zeile ' & $i & ' Spalte 2', $hListView)
    Next
    GUISetState()
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
    Do
    $msg = GUIGetMsg()
    Until $msg = $GUI_EVENT_CLOSE

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

    Func _LeftClick($Info)
    MsgBox(0, 'Text in Spalte', _GUICtrlListView_GetItemText($Info[1], $Info[3], $Info[4]) )
    EndFunc

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

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

    [/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 $LVN_COLUMNCLICK ; A column was clicked
    Local $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
    Local $aInfo[11] = [$hWndFrom, _
    $iIDFrom, _
    $iCode, _
    DllStructGetData($tInfo, "Index"), _
    DllStructGetData($tInfo, "SubItem"), _
    DllStructGetData($tInfo, "NewState"), _
    DllStructGetData($tInfo, "OldState"), _
    DllStructGetData($tInfo, "Changed"), _
    DllStructGetData($tInfo, "ActionX"), _
    DllStructGetData($tInfo, "ActionY"), _
    DllStructGetData($tInfo, "Param")]
    ;~ _ColumnClick($aInfo)
    Case $LVN_DELETEITEM ; An item is about to be deleted
    Local $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
    Local $aInfo[11] = [$hWndFrom, _
    $iIDFrom, _
    $iCode, _
    DllStructGetData($tInfo, "Index"), _
    DllStructGetData($tInfo, "SubItem"), _
    DllStructGetData($tInfo, "NewState"), _
    DllStructGetData($tInfo, "OldState"), _
    DllStructGetData($tInfo, "Changed"), _
    DllStructGetData($tInfo, "ActionX"), _
    DllStructGetData($tInfo, "ActionY"), _
    DllStructGetData($tInfo, "Param")]
    ;~ _ItemDeleted($aInfo)
    Case $LVN_HOTTRACK ; Sent by a list-view control when the user moves the mouse over an item
    Local $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam)
    Local $aInfo[11] = [$hWndFrom, _
    $iIDFrom, _
    $iCode, _
    DllStructGetData($tInfo, "Index"), _
    DllStructGetData($tInfo, "SubItem"), _
    DllStructGetData($tInfo, "NewState"), _
    DllStructGetData($tInfo, "OldState"), _
    DllStructGetData($tInfo, "Changed"), _
    DllStructGetData($tInfo, "ActionX"), _
    DllStructGetData($tInfo, "ActionY"), _
    DllStructGetData($tInfo, "Param")]
    Return 0 ; allow the list view to perform its normal track select processing.
    ;Return 1 ; the item will not be selected.
    ;~ _HottTrackItem($aInfo)
    Case $LVN_KEYDOWN ; A key has been pressed
    Local $tInfo = DllStructCreate($tagNMLVKEYDOWN, $ilParam)
    Local $aInfo[5] = [$hWndFrom, _
    $iIDFrom, _
    $iCode, _
    DllStructGetData($tInfo, "VKey"), _
    DllStructGetData($tInfo, "KeyFlags")]
    ;~ _KeyDown($aInfo)
    Case $NM_CLICK ; Sent by a list-view control when the user clicks an item with the left mouse button
    Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
    Local $aInfo[12] = [$hWndFrom, _
    $iIDFrom, _
    $iCode, _
    DllStructGetData($tInfo, "Index"), _
    DllStructGetData($tInfo, "SubItem"), _
    DllStructGetData($tInfo, "NewState"), _
    DllStructGetData($tInfo, "OldState"), _
    DllStructGetData($tInfo, "Changed"), _
    DllStructGetData($tInfo, "ActionX"), _
    DllStructGetData($tInfo, "ActionY"), _
    DllStructGetData($tInfo, "lParam"), _
    DllStructGetData($tInfo, "KeyFlags")]
    _LeftClick($aInfo)
    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)
    Local $aInfo[12] = [$hWndFrom, _
    $iIDFrom, _
    $iCode, _
    DllStructGetData($tInfo, "Index"), _
    DllStructGetData($tInfo, "SubItem"), _
    DllStructGetData($tInfo, "NewState"), _
    DllStructGetData($tInfo, "OldState"), _
    DllStructGetData($tInfo, "Changed"), _
    DllStructGetData($tInfo, "ActionX"), _
    DllStructGetData($tInfo, "ActionY"), _
    DllStructGetData($tInfo, "lParam"), _
    DllStructGetData($tInfo, "KeyFlags")]
    ;~ _LeftDblClick($aInfo)
    Case $NM_KILLFOCUS ; The control has lost the input focus
    Local $aInfo[3] = [$hWndFrom, _
    $iIDFrom, _
    $iCode]
    ;~ _LostFocus($aInfo)
    Case $NM_RCLICK ; Sent by a list-view control when the user clicks an item with the right mouse button
    Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
    Local $aInfo[12] = [$hWndFrom, _
    $iIDFrom, _
    $iCode, _
    DllStructGetData($tInfo, "Index"), _
    DllStructGetData($tInfo, "SubItem"), _
    DllStructGetData($tInfo, "NewState"), _
    DllStructGetData($tInfo, "OldState"), _
    DllStructGetData($tInfo, "Changed"), _
    DllStructGetData($tInfo, "ActionX"), _
    DllStructGetData($tInfo, "ActionY"), _
    DllStructGetData($tInfo, "lParam"), _
    DllStructGetData($tInfo, "KeyFlags")]
    ; Return 1 ; not to allow the default processing
    Return 0 ; allow the default processing
    ;~ _RightClick($aInfo)
    Case $NM_RDBLCLK ; Sent by a list-view control when the user double-clicks an item with the right mouse button
    Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam)
    Local $aInfo[12] = [$hWndFrom, _
    $iIDFrom, _
    $iCode, _
    DllStructGetData($tInfo, "Index"), _
    DllStructGetData($tInfo, "SubItem"), _
    DllStructGetData($tInfo, "NewState"), _
    DllStructGetData($tInfo, "OldState"), _
    DllStructGetData($tInfo, "Changed"), _
    DllStructGetData($tInfo, "ActionX"), _
    DllStructGetData($tInfo, "ActionY"), _
    DllStructGetData($tInfo, "lParam"), _
    DllStructGetData($tInfo, "KeyFlags")]
    ;~ _RightDblClick($aInfo)
    Case $NM_RETURN ; The control has the input focus and that the user has pressed the ENTER key
    Local $aInfo[3] = [$hWndFrom, _
    $iIDFrom, _
    $iCode]
    ;~ _InputFocusReturn($aInfo)
    Case $NM_SETFOCUS ; The control has received the input focus
    Local $aInfo[3] = [$hWndFrom, _
    $iIDFrom, _
    $iCode]
    ;~ _SetFocus($aInfo)
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

    [/autoit]
  • Rekursive Datei/Ordner Auflistung per Objekt

    • BugFix
    • 1. Juli 2008 um 18:57

    ;( Autsch, was 'n Patzer 8)
    Danke Oscar für die Korrektur. Werde es im ersten Post gleich mal anpassen.

  • Horst der Bot

    • BugFix
    • 30. Juni 2008 um 22:17

    Wenn du in einem Chat einen Bot verwenden willst, mußt du den Datenstream des Chats auslesen und verwerten.
    Entweder greifst du direkt per TCP auf die Daten zu oder nimmst den Umweg über die GUI des Chatprogramms und liest dort Userliste und geschriebene Texte aus. Alles andere macht wenig Sinn, weil dir der aktuelle Bezug zum Chat fehlt.

    Falls es für einen IRC-Chat sein soll, schau dir mal meinen Basis-Client an.
    Basis-Client für IRC-Chat

  • Horst der Bot

    • BugFix
    • 30. Juni 2008 um 21:32

    Ich glaube du hast meinen Gucki im IRC schon kennengelernt :D
    Ich habe einfach nach Kategorien geordnet:
    - User joined
    - User ändert Nick
    - User verläßt Channel
    - User macht eine Aktion (also /me ... )
    Dann noch diverse Stichwörter, auf die der Bot reagiert und auch den Namen des Aufrufenden verwendet. Dazu sind einige Varianten hinterlegt, die zufällig, aber nie mehrfach hintereinander ausgewählt werden.

    NB: Was du hast ist aber bis jetzt nicht mal der Anfang für nen Bot, wo ist denn die Anbindung an den TCP-Port?
    Oder willst du 'ne Oberfläche auf der du mit dir selbst sprichst ?

  • Sound include importieren

    • BugFix
    • 30. Juni 2008 um 15:10

    Du meinest sicher FileInstall() ;)

  • Rapidshare links von seite in editor kopieren..

    • BugFix
    • 30. Juni 2008 um 13:44

    Ist Hilfe lesen soo schwer ?
    Steht doch alles da, mußt nur mal die anderen Funktionen zu IE auch anschauen!

    [autoit]

    #include <IE.au3>
    $i = 1
    $oIE = _IECreate ("autoit.de", 0, 0)
    $oLinks = _IELinkGetCollection ($oIE)
    $iNumLinks = @extended
    MsgBox(0, "Link Info", $iNumLinks & " links found")
    For $oLink In $oLinks
    ConsoleWrite("Link " & $i & @TAB & $oLink.href & @CRLF)
    $i += 1
    Next
    _IEQuit($oIE)

    [/autoit]
  • Rapidshare links von seite in editor kopieren..

    • BugFix
    • 30. Juni 2008 um 12:47

    z.B. IE-Funktionen verwenden?
    Links mit _IELinkGetCollection abfragen, näheres in der Hilfe.

  • Inhalt von Ordner löschen

    • BugFix
    • 30. Juni 2008 um 12:14

    Der einfachste Weg, um den Status zu zeigen, dürfte Tooltip sein:

    [autoit]

    ToolTip("Kopiervorgang << In Arbeit >>")
    DirMove($Datenaustausch, $Datenaustausch2, 1)
    ToolTip("Kopiervorgang << Beendet >>")
    Sleep(2000)
    ToolTip("")

    [/autoit]


    Denn eigentlich ist es doch nicht zwingend notwendig eine Progressanzeige zu haben. DirMove bietet dir auch keine Möglichkeit, den Fortschrittszustand abzufragen.

    Übrigens: "Call" ist ganz grausam :P Verwende doch statt Call("_copy") gleich den Aufruf _copy()

  • Funktionen reichtig benutzen ???

    • BugFix
    • 29. Juni 2008 um 19:53

    Das sagt dir die Hilfe zu INIReadSection: Returns a 2 dimensional array where element[n][0] is the key and element[n][1] is the value.

  • Variablendeklaration automatisiert - Opt("MustDeclareVars", 1)

    • BugFix
    • 29. Juni 2008 um 16:12

    Hi,
    beim Skriptschreiben geht es mir immer so, dass ich mit einem Grundgerüst anfange und es dann nach und nach immer mehr wird :)
    Somit ist es oft nicht richtig überschaubar, ob ich die erforderlichen Variablen deklariert habe (was ich versuche immer zu machen).
    Ich habe jetzt ein Skript geschrieben, dass alle Skriptvariablen, die keine Funktionsparameter oder Lokale Funktionsvariablen sind und nicht zu den AutoIt-Konstanten gehören, als Globale Variablen deklariert werden.
    Variablen in Kommentarzeilen oder -blöcken werden ignoriert.
    Es werden wahlweise die Beta- oder Prod-Definitionen herangezogen.
    Bestehende Deklarationen (Dim / Global) bleiben erhalten.
    Es wird nach den Includes und Opt (sofern vorhanden) "Opt("MustDeclareVars", 1)" eingefügt und anschließend werden alle gefundenen, bisher nicht deklarierten Variablen als Global eingeschrieben.
    Das Skript ist somit eine Hilfe um im Nachgang, ohne selbst suchen zu müssen, noch fehlende Variablen zu deklarieren.

    Edit: Zählervariablen in For-Schleifen sind zwar von Haus aus Lokale Variablen - aber eine Globale Deklaration schadet nicht :D und der Aufwand um diese nicht zu deklarieren, wäre extrem hoch - deshalb sind sie hier mit vorhanden.

    Edit 13.09.2008
    Einen Fehler in der Konstantenermittlung korrigiert.

    Spoiler anzeigen
    [autoit]

    ; Version 3.2.12.0
    #include<ProgressConstants.au3>
    #include<StaticConstants.au3>
    #include<EditConstants.au3>
    #include<GUIConstantsEx.au3>
    #include<WindowsConstants.au3>
    #include<File.au3>
    Opt("GUIOnEventMode", 1)
    Opt("MustDeclareVars", 1)
    Global $Skript, $Form1, $Group1, $Input1, $Button1, $Button2, $check, $checked = False, $step, $prog_val = 0, $progress, $lbl

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

    $Form1 = GUICreate('Declare Vars, Opt("MustDeclareVars", 1)', 634, 125, -1, 120)
    GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
    $Group1 = GUICtrlCreateGroup(" au3 - File ", 8, 16, 617, 57)
    $Input1 = GUICtrlCreateInput("", 24, 38, 393, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY))
    $Button1 = GUICtrlCreateButton("Choose", 429, 38, 85, 21, 0)
    GUICtrlSetOnEvent(-1, "Button1Click")
    $Button2 = GUICtrlCreateButton("Start", 527, 38, 85, 21, 0)
    GUICtrlSetOnEvent(-1, "Button2Click")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $check = GUICtrlCreateCheckbox('Script uses Beta', 8, 76, 150)
    GUICtrlSetOnEvent(-1, 'checkClicked')
    $lbl = GUICtrlCreateLabel('', 287, 79, 60, 17, $SS_CENTER)
    $progress = GUICtrlCreateProgress(7, 98, 620, 20, $PBS_SMOOTH)
    GUISetState(@SW_SHOW)

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

    While 1
    Sleep(100)
    WEnd

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

    Func Button1Click()
    GUICtrlSetData($progress, 0)
    GUICtrlSetData($lbl, '')
    $prog_val = 0
    $Skript = FileOpenDialog('Choose an au3-File', @MyDocumentsDir, '(*.au3)')
    If $Skript = '' Then Return
    GUICtrlSetData($Input1, $Skript)
    EndFunc
    Func Button2Click()
    GUICtrlSetData($progress, 0)
    GUICtrlSetData($lbl, '')
    $prog_val = 0
    If $Skript = '' Then Return
    If _SetVarsDeclared($Skript, $checked) = 0 Then
    WinSetTitle($Form1, '', ' << Variables successful declared. >>')
    Else
    WinSetTitle($Form1, '', ' << All variables already declared! >>')
    EndIf
    EndFunc
    Func checkClicked()
    If BitAND(GUICtrlRead($check), $GUI_CHECKED) Then
    $checked = True
    Else
    $checked = False
    EndIf
    EndFunc
    Func Form1Close()
    Exit
    EndFunc
    Func _SetVarsDeclared($FILE, $BETA=False)
    Local $oVars = ObjCreate('System.Collections.ArrayList')
    Local $oFuncVars = ObjCreate('System.Collections.ArrayList')
    Local $oConst = ObjCreate('System.Collections.ArrayList')
    Local $oDeclared = ObjCreate('System.Collections.ArrayList')
    Local $skip = False, $PathInclude, $1stChar, $inFunc = False, $aFile, $aMatch, $var, $strKey, $lastInclude = 1
    Local $str0 = 'Opt("MustDeclareVars", 1)', $str1 = 'Global ', $sLen, $len = 130, $tmp, $keys, $lastOpt = 1, $declare = 0
    If $BETA Then
    $PathInclude = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\AutoIt v3\AutoIt', 'betaInstallDir') & '\Include\'
    Else
    $PathInclude = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\AutoIt v3\AutoIt', 'InstallDir') & '\Include\'
    EndIf
    Local $aConst_au3 = _FileListToArray($PathInclude, '*.au3', 1)
    $step = 33/UBound($aConst_au3)
    For $i = 1 To UBound($aConst_au3) -1
    $prog_val += $step
    GUICtrlSetData($progress, Int($prog_val))
    GUICtrlSetData($lbl, StringFormat('%3.2f', $prog_val) & '%')
    If Not StringInStr($aConst_au3[$i], 'constants') Then ContinueLoop
    _FileReadToArray($PathInclude & $aConst_au3[$i], $aFile)
    For $k = 1 To UBound($aFile) -1
    $aMatch = StringRegExp($aFile[$k], '\$[\d\w]+', 3)
    If Not IsArray($aMatch) Then ContinueLoop
    For $l = 0 To UBound($aMatch) -1
    If Not $oConst.Contains($aMatch[$l]) Then $oConst.Add($aMatch[$l])
    Next
    Next
    Next
    GUICtrlSetData($progress, 33)
    GUICtrlSetData($lbl, '33.00%')
    _FileReadToArray($FILE, $aFile)
    $tmp = FileRead($FILE)
    Local $pos_incl, $pos_opt, $before_str
    If (StringInStr($tmp, '#include')) Or (StringInStr($tmp, 'Opt')) Then
    For $i = 1 To UBound($aFile) -1
    $1stChar = StringLeft(StringStripWS($aFile[$i],1), 1)
    If ($1stChar <> ';') And (StringInStr($aFile[$i], '#cs') Or StringInStr($aFile[$i], '#comments-start')) Then $skip = True
    If ($1stChar <> ';') And (StringInStr($aFile[$i], '#ce') Or StringInStr($aFile[$i], '#comments-end')) Then $skip = False
    If $skip Then ContinueLoop
    If StringRegExp($aFile[$i], "(?i)#include") Then
    $pos_incl = StringInStr($aFile[$i], '#include')
    If $pos_incl > 1 Then
    $before_str = StringLeft($aFile[$i], $pos_incl-1) ; maybe quoted - don't use then
    If StringInStr($before_str, '"') Or StringInStr($before_str, "'") Then ContinueLoop
    EndIf
    $lastInclude = $i
    ElseIf StringRegExp($aFile[$i], "(?i)opt") Then
    $pos_opt = StringInStr($aFile[$i], 'opt')
    If $pos_opt > 1 Then
    $before_str = StringLeft($aFile[$i], $pos_opt-1) ; maybe quoted - don't use then
    If StringInStr($before_str, '"') Or StringInStr($before_str, "'") Then ContinueLoop
    EndIf
    $lastOpt = $i
    EndIf
    Next
    If $lastOpt > $lastInclude Then $lastInclude = $lastOpt
    EndIf
    $step = 67/UBound($aFile)
    For $i = 1 To UBound($aFile) -1
    $prog_val += $step
    GUICtrlSetData($progress, Int($prog_val))
    GUICtrlSetData($lbl, StringFormat('%3.2f', $prog_val) & '%')
    $1stChar = StringLeft(StringStripWS($aFile[$i],1), 1)
    If $1stChar = ';' Then ContinueLoop
    If StringInStr($aFile[$i], 'Dim') Or StringInStr($aFile[$i], 'Global') Then
    $aMatch = StringRegExp($aFile[$i], '\$[\d\w]+', 3)
    If Not IsArray($aMatch) Then ContinueLoop
    For $k = 0 To UBound($aMatch) -1
    If Not $oDeclared.Contains($aMatch[$k]) Then $oDeclared.Add($aMatch[$k])
    Next
    ContinueLoop
    EndIf
    If StringInStr($aFile[$i], '#cs') Or StringInStr($aFile[$i], '#comments-start') Then $skip = True
    If StringInStr($aFile[$i], '#ce') Or StringInStr($aFile[$i], '#comments-end') Then $skip = False
    If $skip Or ($1stChar = '#') Then ContinueLoop
    If StringLeft(StringStripWS($aFile[$i],1),4) = 'Func' Then
    $inFunc = True
    If $oFuncVars.Count > 0 Then $oFuncVars.Clear
    $aMatch = StringRegExp($aFile[$i], '\$[\d\w]+', 3)
    If Not IsArray($aMatch) Then ContinueLoop
    For $k = 0 To UBound($aMatch) -1
    If Not $oFuncVars.Contains($aMatch[$k]) Then $oFuncVars.Add($aMatch[$k])
    Next
    ContinueLoop
    EndIf
    If $inFunc And (StringLeft(StringStripWS($aFile[$i],1),7) = 'EndFunc') Then $inFunc = False
    $aMatch = StringRegExp($aFile[$i], '\$[\d\w]+', 3)
    If Not IsArray($aMatch) Then ContinueLoop
    If $inFunc And StringInStr($aFile[$i], 'Local') Then
    For $k = 0 To UBound($aMatch) -1
    $oFuncVars.Add($aMatch[$k])
    Next
    ContinueLoop
    EndIf
    For $k = 0 To UBound($aMatch) -1
    If (Not $oVars.Contains($aMatch[$k])) And _
    (Not $oFuncVars.Contains($aMatch[$k])) Then $oVars.Add($aMatch[$k])
    Next
    Next
    GUICtrlSetData($progress, 98)
    GUICtrlSetData($lbl, '98.00%')
    For $strKey In $oConst
    If $oVars.Contains($strKey) Then $oVars.Remove($strKey)
    Next
    For $strKey In $oDeclared
    If $oVars.Contains($strKey) Then $oVars.Remove($strKey)
    Next
    $oVars.Sort
    If $oVars.Count > 0 Then
    For $strKey In $oVars
    $sLen = StringLen($str1 & $strKey & ', ')
    If $sLen < $len Then
    $str1 &= $strKey & ', '
    Else
    $str1 = StringTrimRight($str1, 2) & @LF & 'Global '
    $len += 130
    EndIf
    Next
    If StringRight($str1, 2) = ', ' Then $str1 = StringTrimRight($str1, 2)
    If StringRight($str1, 7) = 'Global ' Then $str1 = StringTrimRight($str1, 7)
    If $declare = 0 Then
    _FileWriteToLine($FILE, $lastInclude +1, $str0 & @CRLF & $str1)
    Else
    _FileWriteToLine($FILE, $declare, $str0, 1)
    _FileWriteToLine($FILE, $lastInclude +1, $str1)
    EndIf
    GUICtrlSetData($progress, 100)
    GUICtrlSetData($lbl, '100.00%')
    Return 0
    Else
    GUICtrlSetData($progress, 100)
    GUICtrlSetData($lbl, '100.00%')
    Return -1
    EndIf
    EndFunc ;==> _SetVarsDeclared

    [/autoit]
  • Der Große Open-Source-Thread

    • BugFix
    • 29. Juni 2008 um 03:13

    Dann möchte ich nicht versäumen K-Meleon zu erwähnen, den schnellsten Browser des Universums :rofl:
    Seit ich den habe, habe ich den Fuchs links liegen lassen. Ich kenne auch keinen andren Browser, der soviel Konfigurationsmöglichkeiten bietet.
    Nutzt die dieselbe (Gecko) Engine, wie FF und ist trotzdem spürbar schneller. :)

  • arrays addieren & noch eine Frage

    • BugFix
    • 29. Juni 2008 um 02:33
    Zitat von snify

    Wie kann ich den TEXT ändern in dem Fenster??? geht das überhaupt?

    [autoit]

    ControlSetText( "title", "text", controlID, "new text" [, flag] )

    [/autoit]
  • Rekursive Datei/Ordner Auflistung per Objekt

    • BugFix
    • 26. Juni 2008 um 15:54

    1. einfach nichts machen
    2. genau :)

  • Rekursive Datei/Ordner Auflistung per Objekt

    • BugFix
    • 26. Juni 2008 um 15:33

    Hi Lina,
    1. es sind keine Fehlermeldungen, sondern Warnungen, die du ignorieren kannst
    2. in dem Bsp. leite ich die Ausgabe auf Console, du kannst aber geanausogut das Funktionsergebnis direkt in eine Datei schreiben

  • Rekursive Datei/Ordner Auflistung per Objekt

    • BugFix
    • 26. Juni 2008 um 00:03

    So Lina,
    dir zur Freude, habe ich jetzt in die Funktion eine Option zur Rückgabe als Array (Standard) oder als @LF-getrennten String eingebaut. s. ersten Beitrag. ;)

    [OT]
    Doppelpost, damit es in den News erscheint. ( klappt bei Edits leider nicht :( )
    [/OT]

  • GUICTRLCreate in For Schleife... - Neues Problem

    • BugFix
    • 25. Juni 2008 um 23:28

    Wenn du im OnEvent-Mode arbeitest, kannst du dir viel Schreibarbeit sparen, indem du die Aktionen beim Anklicken mit in das Array der Pic-ID schreibst und beim Anklicken per Execute ausführst.

    Spoiler anzeigen
    [autoit]

    Opt("GUIOnEventMode", 1)

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

    Global $n = -1, $aFeld[100][2]
    $aFeld[0][1] = 'MsgBox(0,"", "Hallo, das ist Pic1")'
    $aFeld[1][1] = 'MsgBox(0,"", "Hallo, das ist Pic2")'
    $aFeld[2][1] = 'MsgBox(0,"", "Hallo, das ist Pic3")'

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

    For $s = 0 To 9
    For $i = 0 To 9
    $n += 1
    $aFeld[$n][0] = GUICtrlCreatePic("images\buttonchose.gif", 31 + $i * 20 + $i, 146 + $s * 20 + $s, 20, 20, 0)
    GUICtrlSetOnEvent(-1, 'Pic_click')
    Next
    Next

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

    Func Pic_click()
    For $i = 0 To UBound($aFeld) -1
    If $aFeld[$n][0] = @GUI_CtrlId Then Return Execute($aFeld[$n][1])
    Next
    EndFunc

    [/autoit]
  • EditorXXL

    • BugFix
    • 25. Juni 2008 um 22:15

    [OT]
    Seid wann ist Vista denn eine Windows-Version :rofl:
    50% Umsatzeinbruch für DELL und HP bei Auslieferung von PC mit Vista und als Folge jetzt immer die Möglichkeit des Downgrades auf ein funktionierendes Windows XP. Das sagt mehr als tausend Worte. ;)
    [/OT]

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™