Avatar billede Slettet bruger
14. januar 2003 - 23:27 Der er 9 kommentarer og
1 løsning

En svær en!

Er der en der kan hjælpe mig med at simulere muse klik på et bestemt kordinat i en form.
Det skal være sådan at det kan virke i minimeret tilstand.

T2C
Avatar billede _darkstar_ Nybegynder
14. januar 2003 - 23:28 #1
Det lyder snarere som om at du har brug for en lille agent, som gør det for dig.
Avatar billede Slettet bruger
14. januar 2003 - 23:30 #2
Nope det har jeg ikke! :-)
Jeg har styr på museklikket men jeg ved ik lige hvordan man får fat i en forms kordinat.

T2C
Avatar billede sjh Nybegynder
15. januar 2003 - 00:19 #3
noget i stil med dette:

Option Explicit

Private Declare Function SetCursorPos& Lib "user32.dll" (ByVal x As Long, ByVal Y As Long)
Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)

Const MOUSEEVENTF_LEFTDOWN = &H2
Const MOUSEEVENTF_LEFTUP = &H4
Const MOUSEEVENTF_MIDDLEDOWN = &H20
Const MOUSEEVENTF_MIDDLEUP = &H40
Const MOUSEEVENTF_MOVE = &H1
Const MOUSEEVENTF_ABSOLUTE = &H8000
Const MOUSEEVENTF_RIGHTDOWN = &H8
Const MOUSEEVENTF_RIGHTUP = &H10

Private Sub Command1_Click()
Dim cButt, dwEI As Long
  SetCursorPos 10, 10
  mouse_event MOUSEEVENTF_LEFTDOWN Or MOUSEEVENTF_LEFTUP, 0&, 0&, cButt, dwEI
End Sub
Avatar billede skumbaq Nybegynder
15. januar 2003 - 13:27 #4
#tc2
Jeg har styr på museklikket men jeg ved ik lige hvordan man får fat i en forms kordinat.

top = form.top
left = form.left
Avatar billede driis Nybegynder
15. januar 2003 - 14:18 #5
Du får vinduets koordinater med GetWindowRect:
Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long

Eksempel:
Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long

Private Sub Form_Load()
Dim R As RECT
Dim ans As Long

ans = GetWindowRect(Me.hwnd, R)
If ans = 0 Then
    MsgBox "Der opstod en fejl"
Else
    MsgBox "Vinduets koordinater er:" + vbCrLf + CStr(R.Left) + ", " + CStr(R.Top)
End If

End Sub
Avatar billede Slettet bruger
15. januar 2003 - 15:28 #6
Det er alt sammen fine forslag, men det virker bare ikke hvis man minimerer vinduet.

T2C
Avatar billede driis Nybegynder
15. januar 2003 - 15:31 #7
Du kan jo ikke klikke på (f.eks.) en knap i et vindue, der er minimeret; det kan ikke lade sig gøre da knappen så ingen koordinater har.
Avatar billede Slettet bruger
15. januar 2003 - 15:36 #8
Og det har du helt ret i, men hvordan kan man så gøre det.

T2C
Avatar billede jens_nuuk Nybegynder
16. januar 2003 - 04:03 #9
Kære t2c som driis skriver kan det det bare ikke lade sig gøre, med mindre du gemmer oplysningerne om den minimerede forms koordinater og knappers koordinater, men så skal det desuden være på en form du selv har oprettet til formålet for at det kan lade sig gøre. So whats the point. Medmindre du kan bruge sendkeys funktionen, så kan du også aktivere knapper på en minimeret form, men ikke ved hjælp af koordinater.
Avatar billede sion Nybegynder
18. januar 2003 - 17:08 #10
Det behøver da ikke gøres så svært... hvad med at bruge følgende?
Call Form_MouseDown(Button, Shift, X, Y )
-Sion
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester