Page 1 sur 1

[..] Cliquer en tâche de fond ?

Posté : sam. 13 juin 2009 17:54
par spik96
Bonjour.

Ce serait pour savoir comment cliquer en tâche de fond. Pour l'instant je sais faire un clic mais on perd le contrôle sur la souris, peut-on pouvoir laisser la fenêtre sur laquelle on clique dans la barre pendant qu'on fait autre chose (aller dans les dossiers par exemple)

Meric d'avance.

Re: [..] Cliquer en tâche de fond ?

Posté : lun. 27 juil. 2009 16:37
par fanatick
Cela m'interesse aussi, si quelqu'un pouvais nous le dire....

Re: [..] Cliquer en tâche de fond ?

Posté : lun. 27 juil. 2009 17:29
par Iste

Code : Tout sélectionner

Func _MouseClickPlus($Window, $Button = "left", $X = "", $Y = "", $Clicks = 1)
    Local $MK_LBUTTON = 0x0001
    Local $WM_LBUTTONDOWN = 0x0201
    Local $WM_LBUTTONUP = 0x0202

    Local $MK_RBUTTON = 0x0002
    Local $WM_RBUTTONDOWN = 0x0204
    Local $WM_RBUTTONUP = 0x0205

    Local $WM_MOUSEMOVE = 0x0200

    Local $i = 0

    Select
        Case $Button = "left"
            $Button = $MK_LBUTTON
            $ButtonDown = $WM_LBUTTONDOWN
            $ButtonUp = $WM_LBUTTONUP
        Case $Button = "right"
            $Button = $MK_RBUTTON
            $ButtonDown = $WM_RBUTTONDOWN
            $ButtonUp = $WM_RBUTTONUP
    EndSelect

    If $X = "" Or $Y = "" Then
        $MouseCoord = MouseGetPos()
        $X = $MouseCoord[0]
        $Y = $MouseCoord[1]
    EndIf

    For $i = 1 To $Clicks
        DllCall("user32.dll", "int", "SendMessage", _
                "hwnd", WinGetHandle($Window), _
                "int", $WM_MOUSEMOVE, _
                "int", 0, _
                "long", _MakeLong($X, $Y))

        DllCall("user32.dll", "int", "SendMessage", _
                "hwnd", WinGetHandle($Window), _
                "int", $ButtonDown, _
                "int", $Button, _
                "long", _MakeLong($X, $Y))

        DllCall("user32.dll", "int", "SendMessage", _
                "hwnd", WinGetHandle($Window), _
                "int", $ButtonUp, _
                "int", $Button, _
                "long", _MakeLong($X, $Y))
    Next
EndFunc  ;==>_MouseClickPlus

Func _MakeLong($LoWord, $HiWord)
    Return BitOR($HiWord * 0x10000, BitAND($LoWord, 0xFFFF))
EndFunc  ;==>_MakeLong
Je ne retrouve pas la source dsl, cherchez sur le forum anglo si vous la voulez