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

Beiträge von eukalyptus

  • Ist AutoIt im stande FLV abzuspielen?

    • eukalyptus
    • 5. April 2009 um 11:39

    oda VLC verwenden

  • Binärcode

    • eukalyptus
    • 4. April 2009 um 23:47

    Was willst du denn machen?

    Du kannst z.b. jedes Byte (=2 Stellen Hex) mit oben genannter Funktion in Binärcode umwandeln
    z.b.: 0xFF=11111111

    Also zuerst StringToBinary und dann Schritt für Schritt in tatsächlichen BinärCode...

    lgE

  • Binärcode

    • eukalyptus
    • 4. April 2009 um 23:19

    Reicht dir evtl. StringToBinary ?

  • Binärcode

    • eukalyptus
    • 4. April 2009 um 23:12

    Jo, zumindest für Zahlen...

    von Progandy:

    [autoit]

    ;===============================================================================
    ;
    ; Function Name: _TranslateSystem
    ; Description:: Wandelt eine Zahl zwischen verschiedenen Zahlensystemen um.
    ; Parameter(s): $zahl - Die Zahl zum Umwandeln
    ; $OldSystem - [Optional] Das alte System (Default: 10)
    ; $NewSystem - [Optional] Das neue System (Default: 2)
    ; Requirement(s):
    ; Return Value(s): Success: Number in new format and @extended set to SystemBase
    ; Error: -1.#NAN or -1.#IND
    ; @error set to:
    ; 1 - Zahl nicht richtig formatiert
    ; 2 - neues System nicht im darstellbaren Bereich
    ; 3 - altes System nicht im darstellbaren Bereich
    ; 4 - Zahl enthält Zeichen, die nicht im System vorkommen
    ; Author(s): Prog@ndy; sd (VB-Code)
    ; VB source used from http://www.vbarchiv.net/tipps/details.php?id=1590
    ;
    ;===============================================================================
    ;
    Func _TranslateSystem($zahl, $OldSystem=10, $NewSystem = 2)
    Local $out ;' Ausgabevariable
    Local $temp ;' Temporäre Variable
    $OldSystem = Int($OldSystem)
    $NewSystem = Int($NewSystem)
    Select
    Case Not StringRegExp($zahl,"\A[0-9a-zA-Z]+\Z")
    Return SetError(2,0,"-1.#NAN")
    Case $NewSystem < 2 Or $NewSystem > 62
    Return SetError(2,0,"-1.#IND")
    Case $OldSystem < 2 Or $OldSystem > 62
    Return SetError(3,0,"-1.#IND")
    EndSelect
    ;' Zeichen der Zahlensysteme ( bis Hexadezimalsystem )
    Local $chrsys = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"

    If $OldSystem <> 10 Then
    Local $CaseSense = ($OldSystem > 36)
    Local $ziffern = StringSplit($zahl,""), $nummer
    $zahl = 0
    For $i = 1 To $ziffern[0]
    $nummer = StringInStr($chrsys,$ziffern[$i],$CaseSense,1)
    If $nummer > 0 Then $zahl += ($nummer-1)*($OldSystem^($ziffern[0]-$i))
    If $nummer > $OldSystem Then Return SetError(4,0,"1.#NAN")
    Next
    EndIf

    ;' Solange bis Zahl = 0
    While $zahl <> 0
    ;' Stelle der Zahl ermitteln
    $temp = Mod($zahl, $NewSystem )
    ;' Zahl anhängen
    $out = StringMid($chrsys, $temp + 1, 1) & $out
    ;' Integerdivision
    $zahl = Int($zahl / $NewSystem)
    Wend
    SetExtended($NewSystem)
    Return $out
    EndFunc

    [/autoit]

    lgE

  • ffmpeg und AutoIt

    • eukalyptus
    • 4. April 2009 um 22:06

    Siehe Post #5

  • ffmpeg und AutoIt

    • eukalyptus
    • 4. April 2009 um 21:31

    Moment, wollt Ihr jetzt ein Avi oda ein Mp3 draus machen? ;)

  • ffmpeg und AutoIt

    • eukalyptus
    • 4. April 2009 um 21:29

    Hi

    Ist etwas grob zusammengezimmert:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <inet.au3>
    #include <Date.au3>

    GUICreate("You Tube Video-Downloader", 273, 105, 193, 115, -1)
    $DwnInput = GUICtrlCreateInput("Hier YouTube Link Rein !", 8, 24, 257, 21)
    GUICtrlCreateLabel("www.youtube.com Download Link:", 8, 8, 268, 15)
    $start = GUICtrlCreateButton("&Start", 8, 48, 128, 25, 0)
    $Progress = GUICtrlCreateProgress(8, 80, 257, 16)
    $abb = GUICtrlCreateButton("A&bbruch", 137, 48, 128, 25, 0)
    GUISetState(@SW_SHOW)

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $start
    GUICtrlSetState($start,$GUI_DISABLE)
    $dwnlink = GUICtrlRead($DwnInput)
    $sCode=_INetGetSource ($dwnlink)
    $s_t=StringRegExp($sCode, "&t=(.*?)&", 3)
    $s_v=stringmid($dwnlink,stringinstr($dwnlink,"v=")+2)
    $save = FileSaveDialog("Speichere FLV","","Flash Video(*.flv)",-1,$s_v)
    If StringRight($save,4) <> ".swf" Then $save&=".flv"
    _Download("http://youtube.com/get_video?video_id=" & $s_v & "&t=" & $s_t[0],$save,$Progress)
    GUIDelete()
    MsgBox(0,"","Fertig!")
    Exit
    EndSwitch
    WEnd

    Func _Download($site,$punkt,$prog=0)
    $orisize = InetGetSize($site)
    InetGet($site,$punkt,1,1)
    If $prog = 0 Then ProgressOn("Download","")
    Do
    $msg = GUIGetMsg()
    If $msg = $abb Then
    If MsgBox(4,"","Abbruch?") = 6 Then Exit
    EndIf
    $size1 = FileGetSize($punkt)
    $MBsize1 = FileGetSize($punkt)
    $inetget = @InetGetBytesRead
    $Prozent = (100 * $inetget ) / $orisize
    $decimalplace = Round ($Prozent)
    $decimalplaceMBsize1 = Round (@InetGetBytesRead / 1024)
    If $prog = 0 Then
    ProgressSet ($Prozent, $decimalplace & "% " & "(" & $decimalplaceMBsize1 & ") Kb sind bereits gedownloadet.")
    Else
    GUICtrlSetData($prog,$Prozent)
    EndIf
    Until @InetGetActive = 0
    If $prog = 0 Then ProgressOff ()
    Local $sFFmpeg="", $hFFmpeg
    $hFFmpeg=Run(@ScriptDir & '\ffmpeg.exe -i "' & $punkt & '" -y "' & StringTrimRight($punkt,3) & 'avi"',@ScriptDir,@SW_HIDE,0x4)
    While 1
    $sFFmpeg &= StderrRead($hFFmpeg)
    If @error Or StringInStr($sFFmpeg,"Duration") Then ExitLoop
    WEnd
    $sFFmpeg = StringLeft(StringTrimLeft($sFFmpeg, StringInStr($sFFmpeg, "Duration:") + 9), 8)
    $iTicks = _TimeToTicks(StringLeft($sFFmpeg, 2), StringMid($sFFmpeg, 4, 2), StringMid($sFFmpeg, 7, 2))
    While 1
    $sFFmpeg = StderrRead($hFFmpeg)
    If @error Then ExitLoop
    If StringInStr($sFFmpeg,"time=") Then
    $sFFmpeg=StringTrimLeft($sFFmpeg, StringInStr($sFFmpeg, "time=") + 4)
    GUICtrlSetData($prog,(StringLeft($sFFmpeg, StringInStr($sFFmpeg, ".")-1) *100000)/$iTicks)
    EndIf
    WEnd
    Return $punkt
    EndFunc

    [/autoit]

    Das konvertierte Video ist noch kein "reines" Avi, sondern ein mp4-Codec
    Du kannst noch mit -vcodec einen anderen Videocodec auswählen...
    Infos hierzu: ffmpeg.exe -h bzw. ffmpeg.exe -formats

    ffmpeg.exe gibts hier:
    http://www.videohelp.com/download/ffmpeg-0.5.7z

    lgE

  • Videovorschau-Bild

    • eukalyptus
    • 4. April 2009 um 20:52

    Hi

    folgendes Script erzeugt ein Jpg mit 9 Vorschaubildern eines Videos:
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Dazu benötigt man ffmpeg.exe:
    http://www.videohelp.com/download/ffmpeg-0.5.7z

    Das Script kompilieren und dann via drag´n´drop ein/mehrere Videodateien auf die Exe ziehen...

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <Misc.au3>
    _Singleton("ffmpeg thumbnail generator")
    #include <Date.au3>
    #include <GdiPlus.au3>

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

    If $Cmdline[0] < 1 Then Exit
    $hGui = GUICreate("ffmpeg thumb generator", 150, 55, -1, -1, -1, BitOR($WS_EX_TOPMOST, $WS_EX_TOOLWINDOW))
    $hProgress1 = GUICtrlCreateProgress(5, 5, 140, 20, 0x1)
    $hProgress2 = GUICtrlCreateProgress(5, 30, 140, 20, 0x1)
    GUISetState()

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

    _GDIPlus_Startup()
    For $i = 1 To $Cmdline[0]
    DirRemove(@ScriptDir & "\ffmpegthumbtemp", 1)
    DirCreate(@ScriptDir & "\ffmpegthumbtemp")
    $sMovieFile = $Cmdline[$i]
    $iTicks = _CheckMovieLength($sMovieFile)
    If $iTicks = 0 Then $iTicks = 20000
    GUICtrlSetData($hProgress1, $i * 100 / $Cmdline[0])
    _CreateThumbnails($sMovieFile, $iTicks)
    Next
    DirRemove(@ScriptDir & "\ffmpegthumbtemp", 1)
    _GDIPlus_Shutdown()

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

    Func _CreateThumbnails($sMovieFile, $iTicks)
    Local $tempGraph = _GDIPlus_GraphicsCreateFromHWND(_WinAPI_GetDesktopWindow())
    Local $hBitmap = _GDIPlus_BitmapCreateFromGraphics(520, 400, $tempGraph)
    _GDIPlus_GraphicsDispose($tempGraph)
    Local $hGraphics = _GDIPlus_ImageGetGraphicsContext($hBitmap)
    _GDIPlus_GraphicsClear($hGraphics, 0xFFFFFFFF)
    Local $h, $m, $s, $hImage, $iCnt = 0
    _TicksToTime($iTicks, $h, $m, $s)
    For $i = 0 To 2
    For $j = 0 To 2
    $iCnt += 1
    _TicksToTime(($iCnt * 10 * $iTicks) / 100, $h, $m, $s)
    GUICtrlSetData($hProgress2, $iCnt * 100 / 9)
    RunWait('"' & @ScriptDir & '\ffmpeg.exe" -ss ' & $h & ':' & $m & ':' & $s & ' -vframes 1 -i "' & $sMovieFile & '" -s 160×120 -an -r 0.05 -y "' & @ScriptDir & '\ffmpegthumbtemp\' & $iCnt & '%d.jpg"', @ScriptDir, @SW_HIDE)
    $hImage = _GDIPlus_ImageLoadFromFile(@ScriptDir & "\ffmpegthumbtemp\" & $iCnt & "1.jpg")
    _GDIPlus_GraphicsDrawImage($hGraphics, $hImage, 10 + $i * 170, 10 + $j * 130)
    _GDIPlus_ImageDispose($hImage)
    Next
    Next
    _GDIPlus_ImageSaveToFile($hBitmap, StringLeft($sMovieFile, StringInStr($sMovieFile, ".", 0, -1)) & 'jpg')
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_GraphicsDispose($hGraphics)
    EndFunc ;==>_CreateThumbnails

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

    Func _CheckMovieLength($sMovieFile)
    Local $sFFmpeg = ""
    Local $hFFmpeg = Run('ffmpeg.exe -i "' & $sMovieFile & '"', @ScriptDir, @SW_HIDE, 0x4)
    While 1
    $sFFmpeg &= StderrRead($hFFmpeg)
    If @error Then ExitLoop
    WEnd
    $sFFmpeg = StringLeft(StringTrimLeft($sFFmpeg, StringInStr($sFFmpeg, "Duration:") + 9), 8)
    Local $iTicks = _TimeToTicks(StringLeft($sFFmpeg, 2), StringMid($sFFmpeg, 4, 2), StringMid($sFFmpeg, 7, 2))
    Return $iTicks
    EndFunc ;==>_CheckMovieLength

    [/autoit]

    lgE

  • ffmpeg und AutoIt

    • eukalyptus
    • 4. April 2009 um 17:19

    Hi

    Ich hab vor kurzem ein Tool geschrieben, welches via ffmpeg eine Thumbnail-Galerie von Videos erstellt.

    Werd das demnächst mal posten...

    So kann man auch konvertieren ;)

    lgE

  • Programm stürt bei zwei funktionen gleichzeitig ab

    • eukalyptus
    • 4. April 2009 um 08:52

    Hi

    Ich kann momentan leider nichts testen (Firma-PC), aber ich würde empfehlen mit TimerInit und TimerDiff zu arbeiten, statt mit Adlib.

    Mit welcher Error-Meldung stürzt das Script ab?

    lgE

  • µit - März

    • eukalyptus
    • 3. April 2009 um 16:03

    Ich hab jetzt den Benchmark so umgeschrieben, daß er jedes richtige Ergebnis akzeptiert.
    Ein richtiges Sudoku hat in den Quersummen (Horizontal, Vertikal & Block) jeweils 45 - sobald dies der Fall ist, wird das Ergebnis als richtig bewertet.

    Download in meinem vorletzten Post...

    So sieht die Auswertung aus:

    Code
    Sudoku Logisch 1 Falsch
    Sudoku Logisch 2 Falsch
    Sudoku Logisch 3 Falsch
    Sudoku Logisch 4 Falsch
    Sudoku Logisch 5 Falsch
    Sudoku Logisch 6 Falsch
    Sudoku Logisch 7 Falsch
    Sudoku Logisch 8 Falsch
    Sudoku Logisch 9 Falsch
    Sudoku Logisch 10 Falsch
    
    
    Ergebnis Logisch: Zeit gesammt: 0.135492080697407 Zeit Durchschnitt: 0.0135492080697407
    
    
    Sudoku Backtrack 1 Falsch
    Sudoku Backtrack 2 Falsch
    Sudoku Backtrack 3 Falsch
    Sudoku Backtrack 4 Falsch
    Sudoku Backtrack 5 Falsch
    Sudoku Backtrack 6 Falsch
    Sudoku Backtrack 7 Falsch
    Sudoku Backtrack 8 Falsch
    Sudoku Backtrack 9 Falsch
    Sudoku Backtrack 10 Falsch
    
    
    Ergebnis Logisch: Zeit gesammt: 0.135492080697407 Zeit Durchschnitt: 0.0135492080697407
    Ergebnis Backtrack: Zeit gesammt: 0.132419064434167 Zeit Durchschnitt: 0.0132419064434167
    Ergebnis gelöste Sudokus: 0
    Alles anzeigen

    lgE

  • Uhrzeit abgleich

    • eukalyptus
    • 3. April 2009 um 10:11

    Hi

    Ich denke mal du benötigst die Funktion

    [autoit]

    _DateDiff

    [/autoit]


    aus der Date.au3-UDF

    lgE

  • µit - März

    • eukalyptus
    • 3. April 2009 um 10:06

    Hi

    Kannst du bitte mal überprüfen, ob die Sudokus mehr als 2 Lösungen haben?
    Mit 2 kann mein Benchmark noch umgehen...

    Also generell sind ext. Dll´s verboten, außer sie sind in der Aufgabenstellung erlaubt!
    Sonst schreib ich meinen Solver in Pascal und bin um Meilen schneller...
    Oda nehm gleich einen fertigen Solver ausm Netz...
    :D

    lgE

  • µit - März

    • eukalyptus
    • 2. April 2009 um 14:04

    So ich hab jetzt mal einen Benchmark erstellt und 10 logisch lösbare und 10 backtrack-Sudokus beigefügt.

    Falls jemand Probleme mit diesen Sudokus hat (zu schwer, zu leicht, usw...) dann bitte gleich posten!
    (Un wenn jemand meint, ich hätte mir die Sudokus extra für mein Script ausgesucht, dann ersetze ich auch gerne die Sudokus gegen andere Vorschläge...;))

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

    Da mein Script noch kein Backtrack kann, poste ich nur mal meine logischen Ergebnise:

    Code
    Sudoku Logisch 1 Richtig - Benötigte Zeit: 312.79506194223
    Sudoku Logisch 2 Richtig - Benötigte Zeit: 244.420170720022
    Sudoku Logisch 3 Richtig - Benötigte Zeit: 266.318484611871
    Sudoku Logisch 4 Richtig - Benötigte Zeit: 272.166993291047
    Sudoku Logisch 5 Richtig - Benötigte Zeit: 330.572461025074
    Sudoku Logisch 6 Richtig - Benötigte Zeit: 769.037964322281
    Sudoku Logisch 7 Richtig - Benötigte Zeit: 633.289147084336
    Sudoku Logisch 8 Richtig - Benötigte Zeit: 1956.07067378675
    Sudoku Logisch 9 Richtig - Benötigte Zeit: 713.07386832684
    Sudoku Logisch 10 Richtig - Benötigte Zeit: 750.123549222038
    
    
    Ergebnis Logisch: Zeit gesammt: 6247.86837433249 Zeit Durchschnitt: 624.786837433249
    Alles anzeigen

    lgE

  • µit - März

    • eukalyptus
    • 28. März 2009 um 20:08

    Also ich bin mal dafür, daß wir den Abgabetermin auf 30. April festlegen.

    Ein Sudokusolver sollte alle lösbaren Sudokus lösen können. Falls wir nur logisch lösbare verwenden, dann werden die Scripte natürlich rein auf die Testsuite optimiert und sind generell eigentlich wertlos.
    Wenn wir andererseits nur schwere Sudokus vorgeben, dann haben die logischen Scripte das Nachsehen.
    Deshalb mein Vorschlag:
    Unsere Testsuite enthält 10 leichte, rein logisch lösbare Sudokus und 10 schwere, welche nur via Backtracking gelöst werden können.

    Man muß somit eine gesunde Mischung aus Logik und Backtracking erstellen.

    Und dann mehrere Bewertungen:
    Wer löst die logischen Sudokus am schnellsten
    Wer die Backtracking-Sudokus am schnellsten
    und wer löst die meisten Sudokus

    Somit können dann auch alle mitmachen, die z.b. nur rein logische Scripte erstellen wollen...

    wenn ich Zeit hab, dann kann ich bis Anfang April eine Testsuite erstellen...

    was haltet ihr davon?

    E

  • TreeView Funktionszuweisung (OnEventMode) schlägt fehl

    • eukalyptus
    • 26. März 2009 um 10:44

    Ahh ! *durchblick* ;)

    Auch sehr interesante Lösung
    Danke BugFix und Progandy

  • TreeView Funktionszuweisung (OnEventMode) schlägt fehl

    • eukalyptus
    • 26. März 2009 um 09:22

    Die Methode mit $TVN_SELCHANGED funktioniert allerdings nur, wenn man den TreeView mit

    [autoit]

    _GUICtrlTreeView_Create

    [/autoit]


    statt

    [autoit]

    GUICtrlCreateTreeView

    [/autoit]


    erstellt

    Hier mal BugFix´s Beispiel als Beispiel:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <GuiTreeView.au3>
    #include <TreeViewConstants.au3>
    #include <WindowsConstants.au3>

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

    Opt("MustDeclareVars", 1)
    Opt("GuiOnEventMode", 1)

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

    Global $gui, $hImage, $hTV, $aID_Sub[5], $ID_Table

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

    $gui = GUICreate('Test TreeView')
    GUISetOnEvent($GUI_EVENT_CLOSE, '_end')
    $hTV = _GUICtrlTreeView_Create($gui,10,10,300,350,BitOR($TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, _
    $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE)

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

    $hImage = _GUIImageList_Create(16, 16, 5, 3)
    _GUIImageList_AddIcon($hImage, "shell32.dll", 98)
    _GUIImageList_AddIcon($hImage, "shell32.dll", 96)
    _GUIImageList_AddIcon($hImage, "shell32.dll", 36)
    _GUICtrlTreeView_SetNormalImageList($hTV, $hImage)

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

    _GUICtrlTreeView_BeginUpdate($hTV)
    $ID_Table = _GUICtrlTreeView_Add($hTV, 0, 'Table', 0, 0)
    For $i = 1 To 5
    $aID_Sub[$i-1] = _GUICtrlTreeView_AddChild($hTV, $ID_Table, 'Sub' & $i, 1, 1)
    ;GUICtrlSetOnEvent($aID_Sub[$i-1], 'click_TV') ; does'nt work (because have no ID and handle instead ?)
    For $j = 1 To 3
    _GUICtrlTreeView_AddChild($hTV, $aID_Sub[$i-1], 'Sub_Sub' & $j, 2, 2)
    Next
    Next
    _GUICtrlTreeView_EndUpdate($hTV)
    _GUICtrlTreeView_Expand($hTV, $ID_Table)

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

    GUISetState()
    GUIRegisterMsg($WM_NOTIFY, 'WM_NOTIFY') ; by using WM_NOTIFY are strange results, are reading with an offset of 1 click!

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

    While 1
    Sleep(100)
    WEnd

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

    Func _end()
    Exit
    EndFunc

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

    Func click_TV()
    ConsoleWrite(_GUICtrlTreeView_GetText($hTV, _GUICtrlTreeView_GetSelection($hTV)) & @CRLF)
    EndFunc

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

    Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    #forceref $hWnd, $iMsg, $iwParam
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndTreeview
    $hWndTreeview = $hTV
    If Not IsHWnd($hTV) Then $hWndTreeview = GUICtrlGetHandle($hTV)

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

    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    Switch $hWndFrom
    Case $hWndTreeview
    Switch $iCode
    Case $TVN_SELCHANGED
    click_TV()
    EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

    [/autoit]

    lgE

  • TreeView Funktionszuweisung (OnEventMode) schlägt fehl

    • eukalyptus
    • 25. März 2009 um 23:02

    Hi

    Ich steh grad vor dem selben Problem!
    Wie war das jetzt mit dem Dummy? Das kapier ich irgendwie nicht...

    thx
    E

    EDIT:
    Hab grad rausgefunden, daß es perfekt (für mich) funktioniert, wenn ich $NM_CLICK durch $TVN_SELCHANGED ersetzte!
    Also auch für mich : gelöst ;)

  • BitAnd

    • eukalyptus
    • 24. März 2009 um 17:36

    Wenn du z.B. mit WinGetState den Wert 10 bekommst, dann brauchst du Bitand um herauszufinden, welche States es tatsächlich sind

    Schau dir mal folgendes Beispiel an:

    Spoiler anzeigen
    [autoit]

    Global $State

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

    GUICreate("", 200, 300)
    $CB_Start = GUICtrlCreateDummy()
    GUICtrlCreateCheckbox("Exists <1>", 10, 10)
    GUICtrlCreateCheckbox("Visible <2>", 10, 30)
    GUICtrlCreateCheckbox("Enabled <4>", 10, 50)
    GUICtrlCreateCheckbox("Active <8>", 10, 70)
    GUICtrlCreateCheckbox("Minimized <16>", 10, 90)
    GUICtrlCreateCheckbox("Maximized <32>", 10, 110)
    $CB_End = GUICtrlCreateDummy()
    $hState = GUICtrlCreateLabel("", 10, 140, 50, 20)
    $LB_Start = GUICtrlCreateDummy()
    GUICtrlCreateLabel("", 10, 170, 200, 20)
    GUICtrlCreateLabel("", 10, 190, 200, 20)
    GUICtrlCreateLabel("", 10, 210, 200, 20)
    GUICtrlCreateLabel("", 10, 230, 200, 20)
    GUICtrlCreateLabel("", 10, 250, 200, 20)
    GUICtrlCreateLabel("", 10, 270, 200, 20)
    $LB_End = GUICtrlCreateDummy()
    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    If $msg = -3 Then Exit
    If $msg > $CB_Start And $msg < $CB_End Then
    $State = 0
    If GUICtrlRead($CB_Start + 1) = 1 Then $State = BitOR($State, 1)
    If GUICtrlRead($CB_Start + 2) = 1 Then $State = BitOR($State, 2)
    If GUICtrlRead($CB_Start + 3) = 1 Then $State = BitOR($State, 4)
    If GUICtrlRead($CB_Start + 4) = 1 Then $State = BitOR($State, 8)
    If GUICtrlRead($CB_Start + 5) = 1 Then $State = BitOR($State, 16)
    If GUICtrlRead($CB_Start + 6) = 1 Then $State = BitOR($State, 32)
    GUICtrlSetData($hState, "State: " & $State)
    GUICtrlSetData($LB_Start + 1, "BitAnd($State, 1): " & BitAND($State, 1))
    GUICtrlSetData($LB_Start + 2, "BitAnd($State, 2): " & BitAND($State, 2))
    GUICtrlSetData($LB_Start + 3, "BitAnd($State, 4): " & BitAND($State, 4))
    GUICtrlSetData($LB_Start + 4, "BitAnd($State, 8): " & BitAND($State, 8))
    GUICtrlSetData($LB_Start + 5, "BitAnd($State, 16): " & BitAND($State, 16))
    GUICtrlSetData($LB_Start + 6, "BitAnd($State, 32): " & BitAND($State, 32))
    EndIf
    WEnd

    [/autoit]

    lgE

  • Schleifenproblem while, do until

    • eukalyptus
    • 24. März 2009 um 09:11

    Oh,
    man kann bei Exitloop Levels mitgeben und somit aus mehreren Scheifen gleichzeitig aussteigen?!?
    Warum check ich das erst jetzt - hätte mir manchmal etwas Arbeit erspart ;)

    ThxE

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™