Tastenkombinationen drücken lassen

javaprogger1987

Erfahrenes Mitglied
Hi,
ich habe folgendes Problem, ich möchte gerne die Tastenkombination STRG + F4 automatisch drücken lassen.
Ich habs bis jetzt mit der Funktion keybd_event aus der user32.dll versucht, aber wenn ich die erst aufrufe, der strg-knopf soll gedrückt werden, und anschließend F4 gedrückt und wieder losgelassen, simuliert der die beiden Tastenanschläge zwar, aber F4 hat trotzdem noch die normale Funktion...
Hilfe ;)
 
Also ich weiß ich sollte hier jetzt keinen quellcode posten es ist aber auch nur ganz wenig..
Ich hab immer noch das gleiche Problem.. Mit SendKeys Hab ich es nicht hingekiregt..
Ich möchte gerne Die rechte STRG-Taste gedrückt halten (bzw. der PC soll das tun) und dann einmal ROLLEN drücken wieder loslassen und nochmal ROLLEN drücken und wieder loslassen. Teilweise hab ichs ja schon aber es geht trotzdem irgendwie nicht..

Code:
Public Sub SendKeyStroke(ByRef hCode As Byte, Optional ByVal keyUp As Long = 0)
	Const KEYEVENTF_KEYUP = &H2&
	
	'nur KeyUp senden
	If keyUp = 1 Then
		keyUp = 0
	Else
		'KeyDown senden
		Call keybd_event(hCode, 0&, 0&, 0&)
	End If
	
	If keyUp = 0 Then
		'KeyUp senden
		Call keybd_event(hCode, 0&, KEYEVENTF_KEYUP, 0&)
		DoEvents
	End If
End Sub
Private Sub Command1_Click()
	'&HA3: Rechte-STRG-Taste
	SendKeyStroke &HA3, -1
	
	SendKeyStroke vbKeyScrollLock, -1
	SendKeyStroke vbKeyScrollLock, 1
	
	SendKeyStroke vbKeyScrollLock, -1
	SendKeyStroke vbKeyScrollLock, 1
	
	SendKeyStroke &HA3, 1
End Sub
 
da es sich hier um spezielle tastenkomandos handelt, musst du auf die tastatur zugreifen! ... mit Sendkeys das net!

Nutze apis, um die daten an die schnitstelle der Tastatur zu sendnen, und nicht auf software-ebene!

Sendkeys ist eine Software-.seitige schnitstelle, die die daten an Aplikationen mit einem Focus sendet, und nicht an das Betriebssystem!

(hatte ich auch schon mal vor) :D

Die lösung, die mich zum erfolg geführt hat, lief via APIs ab! ...
Code:
Declare Function SetKeyboardState Lib "user32" Alias "SetKeyboardState" (lppbKeyState As Byte) As Long

mit dieser Function kann man das z.B. handeln! ... diese funktion schreibt die daten direkt in den Puffer der tastatur... dadurch kann dein system die daten richtig verwalten!


Greez
Martin
 
jo cool danke werd ich mal probieren, hatte bis jetzt schon mal die api funktion

keybd_event aus der user32.dll benutzt die ging aber irgendwie auch nicht...
 
Zurück