Avatar billede angelenglen Nybegynder
11. september 2004 - 01:04 Der er 5 kommentarer og
2 løsninger

"fang musen" hvordan?

jeg kunne godt tænke mig at lave et program, der kunne holde musen fanget indenfor en given firkant på skærmen.

Det der er den overordnede mening med programmet, er at jeg vil kunne holde musen indenfor et lille område, så den ikke kan flytte sig derfra. Derved ville jeg kunne benytte musen som en slags fjernbetjening.

Men jeg har ikke forstand på at flytte musen, overvåge musens position osv.

Jeg havde tænkt mig at når man fx trykke på en command-button, så hopper musen ind i det angivne areal, og er der "låst" indtil der fx tastes Esc eller en anden tastekombination?

-problemet er så, at man jo skal kunne klikke på programmet der ligger inden i arealet (i dette tilfælde "kanal op" knappen på mit TV-Tuner program) - men ved klik dér, mister mus-lås-programmet focus, og derfor ville det blive svært at kunne bruge en tast som fx esc til at afbryde den.. idéer til hvad der her kunne gøres er velkomne.

håber i forstår hvad jeg mener, og kan hjælpe mig med hvad jeg kan gøre.
Avatar billede over-load Nybegynder
11. september 2004 - 19:47 #1
jeg har fundet et eksempel der måske kan hjælpe dig :)

http://www.t0b1a5.person.dk/Mouse.zip
Avatar billede sjh Nybegynder
13. september 2004 - 08:34 #2
Så må den her lige være noget for dig ;)


' --------------- Form1 ---------------
' HUSK Command1 og Command2
Option Explicit

Private Type RECT
        Left  As Long
        Top    As Long
        Right  As Long
        Bottom As Long
End Type

Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hWnd As Long, lprect As RECT) As Long
Private Declare Function ClipCursor Lib "user32" (lprect As Any) As Long

Public Function ClipCursorOn(hWnd As Long)
Dim ControlRect As RECT
  GetWindowRect hWnd, ControlRect
  ClipCursor ControlRect
End Function

Public Function ClipCursorOff()
Dim ScreenRect As RECT
  GetWindowRect GetDesktopWindow(), ScreenRect
  ClipCursor ScreenRect
End Function

Private Sub Command1_Click()
  Call ClipCursorOn(Me.hWnd)
End Sub

Private Sub Command2_Click()
  Call ClipCursorOn(Command1.hWnd)
End Sub

Private Sub Form_Unload(Cancel As Integer)
  Call ClipCursorOff
End Sub
' --------------- Form1 ---------------
Avatar billede angelenglen Nybegynder
13. september 2004 - 10:11 #3
over-load's link kan jeg muligvis modificere til mit behov, men det du skriver, sjh, ser også interessant ud. jeg må lige kigge på det iaften når jeg kommer fra arbejde.

btw: hvad gør det?
Avatar billede sjh Nybegynder
13. september 2004 - 18:17 #4
Det sørgeflor at musen kun kan bevæge sig inden for et lille område fx.

Call ClipCursorOn(Form1.hWnd) ;)
Avatar billede sjh Nybegynder
16. september 2004 - 10:50 #5
angelenglen < sker der noget ;)
Avatar billede angelenglen Nybegynder
16. september 2004 - 10:52 #6
sorry, har haft ret travlt på arbejdet de sidste par dage, så jeg har ikke lige fået kigget på det. men jeg regner med at se på det i weekenden.
Avatar billede angelenglen Nybegynder
09. december 2004 - 15:49 #7
det virkede ikke helt, men dit svar i et af mine andre spørgsmål hjalp mig med dette spørgsmål. -Derfor får du halvdelen af points'ne
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