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

Beiträge von Andy

  • Yannic stellt sich vor ;)

    • Andy
    • 21. Oktober 2009 um 12:47

    Die Größenbeschränkunge aus meiner Hilfedatei :

    Spoiler anzeigen
    Zitat

    15. Wo liegen die derzeitigen technischen Grenzen von AutoIt v3?
    Hier sind die technischen Limitierungen von AutoIt v3. Bedenke, dass manche Begrenzungen theoretischer Natur sind und du sie möglicherweise aufgrund zuvor auftretender Speicher- oder Performanceprobleme gar nicht erreichen kannst.


    Maximale Länge einer einzelnen Skriptzeile: 4.095 Zeichen
    Maximale Länge eines Strings: 2.147.483.647 Zeichen

    Wertebereich (Fleißkommazahlen (floating point)): 1.7E–308 bis 1.7E+308 mit 15 Stellen Genauigkeit
    Wertebereich (Ganzzahlen (integer)): 64-bit vorzeichenbehafteter Integer
    Hexadezimalzahlen: 32-bit vorzeichenbehafteter Integer (0x80000000 bis 0x7FFFFFFF)

    Arrays: Ein Maximum von 64 Dimensionen und/oder ein Maximum von 16 Millionen Elementen
    Maximale Tiefe rekursiver Funktionsaufrufe: 5100 Level

    Gleichzeitig geöffnete Dateien: 64
    Gleichzeitig aktive HotKeys: 64

    Maximale Anzahl gleichzeitig benutzter Variablen: unlimitiert
    Maximale Anzahl benutzerdefinierter Funktionen: unlimitiert

    Maximale Anzahl von GUI-Fenstern: unlimitiert
    Maximale Anzahl von GUI-Controls pro Fenster: 65532

    Alles anzeigen


    von einer Größenbeschränkung der Programme ist mir nichts bekannt. Habe hier Quellcodes von weit über 300kb vorliegen, das sind echte Brocken mit >3500 Zeilen Code, ich denke bis du in diese Bereiche vorgestoßen bist ist AutoIt schon die eine oder andere Version weiterentwickelt^^

  • Gute Collisionsabfrage gesucht???

    • Andy
    • 20. Oktober 2009 um 19:04

    Hi,
    hast du mal ne Mail an Frank Abbing geschrieben? Wäre die erste Anlaufstelle wenn du nicht genau weißt wie irgendetwas bei prospeed funktioniert^^
    Die Kollisionsabfragen sind ja schon in die dll integriert. Bekommst du dort Ergebnisse, bei z.B. CollideUnknown() ?

    Zitat

    Aber alle diese Funktionen sagen mir nicht wos collidiert.

    Natürlich sagen es die Funktionen, wahrscheinlich denkst du nur zu kompliziert^^

    Beispiel:
    Deine Spielfigur läuft nach rechts. CollideUnknown() meldet dir nun eine Kollision zwischen der Spielfigur und einem der Solids. Dann MUSS, da sich das Solid ja nicht bewegt, die Kollision auf der rechten Seite der Spielfigur stattgefunden haben.
    Beispiel 2:
    Die Spielfigur steht etwas links vor einer Wand. Eine Falle schiesst von einiger Entfernung von links einen Ball auf die Spielfigur. Die Spielfigur duckt sich, der Ball stösst gegen die Wand (Erkennung einer Kollision!) Aus der Richtung des Balles und der Kollision mit der Wand weisst du, dass der Ball wieder genau in die andere Richtung zurückfliegen muss. Der Ball fliegt nun in die andere Richtung und trifft die Spielfigur.Kollision! Wenn der Ball nach links fliegt, KANN DIE SPIELFIGUR NUR AUF DER RECHTEN SEITE getroffen werden!

    ciao
    Andy

  • Desktop Radio 3.9

    • Andy
    • 20. Oktober 2009 um 17:09
    Zitat

    Bei mir sind 4 (vier!!!) Programme mit einem Virus erkannt worden!

    Da wir alle mit ultimativen Glaskugeln ausgestattet sind, können wir sofort erfassen um was es dir eigentlich geht....und welche der "Programme" du überhaupt meinst...welche Viren wurden erkannt uswusf....
    Btw: in China ist ein Sack Reis umgefallen!

  • Wie transferiere ich Text in das " Percent encoding for URIs:"-Format?

    • Andy
    • 20. Oktober 2009 um 14:57
    Zitat

    Edit: UPS, zu langsam mit suchen

    mach dir nix draus, hab vorher ne halbe Stunde lang die Tante gequält...nachdem ich hier http://en.wikipedia.org/wiki/Percent-encoding gelandet war, wars ja einfach ^^

    sollte man in die Hilfe aufnehmen....

  • Wie transferiere ich Text in das " Percent encoding for URIs:"-Format?

    • Andy
    • 20. Oktober 2009 um 14:34

    Hallo,
    habe folgende Zeilen, welche mir den Text in Unicode umwandeln, wie komme ich von dort ins Percent encoding for URIs:"-Format?

    aus ß soll %C3%9F werden......laut google und http://rishida.net/scripts/uniview/conversion

    [autoit]

    $sText="ß"
    $struct=_WinAPI_MultiByteToWideChar ($sText,850) ;oder codepage 1252 ?
    $unicode_hex=(dllstructgetdata($struct,1))

    [/autoit]

    den Unicode hab ich jetzt, wie weiter?

    thx vorab
    Andy


    /edit/ habs gefunden....thx @ Prog@ndy

    Spoiler anzeigen
    [autoit]

    Func _URIEncode($sData)
    ; Prog@ndy
    Local $aData = StringSplit(BinaryToString(StringToBinary($sData,4),1),"")
    Local $nChar
    $sData=""
    For $i = 1 To $aData[0]
    ConsoleWrite($aData[$i] & @CRLF)
    $nChar = Asc($aData[$i])
    Switch $nChar
    Case 45, 46, 48-57, 65 To 90, 95, 97 To 122, 126
    $sData &= $aData[$i]
    Case 32
    $sData &= "+"
    Case Else
    $sData &= "%" & Hex($nChar,2)
    EndSwitch
    Next
    Return $sData
    EndFunc

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

    Func _URIDecode($sData)
    ; Prog@ndy
    Local $aData = StringSplit(StringReplace($sData,"+"," ",0,1),"%")
    $sData = ""
    For $i = 2 To $aData[0]
    $aData[1] &= Chr(Dec(StringLeft($aData[$i],2))) & StringTrimLeft($aData[$i],2)
    Next
    Return BinaryToString(StringToBinary($aData[1],1),4)
    EndFunc

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

    MsgBox(0, '', _URIDecode(_URIEncode("testäöü fv")))

    [/autoit]
  • MSGBOX OK-Abbrechen

    • Andy
    • 20. Oktober 2009 um 14:09

    Aus der Hilfe...

    Code
    RückgabewertErfolg:	Gibt die ID des gedrückten Buttons zurück.
    Fehler:	Gibt -1 zurück, wenn die Messagebox nach Zeitüberschreitung automatisch geschlossen wurde.
    
    
    
    
    Gedrückter Button	Rückgabewert
    OK	         1
    ABBRECHEN	 2
    ABBRECHEN	 3
    WIEDERHOLEN	 4
    IGNORIEREN	 5
    JA	         6
    NEIN	         7
    WIEDERHOLEN **	10
    WEITER **	11
    Alles anzeigen

    Ich gehe aber davon aus, daß jemand mit über 500 Posts da selbst drauf kommen kann....

  • Do Until mit 2 Statements?

    • Andy
    • 20. Oktober 2009 um 11:05

    @Vorposter

    Zitat

    AutoIt Error
    Line -1;
    Illegal text at the end of statement (one statement per line)

    sieht mir aus als ob das aus einem kompilierten Script kommt. Wieso der TE annimmt, der Fehler käme genau aus der (fehlerfreien) geposteten Zeile ist mir schleierhaft....

  • Do Until mit 2 Statements?

    • Andy
    • 20. Oktober 2009 um 10:55

    Hallo,
    funktioniert bei mir einwandfrei....
    Ggf. hast du an einer anderen Stelle im Programm einen Fehler, die kannst du z.B. durch Einfügen von Infomeldungen finden.
    In Scite unter Extras die Befehle Debug to Console/Messagebox oder den Tracelines. Wahrscheinlich ist es aber schneller, einfach das Script nicht zu compilieren sondern direkt aus Scite heraus auszuführen (F5) , Dann bist du "mittendrin statt nur dabei"^^

    BugFix
    Mach den armen Kerl nicht fertig :thumbup:
    @VERGiL
    Das ist natürlich KEIN Fehler in deinem Script....

  • Text von programminternem Fenster auslesen

    • Andy
    • 20. Oktober 2009 um 10:22
    Zitat

    Könntest du für jede meldung eine eigene Pixelchecksum erstellen, und diese mit dem jeweiligen Fehler "verknüpfen"

    Das ginge doch DAMIT einfacher...

    Mittlerweile gibt es auch OCR-Lösungen, die vielversprechend sind....

  • GDI+ Text verändern

    • Andy
    • 20. Oktober 2009 um 10:17

    Habe eine ATI Radeon Graka und bisher absolut keine Probleme damit gehabt. Wobei man auch im Blick behalten sollte, daß wir hier über Funktionen reden, die spätestens seit der Release von XP im System sitzen. Bis dato wären da sicher schwerwiegende Fehler aufgefallen....

    Zitat

    Nach der Aktualisierung der nVidia Grafiktreiber auf v6.14.11.8618 (10.06.2009) laufen die GDI+ Codes sauber unter WinXP!

    Glaubst du, das nVidea mit Absicht einen GDI+"Bug" mit dieser Treiberversion gefixt hat?

  • Run warten bis fenster kommt anschliessend exe beenden...

    • Andy
    • 20. Oktober 2009 um 10:04
    [autoit]

    while 1
    if WinExists("[CLASS:#32770]", '') then
    winclose("[CLASS:#32770]")
    exit
    endif
    WEnd

    [/autoit]
  • GDI+ Text verändern

    • Andy
    • 20. Oktober 2009 um 03:52

    wenn ich das script so starte, gibts das altbekannte geflacker und die buchstaben bewegen sich nicht
    ändere ich in zeile 58 aber in _GDIPlus_GraphicsClear($backbuffer, 0xff900000) gehts wunderbar....

  • Yannic stellt sich vor ;)

    • Andy
    • 19. Oktober 2009 um 22:50

    Hallo Yannic,
    ich würde behaupten, daß AutoIt eine Programmiersprache ist. Die Sachen, die du damit nicht machen kannst, erfordern Know-How von einem ganz anderen Kaliber :D
    Die Programme sind als EXE-Datei alleine lauffähig, brauchen also keine zusätzlichen Dateien wie bei Java oder .Net

    AutoIt ist ein Basic-Dialekt, das ist ziemlich einfach zu lernen und trotzdem sehr effektiv. Ein(ige) Tutorial befinden sich hier auf der HP, links bei den INFO-Links z.B.
    Weiterhin gibts eine deutsche Hilfe, die allermeisten Befehle sind dort mit lauffähigem Beispiel nachvollziehbar.

    Aber am einfachsten lernt man mit "learning by doing" , wenn du kein programmtechnisches Problem hast, dann mach dir eins^
    Fang mit ganz kleinen Sachen an, ein Fenster mit einigen Buttons die irgendetwas machen wenn du draufklickst....Erfolgserlebnis ftw.
    Taschenrechner sind als Projekt für den 2.Tag sehr beliebt :thumbup:

    Und ausserdem gibts noch ein Forum, da wird gerne (und meistens extrem fix) geholfen wenn man erkennen kann, dass der Frager sich schon selbst einige Gedanken gemacht hat!

    Viel Spass mit AutoIt!

    ciao
    Andy

  • WIN-Tastensperre umgehen

    • Andy
    • 19. Oktober 2009 um 22:33

    CTRL+ESC und Alt+TAB machen das normalerweise doch.....das kommt aus ner Zeit, wo es noch garkeine Tastatur mit einer Windowstaste gab....
    Heute gibts ne Windowstaste und ich hab die noch nie benutzt, grade im Gegenteil, es kotzt mich an, wenn man da mal zufällig draufkommt, daher hab ich die Taste mit Sekundenkleber "fixiert"

  • GDI+ Text verändern

    • Andy
    • 19. Oktober 2009 um 22:30

    so?

    Spoiler anzeigen
    [autoit]

    #include <GuiConstantsEx.au3>
    #include <GDIPlus.au3>

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

    Opt('MustDeclareVars', 1)
    HotKeySet("{ESC}","_func")
    HotKeySet("{F1}","_del")

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

    Local $hGUI, $hWnd, $hGraphic

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

    ; Erstellt eine GUI
    $hGUI = GUICreate("GDI+", 400, 300)
    $hWnd = WinGetHandle("GDI+")

    GUICtrlCreateLabel("F1 drücken um den Text zu löschen",10,10,200,30)

    GUISetState()

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

    ; Zeichnet eine Zeichenkette
    _GDIPlus_Startup()
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hWnd)
    _GDIPlus_GraphicsDrawString($hGraphic, "Hallo Welt", 140, 110)

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

    ; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

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

    ; Ressourcen freigeben
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_Shutdown()

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

    Func _func()
    Local $graphic
    _GDIPlus_GraphicsClear($hGraphic,0xFFFFFFFF)
    _GDIPlus_GraphicsDrawString($hGraphic, "Hallo", 140, 110)
    EndFunc

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

    func _del()
    _WinAPI_RedrawWindow($hgui)

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

    endfunc

    [/autoit]
  • Text von programminternem Fenster auslesen

    • Andy
    • 19. Oktober 2009 um 22:12
    Zitat

    Dann habe ich wohl keine Chance, den Text der Meldungen auszulesen.

    das muss nicht sein...
    Was musst du mit dem Text in den Fenstern denn anfangen? Weiterverarbeiten, auswerten?
    Kannst du mal ein Bild von so einem Fenster posten?

  • TrayIcon klicken - (Wie) Geht das?

    • Andy
    • 19. Oktober 2009 um 19:40

    ich machs damit...

    Spoiler anzeigen

    .

    [autoit]

    ;#include <MouseSetOnEvent_UDF.au3>
    #include <StructureConstants.au3>
    #include <Array.au3>
    #include <Systray.au3>

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

    #include <GUIConstantsEx.au3>
    ;#include <WindowsConstants.au3>
    #include <WinAPI.au3>
    #NoTrayIcon

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

    hotkeyset("{ESC}","_exit")

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

    $ar = _SysTrayIconCount()
    Dim $Data_Trayicons_visible[$ar][7] ;PID,titel, Prozessname, MouseposX,$mouseposY,Tooltiptext;Index

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

    ;MsgBox(0, @ScriptName, "Bitte einen doppelklick mit der linken Maustaste auf ein Icon im Traybereich ausführen, Ausgabe in der Console")
    $ar2 = _SysTrayIconPids()
    $titles = _systrayicontitles()
    ;~ _arraydisplay($titles,"titel")
    $trayproc = ""
    $m = 0
    $x = ProcessList()
    ;~ _arraydisplay($x)
    ;~ ;MsgBox(0, "", $ar)
    ;~ _ArrayDisplay($ar2)
    For $test = 0 To UBound($ar2) - 1
    For $t = 1 To UBound($x) - 1
    If $ar2[$test] = $x[$t][1] Then
    $pos = _systrayiconpos($test)
    If IsArray($pos) Then ;das icon ist sichtbar!
    $Data_Trayicons_visible[$m][0] = $ar2[$test] ;PID
    $Data_Trayicons_visible[$m][1] = $x[$t][0] ;EXE
    $Data_Trayicons_visible[$m][2] = $titles[$test];Title
    $Data_Trayicons_visible[$m][3] = $pos[0] ;x-koordinate Icon
    $Data_Trayicons_visible[$m][4] = $pos[1] ;y-Koordinate Icon
    $Data_Trayicons_visible[$m][5] = _systrayicontooltip($test); tooltiptext
    $Data_Trayicons_visible[$m][6] = $test ;Index (für z.B) Icon
    $m += 1
    $trayproc &= $x[$t][0] & @CRLF
    ExitLoop
    EndIf
    EndIf
    Next
    Next
    ReDim $Data_Trayicons_visible[$m][7] ;PID,titel, Prozessname, MouseposX,$mouseposY,Tooltiptext
    ;_ArrayDisplay($Data_Trayicons_visible)

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

    ;These constants found in the helpfile under Windows Message Codes
    Global Const $WM_MOUSEMOVE = 0x0200 ;mouse move
    Global Const $WM_MOUSEWHEEL = 0x020A ;wheel up/down
    Global Const $WM_LBUTTONDOWN = 0x0201
    Global Const $WM_LBUTTONUP = 0x0202
    Global Const $WM_RBUTTONDOWN = 0x0204
    Global Const $WM_RBUTTONUP = 0x0205
    Global Const $WM_MBUTTONDOWN = 0x0207
    Global Const $WM_MBUTTONUP = 0x0208
    Global Const $MSLLHOOKSTRUCT = $tagPOINT & ";dword mouseData;dword flags;dword time;ulong_ptr dwExtraInfo"

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

    Global $currentEvent[2]

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

    Global $iLBUTTONDOWN = 0
    Global $iRBUTTONDOWN = 0
    Global $iMBUTTONDOWN = 0
    Global $LRClickStatus = 0
    Global $RLClickStatus = 0
    Global $LRDrag = 0
    Global $RLDrag = 0
    Global $LMDrag = 0
    Global $RMDrag = 0
    Global $doubleClickTime = 400

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

    ;Register callback
    $hKey_Proc = DllCallbackRegister("_Mouse_Proc", "int", "int;ptr;ptr")
    $hM_Module = DllCall("kernel32.dll", "hwnd", "GetModuleHandle", "ptr", 0)
    $hM_Hook = DllCall("user32.dll", "hwnd", "SetWindowsHookEx", "int", $WH_MOUSE_LL, "ptr", DllCallbackGetPtr($hKey_Proc), "hwnd", $hM_Module[0], "dword", 0)

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

    $gui=guicreate("Bitte jetzt ein trayicon doppelklicken")

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

    $label=Guictrlcreatelabel("",10,10,200,200)
    WinSetOnTop($gui,"",1)
    guisetstate()

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

    While 1
    $nMsg = GUIGetMsg()
    If $currentEvent[0] = "LDClick" Then
    $mouse_x = MouseGetPos(0)
    $mouse_y = MouseGetPos(1)
    If $mouse_x > $Data_Trayicons_visible[0][3] And $mouse_y > $Data_Trayicons_visible[0][4] Then ;maus ist im traybereich
    For $i = 0 To UBound($Data_Trayicons_visible) - 2
    If $mouse_x > $Data_Trayicons_visible[$i][3] And $mouse_x < $Data_Trayicons_visible[$i + 1][3] Then ;wenn maus auf einem trayicon ist
    GUICtrlSetData($label,"Icon geklickt: " & $Data_Trayicons_visible[$i][5]&@CRLF)
    $currentEvent[0] = ""
    ExitLoop
    EndIf
    Next
    EndIf
    EndIf


    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    _Exit()
    Exit

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

    EndSwitch
    WEnd

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

    Func _Mouse_Proc($nCode, $wParam, $lParam)
    Local $info, $mouseData, $time, $timeDiff
    If $nCode < 0 Then
    $ret = DllCall("user32.dll", "long", "CallNextHookEx", "hwnd", $hM_Hook[0], _
    "int", $nCode, "ptr", $wParam, "ptr", $lParam)
    Return $ret[0]
    EndIf

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

    $info = DllStructCreate($MSLLHOOKSTRUCT, $lParam)
    $mouseData = DllStructGetData($info, 3)
    $time = DllStructGetData($info, 5)
    $timeDiff = $time - $currentEvent[1]
    Select
    Case $wParam = $WM_MOUSEMOVE
    ;Test for Drag in here
    If $currentEvent[0] <> "LDrag" Or $currentEvent[0] <> "LRDrag" Or $currentEvent[0] <> "LMDrag" Then
    If $iLBUTTONDOWN = 1 Then
    $currentEvent[0] = "LDrag"
    If $iRBUTTONDOWN = 1 Then
    $currentEvent[0] = "LRDrag"
    $LRDrag = 2
    EndIf
    EndIf
    EndIf
    If $currentEvent[0] <> "RDrag" Or $currentEvent[0] <> "RMDrag" Or $currentEvent[0] <> "LRDrag" Then
    If $iRBUTTONDOWN = 1 Then
    $currentEvent[0] = "RDrag"
    EndIf
    EndIf

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

    If $currentEvent[0] <> "MDrag" Then
    If $iMBUTTONDOWN = 1 Then
    $currentEvent[0] = "MDrag"
    $currentEvent[1] = $time
    EndIf
    EndIf

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

    If $iRBUTTONDOWN = 1 And $iMBUTTONDOWN = 1 And $currentEvent[0] <> "RMDrag" Then
    $RMDrag = 2
    $currentEvent[0] = "RMDrag"
    $currentEvent[1] = $time
    EndIf

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

    If $iLBUTTONDOWN = 1 And $iMBUTTONDOWN = 1 And $currentEvent[0] <> "LMDrag" Then
    $LMDrag = 2
    $currentEvent[0] = "LMDrag"
    $currentEvent[1] = $time
    EndIf

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

    Case $wParam = $WM_MOUSEWHEEL
    If _WinAPI_HiWord($mouseData) > 0 Then
    ;Wheel Up
    $currentEvent[0] = "WheelUp"
    $currentEvent[1] = $time
    Else
    ;Wheel Down
    $currentEvent[0] = "WheelDown"
    $currentEvent[1] = $time
    EndIf

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

    Case $wParam = $WM_LBUTTONDOWN
    ;Register Button Down, check for Right/Left
    If $currentEvent[0] = "RClick" Then
    $LRClickStatus = 1
    EndIf

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

    $iLBUTTONDOWN = 1

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

    Case $wParam = $WM_LBUTTONUP
    ;Update $iLBUTTONDOWN
    $iLBUTTONDOWN = 0
    ;Test for Right/Left Click
    If $RLClickStatus = 1 And ($timeDiff) < $doubleClickTime Then
    $currentEvent[0] = "RLClick"
    $currentEvent[1] = $time
    EndIf
    If $currentEvent[0] = "LClick" And ($timeDiff) < $doubleClickTime Then
    $currentEvent[0] = "LDClick"
    $currentEvent[1] = $time
    EndIf
    ;Test for Drops
    If $currentEvent[0] = "LDrag" Then
    $currentEvent[0] = "LDrop"
    $currentEvent[1] = $time
    EndIf

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

    If $LRDrag = 2 And $iRBUTTONDOWN = 1 Then
    $LRDrag = 1 ; Denote $LRDrag as still having one button clicked, need to register the drop on RButton up
    EndIf

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

    If $LRDrag = 1 And $iRBUTTONDOWN = 0 Then
    $currentEvent[0] = "LRDrop"
    $currentEvent[1] = $time
    $LRDrag = 0
    EndIf

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

    If $LMDrag = 2 And $iMBUTTONDOWN = 1 Then
    $LMDrag = 1 ; Denote $LMDrag as still having one button clicked, need to register the drop on MButton up
    EndIf

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

    If $LMDrag = 1 And $iMBUTTONDOWN = 0 Then
    $currentEvent[0] = "LMDrop"
    $currentEvent[1] = $time
    $LMDrag = 0
    EndIf

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

    ;Set LClick if other events haven't fired
    If $currentEvent[1] <> $time Then
    $currentEvent[0] = "LClick"
    $currentEvent[1] = $time
    EndIf

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

    ;Negate $LRClickStatus
    $RLClickStatus = 0

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

    Case $wParam = $WM_RBUTTONDOWN
    ;Register Button Down
    If $currentEvent[0] = "LClick" Then
    $RLClickStatus = 1
    EndIf
    $iRBUTTONDOWN = 1

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

    Case $wParam = $WM_RBUTTONUP
    ;Test for Left, Right, and Right Doubleclick here
    ;Update $iRBUTTONDOWN
    $iRBUTTONDOWN = 0
    ;Test for Right/Left Click
    If $LRClickStatus = 1 And ($timeDiff) < $doubleClickTime Then


    $currentEvent[0] = "LRClick"
    $currentEvent[1] = $time
    EndIf
    If $currentEvent[0] = "RClick" And ($timeDiff) < $doubleClickTime Then
    $currentEvent[0] = "RDClick"
    $currentEvent[1] = $time
    EndIf
    ;Test for Drops
    If $currentEvent[0] = "RDrag" Then
    $currentEvent[0] = "RDrop"
    $currentEvent[1] = $time
    EndIf

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

    If $LRDrag = 2 And $iLBUTTONDOWN = 1 Then
    $LRDrag = 1 ; Denote $LRDrag as still having one button clicked, need to register the drop on RButton up
    EndIf

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

    If $LRDrag = 1 And $iLBUTTONDOWN = 0 Then
    $currentEvent[0] = "LRDrop"
    $currentEvent[1] = $time
    $LRDrag = 0
    EndIf

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

    If $RMDrag = 2 And $iMBUTTONDOWN = 1 Then
    $RMDrag = 1 ; Denote $LMDrag as still having one button clicked, need to register the drop on MButton up
    EndIf

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

    If $RMDrag = 1 And $iMBUTTONDOWN = 0 Then
    $currentEvent[0] = "RMDrop"
    $currentEvent[1] = $time
    $RMDrag = 0
    EndIf

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

    ;Set LClick if other events haven't fired
    If $currentEvent[1] <> $time Then
    $currentEvent[0] = "RClick"
    $currentEvent[1] = $time
    EndIf

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

    ;Negate $LRClickStatus
    $LRClickStatus = 0

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

    Case $wParam = $WM_MBUTTONDOWN
    ;Register Button Down
    $iMBUTTONDOWN = 1

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

    Case $wParam = $WM_MBUTTONUP
    ;Test for Middle Double Click here
    ;Update $iRBUTTONDOWN
    $iMBUTTONDOWN = 0
    ;Test for Right/Left Click
    If $currentEvent[0] = "MClick" And ($timeDiff) < $doubleClickTime Then
    $currentEvent[0] = "MDClick"
    $currentEvent[1] = $time
    EndIf
    ;Test for Drops
    If $currentEvent[0] = "MDrag" Then
    $currentEvent[0] = "MDrop"
    $currentEvent[1] = $time
    EndIf

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

    If $LMDrag = 2 And $iLBUTTONDOWN = 1 Then
    $LMDrag = 1 ; Denote $LRDrag as still having one button clicked, need to register the drop on RButton up
    EndIf

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

    If $LMDrag = 1 And $iLBUTTONDOWN = 0 Then
    $currentEvent[0] = "LMDrop"
    $currentEvent[1] = $time
    $LMDrag = 0
    EndIf

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

    If $RMDrag = 2 And $iRBUTTONDOWN = 1 Then
    $RMDrag = 1 ; Denote $LMDrag as still having one button clicked, need to register the drop on MButton up
    EndIf

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

    If $RMDrag = 1 And $iRBUTTONDOWN = 0 Then
    $currentEvent[0] = "RMDrop"
    $currentEvent[1] = $time
    $RMDrag = 0
    EndIf

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

    ;Set MClick if other events haven't fired
    If $currentEvent[1] <> $time Then
    $currentEvent[0] = "MClick"
    $currentEvent[1] = $time
    EndIf

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

    EndSelect

    ;ConsoleWrite($currentEvent[0] & @CRLF & $currentEvent[1]&@crlf)
    ;GUICtrlSetData($Label1, $currentEvent[0] & @CRLF & $currentEvent[1])

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

    $ret = DllCall("user32.dll", "long", "CallNextHookEx", "hwnd", $hM_Hook[0], _
    "int", $nCode, "ptr", $wParam, "ptr", $lParam)
    Return $ret[0]
    EndFunc ;==>_Mouse_Proc

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

    Func _Exit()
    DllCall("user32.dll", "int", "UnhookWindowsHookEx", "hwnd", $hM_Hook[0])
    $hM_Hook[0] = 0
    DllCallbackFree($hKey_Proc)
    $hKey_Proc = 0
    EndFunc ;==>OnAutoItExit

    [/autoit]


    mausposition abfragen und man hat das icon bzw Programm, was unter dem Mauszeiger ist...

    /*EDIT*/ Hoppala, falsches Script gepostet....das ist das richtige^^

  • GDI+ Text verändern

    • Andy
    • 19. Oktober 2009 um 19:23

    @simon
    Um die ursprüngliche Stelle, an der du jetzt "drübergemalt" hast wiederherzustellen, musst du vorher den ursprünglichen Bildausschnitt sichern und (wenn du den Text z.B. ändern willst) diesen dann wieder herstellen.

  • Was ist ein "sichtbares" Fenster, bzw wie finde ich heraus ob ein Fenster von einem anderen verdeckt ist?

    • Andy
    • 19. Oktober 2009 um 17:28

    Oscar , frag mich mal, warum ich das Childfenster nicht benutze. In einer der früheren Scriptversionen hatte ich das so, gab aber aus irgendwelchen Gründen Probleme....

    [autoit]

    GUIRegisterMsg($WM_ACTIVATE, "_WM_ACTIVATE")

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

    Func _WM_ACTIVATE($hWnd, $msg, $wParam, $lParam)
    Local $status = BitAND($wParam, 0x0000FFFF)
    If $status And $hWnd = $Gui Then
    winactivate($anleitung)
    winactivate($gui)
    EndIf
    EndFunc ;==>_WM_ACTIVATE

    [/autoit]

    so funktioniert alles wie gehabt, im Prinzip die "childwindow"-funktion

    Habe auch mit der Z-Anordnung der Fenster rumgespielt, vgl.

    [autoit]

    _WinAPI_SetWindowPos

    [/autoit]

    wie üblich gibts 325 Methoden um auf ein und dasselbe Ergebnis zu kommen.

    Jetzt weiss ich aber wenigstens. wie ich herausfinde in welcher"Ebene" bzw. Tiefe oder Position (Z-Anordnung ist geil übersetzt^^) sich ein Fenster befindet.

  • Was ist ein "sichtbares" Fenster, bzw wie finde ich heraus ob ein Fenster von einem anderen verdeckt ist?

    • Andy
    • 19. Oktober 2009 um 16:46
    Zitat

    $GUI_EVENT_RESTORE

    ...der isses, vielen Dank!^^

    was aber immer noch nicht die Frage beantwortet wie man herausfinden kann, ob ein Fenster von einem anderen verdeckt ist....

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™