Maustasten abfragen ohne Initmouse???
Maustasten abfragen ohne Initmouse???
Hallo Leute.
Kann ich die Maustasten auch ohne initmouse abfragen? Initmouse funzt ja nur über directX. Ich brauche es aber ohne directX, da es sich um ein System-/Hilfs-Tool handelt.
Danke.
Kann ich die Maustasten auch ohne initmouse abfragen? Initmouse funzt ja nur über directX. Ich brauche es aber ohne directX, da es sich um ein System-/Hilfs-Tool handelt.
Danke.
Agent_Sasori
It's not a bug - it's a feature!
http://www.StephenKalisch.de | http://www.ria-tec.com | http://www.dirsync.de
It's not a bug - it's a feature!
http://www.StephenKalisch.de | http://www.ria-tec.com | http://www.dirsync.de
hi Agent,
mfG
Tobi
Code: Alles auswählen
OpenWindow(0, 0, 0, 300 , 200, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered, "oink")
Repeat
Event = WaitWindowEvent()
Select Event
Case #WM_RBUTTONDOWN ; rechte Maustaste
Debug "#WM_RBUTTONDOWN"
Case #WM_MBUTTONDOWN ; mittlere Maustaste
Debug "#WM_MBUTTONDOWN"
Case #WM_LBUTTONDOWN ; linke Maustaste
Debug "#WM_LBUTTONDOWN"
EndSelect
Until Event = #PB_EventCloseWindowTobi
Code: Alles auswählen
Procedure DebugMouse()
Debug WindowMouseX()
Debug WindowMouseY()
EndProcedure
OpenWindow(0, 0, 0, 300 , 200, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered, "oink")
Repeat
Event = WaitWindowEvent()
Select Event
Case #WM_RBUTTONDOWN ; rechte Maustaste
Debug "#WM_RBUTTONDOWN"
DebugMouse()
Case #WM_MBUTTONDOWN ; mittlere Maustaste
Debug "#WM_MBUTTONDOWN"
DebugMouse()
Case #WM_LBUTTONDOWN ; linke Maustaste
Debug "#WM_LBUTTONDOWN"
DebugMouse()
EndSelect
Until Event = #PB_EventCloseWindow
OOOHHH Mann...
DAS ist mir jetzt peinlich.
Kenn ich alles schon. Da stand ich (mal wieder) extrem auf der langen Leitung. LOL
Admin:
Topic bitte löschen *kopfschüttel*
sorry folks für die arbeit....peitscht-mich.
DAS ist mir jetzt peinlich.
Kenn ich alles schon. Da stand ich (mal wieder) extrem auf der langen Leitung. LOL
Admin:
Topic bitte löschen *kopfschüttel*
sorry folks für die arbeit....peitscht-mich.
Agent_Sasori
It's not a bug - it's a feature!
http://www.StephenKalisch.de | http://www.ria-tec.com | http://www.dirsync.de
It's not a bug - it's a feature!
http://www.StephenKalisch.de | http://www.ria-tec.com | http://www.dirsync.de
hm...ganz so einfach ists dann im meinem prog doch nicht, weil
hier mal aus'm kopf was passiert (das ganze coding wäre zuviel)
repeat...
select windowevent()
case #pb_event_menu
select eventmenuid()
case ...
default <--- hier wirds interessant, jemand hat im menu was ausgewählt
### An dieser Stelle möchte ich wissen, ob er User, wenn er die linke Maustaste drückt, auch die rechte gedrückt hatte
ODER
### Ob der User z.b. die linke Shift gedrückt hatte
endselect
endselect....
Natürlich frage ich in der schleife viele case's ab, hier nur die Grobstruktur. Leider geht das mit
default
If WindowEvent()=#WM_RBUTTONDOWN And WindowEvent()=#WM_LBUTTONDOWN
RunProgram(clipboarddata(clipboard_set))
EndIf
nicht. Warum? Kann ich nicht abfragen ob 2 Tasten zugleich gedrückt wurden? Cool wäre auch, wenn RunProgramm ebenfalls gestartet wird, wenn der User eine bestimmte Taste gedrückt hat. keyboardreleased() geht ja wieder nur mit initkeyboard und directx...
Also, wie frag ich ab, ob ein User, wenn er in einem PopUpMenü eine Auswahl trifft (mit linker Maustaste - standart), die rechte gerade gedrückt hatte? Das Programm soll in diesem Fall etwas anderes machen.
hier mal aus'm kopf was passiert (das ganze coding wäre zuviel)
repeat...
select windowevent()
case #pb_event_menu
select eventmenuid()
case ...
default <--- hier wirds interessant, jemand hat im menu was ausgewählt
### An dieser Stelle möchte ich wissen, ob er User, wenn er die linke Maustaste drückt, auch die rechte gedrückt hatte
ODER
### Ob der User z.b. die linke Shift gedrückt hatte
endselect
endselect....
Natürlich frage ich in der schleife viele case's ab, hier nur die Grobstruktur. Leider geht das mit
default
If WindowEvent()=#WM_RBUTTONDOWN And WindowEvent()=#WM_LBUTTONDOWN
RunProgram(clipboarddata(clipboard_set))
EndIf
nicht. Warum? Kann ich nicht abfragen ob 2 Tasten zugleich gedrückt wurden? Cool wäre auch, wenn RunProgramm ebenfalls gestartet wird, wenn der User eine bestimmte Taste gedrückt hat. keyboardreleased() geht ja wieder nur mit initkeyboard und directx...
Also, wie frag ich ab, ob ein User, wenn er in einem PopUpMenü eine Auswahl trifft (mit linker Maustaste - standart), die rechte gerade gedrückt hatte? Das Programm soll in diesem Fall etwas anderes machen.
Agent_Sasori
It's not a bug - it's a feature!
http://www.StephenKalisch.de | http://www.ria-tec.com | http://www.dirsync.de
It's not a bug - it's a feature!
http://www.StephenKalisch.de | http://www.ria-tec.com | http://www.dirsync.de
Tastendruck geht entweder mit GetAsyncState_(taste) oder so (guck auf www.microsoft.com unter msdn) oder mit AddKeyboardShurtcut (guck in der hilfe..)
Und ein WindowEvent kann doch nicht gleichzeitig zwei sachen zurück geben du kannst dir zwei variablen anlegen, lbutton und rbutton, jetzt setzt du lbutton auf 1, wenn das event #WM_LBUTTONDOWN ist und rbutton auf 1, wenn das event #WM_RBUTTONDOWN ist, und lbutton auf 0 wenn das event #WM_LBUTTONUP ist und rbutton auf 0, wenn das event #WM_RBUTTONUP ist, also:
Und ein WindowEvent kann doch nicht gleichzeitig zwei sachen zurück geben du kannst dir zwei variablen anlegen, lbutton und rbutton, jetzt setzt du lbutton auf 1, wenn das event #WM_LBUTTONDOWN ist und rbutton auf 1, wenn das event #WM_RBUTTONDOWN ist, und lbutton auf 0 wenn das event #WM_LBUTTONUP ist und rbutton auf 0, wenn das event #WM_RBUTTONUP ist, also:
Code: Alles auswählen
hWnd=OpenWindow(0,0,0,400,300,#PB_Window_ScreenCentered|#PB_Window_SystemMenu,"lbutton,rbutton")
lbutton.l:rbutton.l
Repeat
Select WaitWindowEvent()
Case #WM_LBUTTONDOWN : lbutton = 1
Case #WM_LBUTTONUP : lbutton = 0
Case #WM_RBUTTONDOWN : rbutton = 1
Case #WM_RBUTTONUP : rbutton = 0
Case #WM_CLOSE : Quit = #True
EndSelect
If lbutton = 1 And rbutton = 1
Debug "Beide Maustasten gedrückt"
EndIf
Until Quit = #True
Danke Leo. Ich probiers mal. hab aber auch was gefunden:
If GetAsyncKeyState_(#VK_RBUTTON)
runprog...
endif
If GetAsyncKeyState_(#VK_RBUTTON)
runprog...
endif
Agent_Sasori
It's not a bug - it's a feature!
http://www.StephenKalisch.de | http://www.ria-tec.com | http://www.dirsync.de
It's not a bug - it's a feature!
http://www.StephenKalisch.de | http://www.ria-tec.com | http://www.dirsync.de