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

  • Suchfunktion in meine GUI integrieren

    • BugFix
    • 25. Mai 2014 um 17:13

    Vielleicht auch von Interesse dafür: IntelliSenseBox

  • Endlosschleife beginnt nicht

    • BugFix
    • 20. Mai 2014 um 14:07
    Zitat von AspirinJunkie

    Kann man mit For-In in AutoIt eine Endlosschleife basteln?


    Verrückter Gedanke :D - ich habe noch keinen sinnvollen Ansatz gefunden. Aber ich grübel auch mal ein bischen.

  • Endlosschleife beginnt nicht

    • BugFix
    • 20. Mai 2014 um 12:56
    Zitat von kenny77

    Endlosschleife beginnt nicht


    Du hast in deinem Code ja auch keine Schleife drin. ;)
    Mögliche Schleifen sind:
    Do-Until
    While-WEnd
    For-In
    For-Next

    Schau mal in die Hilfe dazu.

  • Viele Controls sinnvoll unterbingen

    • BugFix
    • 20. Mai 2014 um 12:27

    Konzepte sind natürlich stark vom eigenen Geschmack abhängig.
    Mir persönlich gefällt nicht, wenn soviele Slider vorhanden sind. Ich bevorzuge Lösungen dieser Art:
    - jeder Parameter erhält einen Button mit Style zum Einrasten
    - auf dem Button ist der aktuelle Wert sichtbar
    - wird der Button betätigt (könnte man optisch noch aufpeppen, indem man dann einen z.B. roten Rahmen drumlegt), läßt sich der Wert ändern über:
    - ein Paar Plus-/Minus- Schaltflächen unterhalb der Parameterbutton
    Dann hast du schon gewaltig an Platz eingespart und siehst trotzdem alles auf einen Blick.
    Alternativ zu den Button kannst du auch Label verwenden oder jedes andere Control, das einen Klick verwertet. ;)

  • Textfile ins Array

    • BugFix
    • 20. Mai 2014 um 11:38

    Brauchst du bei der einfachen Struktur nicht erst in ein Array lesen und dann splitten. Kannst du mit RegExp in ein 1D-Array schreiben:

    [autoit]

    ;~ $sText = FileRead('Deine.Datei')

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

    $sText = _
    "vorname1|nachname1" & @CRLF & _
    "vorname2|nachname2" & @CRLF & _
    "vorname3|nachname3" & @CRLF

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

    $aText = StringRegExp($sText, '(.+)\|(.+)', 3)
    _ArrayDisplay($aText) ; == Index gerade + FolgeIndex bilden immer ein Paar (0 & 1, 2 & 3 ...)

    [/autoit]
  • In Excel Variable finden?

    • BugFix
    • 19. Mai 2014 um 19:03

    dirkrid: Also so wird das nichts. Bröckchen für Bröckchen kommst du rüber mir dem, was du machst. Wir können dir nicht helfen, wenn du immer nur einen Teil deines Problems schilderst. Selbstverständlich gehört das Beschaffen der Daten auch zum Problem. Also nu mal Butter bei die Fische..

  • In Excel Variable finden?

    • BugFix
    • 19. Mai 2014 um 16:58
    Zitat von dirkrid

    und der FF.au3 UDF


    Jetzt wird es ganz verzwickt. Wozu brauchst du denn hierbei eine Browser-UDF? Oder ist da noch ein Teil, den du bisher nicht beschrieben hast?

  • In Excel Variable finden?

    • BugFix
    • 19. Mai 2014 um 14:59
    Zitat von dirkrid

    die Daten werden mit iMacros von rohdaten.csv abgelesen und in ergebnis.csv eingetragen.


    Und warum nimmst du dafür iMacros? Verwende doch gleich AutoIt und übertrage die Daten genau so, wie du sie brauchst.
    Und um dir dabei zu helfen, solltest du anhand der Rohdaten mal kurz aber präzise erläutern, wo sich diese Daten in der Ergebnis-Datei wiederfinden sollen und anhand welcher Kriterien eine Auswahl zu treffen ist.

  • Prüfen ob sich 2 Grafiken überlagern

    • BugFix
    • 18. Mai 2014 um 16:56

    Bsp.:

    Spoiler anzeigen
    [autoit]

    #include <WinApi.au3>

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

    Global $tRect1 = DllStructCreate("int Left;int Top;int Right;int Bottom")
    Global $tRect2 = DllStructCreate("int Left;int Top;int Right;int Bottom")

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

    ; Grafik 1
    $left1 = 10
    $top1 = 10
    $right1 = 90 ; left + width
    $bottom1 = 60 ; top + heighth

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

    ; Grafik 2
    $left2 = 85
    $top2 = 55
    $right2 = 135 ; left + width
    $bottom2 = 105 ; top + heighth

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

    _WinAPI_SetRect($tRect1, $left1, $top1, $right1, $bottom1)
    _WinAPI_SetRect($tRect2, $left2, $top2, $right2, $bottom2)

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

    $ret = _WinAPI_IntersectRect($tRect1, $tRect2)
    If Not @error Then
    ConsoleWrite('Schnittmenge:' & @LF & _WinAPI_GetRectValue($ret) & @LF)
    Else
    ConsoleWrite('Keine Schnittmenge' & @LF)
    EndIf

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

    ;===============================================================================
    ; Function Name: _WinAPI_SetRect(ByRef $tRECT, $X1, $Y1, $X2, $Y2)
    ; Description: Befüllt eine RECT-Struktur in einem Aufruf mit Werten
    ; Parameter(s): $tRECT RECT-Struktur
    ; $X1, $Y1, $X2, $Y2 Werte des Rectangle
    ; Return Value(s): Erfolg <> 0
    ; Fehler 0 set @error 1-keine Struktur übergeben
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;===============================================================================
    Func _WinAPI_SetRect(ByRef $tRECT, $X1, $Y1, $X2, $Y2)
    If Not IsDllStruct($tRECT) Then Return SetError(1,0,0)
    Local $ret = DllCall("user32", 'long', 'SetRect', 'ptr', DllStructGetPtr($tRECT), 'long', $X1, 'long', $Y1, 'long', $X2, 'long', $Y2)
    If @error > 0 Then Return SetError(1,@error,0)
    Return $ret[0]
    EndFunc ;==>_WinAPI_SetRect

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

    ;===============================================================================
    ; Function Name: _WinAPI_GetRectValue(ByRef $tRECT, $bArray=False)
    ; Description: Gibt die Werte einer RECT-Struktur als String(Standard) od. Array zurück
    ; Parameter(s): $tRECT RECT-Struktur, die gelesen werden soll
    ; $fArray Rückgabetyp: False(Standard)=String, True=Array
    ; Return Value(s): Erfolg Werte der RECT-Struktur
    ; Fehler 0 set @error 1-keine Struktur übergeben
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;===============================================================================
    Func _WinAPI_GetRectValue(ByRef $tRECT, $fArray=False)
    If Not IsDllStruct($tRECT) Then Return SetError(1,0,0)
    Local $sOut = _
    DllStructGetData($tRECT, 1) & ',' & _
    DllStructGetData($tRECT, 2) & ',' & _
    DllStructGetData($tRECT, 3) & ',' & _
    DllStructGetData($tRECT, 4)
    If $fArray Then Return StringSplit($sOut, ',', 2)
    Return $sOut
    EndFunc ;==>_WinAPI_GetRectValue

    [/autoit]


    _WinAPI_IntersectRect() ist inzwischen Bestandteil der WinAPI, brauchst du also nicht extra die Funktion.

  • Prüfen ob sich 2 Grafiken überlagern

    • BugFix
    • 18. Mai 2014 um 14:29

    Wenn es zwei rechteckige Grafiken sind, kannst du die Koordinaten in Rectangle packen und vergleichen.

    Spoiler anzeigen
    [autoit]

    ;===============================================================================
    ; Function Name: _WinAPI_IntersectRect(ByRef $Src1Rect, ByRef $Src2Rect)
    ; Description: Ermittelt Schnittmengen zweier RECT-Strukturen
    ; Parameter(s): $Src1Rect, $Src2Rect RECT-Strukturen aus denen Schnittmengen festgestellt werden sollen
    ; Return Value(s): Erfolg RECT-Struktur der Schnittmenge
    ; Fehler 0 set @error 1-keine Struktur(en) übergeben
    ; 2-Dll-Fehler (s. @extended)
    ; 3-keine Schnittmenge
    ; Author(s): BugFix ([email='bugfix@autoit.de'][/email])
    ;===============================================================================
    Func _WinAPI_IntersectRect(ByRef $Src1Rect, ByRef $Src2Rect)
    If (Not IsDllStruct($Src1Rect)) Or (Not IsDllStruct($Src2Rect)) Then Return SetError(1,0,0)
    Local $DestRect = DllStructCreate("int Left;int Top;int Right;int Bottom")
    Local $ret = DllCall("user32", "int", "IntersectRect", "ptr", DllStructGetPtr($DestRect), "ptr", DllStructGetPtr($Src1Rect), "ptr", DllStructGetPtr($Src2Rect))
    If @error > 0 Then Return SetError(2,@error,0)
    If $ret[0] > 0 Then
    Return $DestRect
    Else
    Return SetError(3,0,0)
    EndIf
    EndFunc ;==>_WinAPI_IntersectRect

    [/autoit]
  • Funktion Exit umleiten?

    • BugFix
    • 18. Mai 2014 um 10:33

    Klick mal drauf:

    [autoit]

    OnAutoItExitRegister

    [/autoit]
  • ArrayMore.au3

    • BugFix
    • 17. Mai 2014 um 09:22
    Zitat von Bitnugger

    Bei mir funktioniert _Array2DSortFree() leider auch nicht, bekomme aber auch keine Fehlermeldung (@error = 0).


    OK, schaue es mir die Tage mal an.
    Was die anderen angesprochenen Punkte angeht: Ich hatte damals viele Versionen getestet, kann also sein, dass einige Variablen dabei "auf der Strecke blieben" und ich einfach vergaß sie zu löschen. Die anderen Sachen waren Änderungen in der Namensgebung, die ich zwar in den Funktionen ausgeführt - in der Beschreibung aber vergessen hatte. ;)

  • TimeStamp - erweitert zu kleiner Versionsverwaltung für (.au3 und .lua) alle Typen

    • BugFix
    • 16. Mai 2014 um 19:54

    - Aktuelle Version 1.2
    - Änderung in der Darstellung
    - Ordner erstellen mit shell.dll
    - inkl. Programm zum Konvertieren alter TimeStamps auf neue Version
    s. Start-Post

  • Immer mit neuer Seite in Word-Dokument beginnen - wie Seitenumbruch in Word erreichen

    • BugFix
    • 16. Mai 2014 um 09:48

    Bitte im Startpost das Präfix auf "gelöst" setzen.

  • Progressbar OCX plötzlich unbrauchbar, Subscript used on non-accessible variable

    • BugFix
    • 16. Mai 2014 um 09:38

    Das Array wird erstellt beim generieren der Progressbar, dieser Arrayname existiert nur als Parametername innerhalb der Funktionen - übergeben wird ByRef das Array aus der Rückgabe der Funktion

    _GuiCtrlCreateOCXProgress
    [autoit]

    Func _GuiCtrlCreateOCXProgress($x, $y, $width, $height, $Scrolling = 0, $Orientation = 0)
    Dim $ar[2]
    $ar[0] = ObjCreate("Proyecto2.XP_ProgressBar")
    If @error Then Return SetError(1,0,0)
    $ar[0].Scrolling = $scrolling
    $ar[0].Orientation = $Orientation
    $ar[1] = GUICtrlCreateObj($ar[0],$x,$y,$width,$height)
    Return $ar
    EndFunc

    [/autoit]

    Setze in dieser Funktion mit dem Debuggen an - prüfe jeden Befehl auf Erfolg.

  • Progressbar OCX plötzlich unbrauchbar, Subscript used on non-accessible variable

    • BugFix
    • 16. Mai 2014 um 09:19

    Ohne mir das im Detail anzusehen: Die Fehlermeldung sagt dir, dass $ProgressArray kein Array ist (oder gar nicht existiert). Denn der Fehler tritt auf beim Versuch auf ein Index-Element dieser Variablen zuzugreifen. Also setze an dieser Stelle mit der Fehlersuche an. Gehe Schritt für Schritt rückwärts zu der Stelle an der dieses Array erstellt werden soll/muß. Dort geht was daneben.

  • Dictionary übergeben ByRef Problem

    • BugFix
    • 16. Mai 2014 um 09:15

    Wenn ich mich recht erinnere, gab es damals eine Beta, die eine derartige Syntax erlaubte. Imho ist das aber keine derzeit gültige Syntax.

  • TreeView per Klick auslesen

    • BugFix
    • 15. Mai 2014 um 19:37

    Verbinde eine Funktion mit $GUI_EVENT_PRIMARYUP. Darin fragst du das geklickte (selektierte) Item ab - mit _GUICtrlTreeView_GetSelection(). Mit _GUICtrlTreeView_GetText() kannst du dir den Text des Item ausgeben lassen.

  • ToolTipMove - UDF

    • BugFix
    • 15. Mai 2014 um 14:12

    Ob man sowas tatsächlich braucht - darüber läßt sich sicher streiten :D
    Im Forum gab es diese Fragestellung und ich habe das nun in eine UDF gepackt: ToolTip per Maus verschieben.


    Edit 16.05.2014: Bsp. erweitert

    ToolTipMove.au3 (v.01)
    [autoit]

    #Region - TimeStamp
    ; 2014-05-15 13:55:54 v 0.1
    #EndRegion - TimeStamp

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

    #cs =========================================================== Funktionen =====

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

    _TTMove_StartUp()
    Initialisiert die UDF

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

    _TTMove_ShutDown() ( optional )
    Freigeben der Ressourcen - automatisch bei Programmende

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

    _TTMove_RegisterTip()
    Registrieren eines ToolTips für die UDF

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

    _TTMove_UnRegisterTip()
    ToolTip aus der Registrierung entfernen

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

    ==================================================================================

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

    #ce

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

    #include-once
    #include <WinAPI.au3>
    #include <WindowsConstants.au3>

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

    OnAutoItExitRegister('__TTMove_Exit')
    Global Const $__HC_ACTION = 0

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

    Global $__oTTTitle
    Global $__hStub_MouseProc
    Global $__hmod
    Global $__hHook
    Global $fLeftPressDown, $fMove

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

    Func _TTMove_StartUp()
    $__oTTTitle = ObjCreate('Scripting.Dictionary')
    $__hStub_MouseProc = DllCallbackRegister("__TTMove_MouseProc", "long", "int;wparam;lparam")
    $__hmod = _WinAPI_GetModuleHandle(0)
    $__hHook = _WinAPI_SetWindowsHookEx($WH_MOUSE_LL, DllCallbackGetPtr($__hStub_MouseProc), $__hmod)
    $fLeftPressDown = False
    $fMove = False
    EndFunc

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

    Func _TTMove_ShutDown()
    $__oTTTitle = 0
    $__hmod = 0
    __TTMove_Exit()
    EndFunc

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

    Func _TTMove_RegisterTip($_sTitle)
    If Not $__oTTTitle.Exists($_sTitle) Then
    $__oTTTitle.Add($_sTitle, 1)
    Return 1
    Else
    Return 0
    EndIf
    EndFunc

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

    Func _TTMove_UnRegisterTip($_sTitle)
    If $__oTTTitle.Exists($_sTitle) Then
    $__oTTTitle.Remove($_sTitle)
    Return 1
    Else
    Return 0
    EndIf
    EndFunc

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

    ; == internal Functions

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

    Func __TTMove_GetHwnd()
    For $tip In $__oTTTitle.Keys
    If WinExists($tip) Then
    Return WinGetHandle($tip)
    EndIf
    Next
    Return 0
    EndFunc

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

    Func __TTMove_MouseProc($nCode, $wParam, $lParam)
    Local $event, $info, $iX, $iY
    $info = DllStructCreate("int X;int Y;dword mouseData;dword flags;dword time;ulong_ptr dwExtraInfo", $lParam)
    $iX = DllStructGetData($info, 1)
    $iY = DllStructGetData($info, 2)
    $mouseData = DllStructGetData($info, 3)
    If $nCode < 0 Then Return _WinAPI_CallNextHookEx($__hHook, $nCode, $wParam, $lParam)
    If $nCode = $__HC_ACTION Then
    Switch $wParam
    Case $WM_MOUSEMOVE
    __TTMove_MoveWnd(__TTMove_GetHwnd(), $iX, $iY)
    Case $WM_LBUTTONDOWN
    If __TTMove_MoveWnd(__TTMove_GetHwnd(), $iX, $iY, True) = 1 Then $fLeftPressDown = True
    Case $WM_LBUTTONUP
    If __TTMove_MoveWnd(__TTMove_GetHwnd(), $iX, $iY) = 1 Then
    $fLeftPressDown = False
    $fMove = False
    EndIf
    EndSwitch
    EndIf
    Return _WinAPI_CallNextHookEx($__hHook, $nCode, $wParam, $lParam)
    EndFunc

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

    Func __TTMove_MoveWnd($_hToolTip, $_x, $_y, $_fSet=False)
    If $_hToolTip = 0 Then Return 0
    Local $aPos = WinGetPos($_hToolTip)
    Local Static $xLast, $yLast
    If $_fSet Then
    If $_x < $aPos[0] Or $aPos[0]+$aPos[2] < $_x Or $_y < $aPos[1] Or $aPos[1]+$aPos[3] < $_y Then Return 0
    $xLast = $_x
    $yLast = $_y
    $fMove = True
    Return 1
    EndIf
    If Not $fMove Then Return 0
    Local $xDiff = ($_x) - ($xLast)
    Local $yDiff = ($_y) - ($yLast)
    $xLast = $_x
    $yLast = $_y
    WinMove($_hToolTip, '', $aPos[0]+($xDiff), $aPos[1]+($yDiff))
    Return 1
    EndFunc

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

    Func __TTMove_Exit()
    _WinAPI_UnhookWindowsHookEx($__hHook)
    DllCallbackFree($__hStub_MouseProc)
    EndFunc ;==>OnAutoItExit

    [/autoit]
    Beispiel
    [autoit]

    #include 'ToolTipMove.au3'

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

    HotKeySet('^!{F9}', '_exit') ; Ctrl+Alt+F9 zum Beenden
    HotKeySet('^!{F10}', '_switchTip') ; Ctrl+Alt+F10 -- wechselt zwischen Tip#1 und Tip#2
    HotKeySet('^!{F11}', '_unregister') ; Ctrl+Alt+F11 -- UnRegister Tip#1 - nur noch Tip#2 verschiebbar

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

    Global $sToolTip1 = "Das ist ein Test-Tool-Tipp [1]"
    Global $sToolTip2 = "Das ist ein Test-Tool-Tipp [2]"

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

    _TTMove_StartUp()
    _TTMove_RegisterTip($sToolTip1)
    _TTMove_RegisterTip($sToolTip2)

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

    ToolTip($sToolTip1)

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

    While True
    Sleep(50)
    WEnd

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

    Func _switchTip()
    Local Static $aTip[2] = [$sToolTip1,$sToolTip2]
    Local Static $iCurr = 0
    ToolTip('')
    $iCurr = BitXOR($iCurr,1)
    ToolTip($aTip[$iCurr])
    EndFunc

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

    Func _unregister()
    _TTMove_UnRegisterTip($sToolTip1)
    EndFunc

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

    Func _exit()
    Exit
    EndFunc

    [/autoit]

    Dateien

    ToolTipMove[0.1].au3 3,83 kB – 212 Downloads
  • Tooltip verschieben

    • BugFix
    • 15. Mai 2014 um 11:28

    Du kannst den Tooltip durch Klicken & Ziehen bewegen, indem du MouseDown / MouseMove / MouseUp verwendest um bei diesen Aktionen den ToolTip zu bewegen, wenn diese Mausaktionen auf der Tooltipfläche stattfinden:

    Spoiler anzeigen
    [autoit]

    #include <WinAPI.au3>
    #include <WindowsConstants.au3>
    OnAutoItExitRegister('OnAutoItExit')

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

    Global Const $HC_ACTION = 0
    Global $hStub_MouseProc = DllCallbackRegister("_MouseProc", "long", "int;wparam;lparam")
    Global $hmod = _WinAPI_GetModuleHandle(0)
    Global $hHook = _WinAPI_SetWindowsHookEx($WH_MOUSE_LL, DllCallbackGetPtr($hStub_MouseProc), $hmod)
    Global $fLeftPressDown = False, $fMove = False

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

    HotKeySet('^!{F9}', '_exit') ; Ctrl+Alt+F9 zum Beenden

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

    Global $fActive = False
    Global $hToolTip

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

    Global $sTitleToolTip = "Das ist ein Test" ; zwingend als Variable anlegen, um den richtigen Tooltip zu treffen

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

    ToolTip($sTitleToolTip)

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

    While True
    $hToolTip = _GetToolTipHwnd()
    If Not $fActive Then
    If $hToolTip <> 0 Then $fActive = True
    Else
    If Not $hToolTip Then $fActive = False
    EndIf
    Sleep(50)
    WEnd

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

    Func _GetToolTipHwnd()
    If WinExists($sTitleToolTip) Then
    Return WinGetHandle($sTitleToolTip)
    Else
    Return 0
    EndIf
    EndFunc

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

    Func _exit()
    Exit
    EndFunc

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

    Func _MouseProc($nCode, $wParam, $lParam)
    Local $event, $info, $iX, $iY
    $info = DllStructCreate("int X;int Y;dword mouseData;dword flags;dword time;ulong_ptr dwExtraInfo", $lParam)
    $iX = DllStructGetData($info, 1)
    $iY = DllStructGetData($info, 2)
    $mouseData = DllStructGetData($info, 3)
    If $nCode < 0 Then Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
    If $nCode = $HC_ACTION Then
    Switch $wParam
    Case $WM_MOUSEMOVE
    _ToolTipMove($iX, $iY)
    Case $WM_LBUTTONDOWN
    If _ToolTipMove($iX, $iY, True) = 1 Then $fLeftPressDown = True
    Case $WM_LBUTTONUP
    If _ToolTipMove($iX, $iY) = 1 Then
    $fLeftPressDown = False
    $fMove = False
    EndIf
    EndSwitch
    EndIf
    Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
    EndFunc

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

    Func _ToolTipMove($_x, $_y, $_fSet=False)
    If $hToolTip = 0 Then Return 0
    Local $aPos = WinGetPos($hToolTip)
    Local Static $xLast, $yLast
    If $_fSet Then
    If $_x < $aPos[0] Or $aPos[0]+$aPos[2] < $_x Or $_y < $aPos[1] Or $aPos[1]+$aPos[3] < $_y Then Return 0
    $xLast = $_x
    $yLast = $_y
    $fMove = True
    Return 1
    EndIf
    If Not $fMove Then Return 0
    Local $xDiff = ($_x) - ($xLast)
    Local $yDiff = ($_y) - ($yLast)
    $xLast = $_x
    $yLast = $_y
    WinMove($hToolTip, '', $aPos[0]+($xDiff), $aPos[1]+($yDiff))
    Return 1
    EndFunc

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

    Func OnAutoItExit()
    _WinAPI_UnhookWindowsHookEx($hHook)
    DllCallbackFree($hStub_MouseProc)
    EndFunc ;==>OnAutoItExit

    [/autoit]

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™