No więc wiem że można wysłać dowolny przycisk przez sendkeys.SendWait(); jednak ja chce wysłać samo zdarzenie key down / key up. Da się to jakoś zrobić ?
0
1
Niespecjalnie... (pewnie można za pomocą WinAPI - ale nie wiem co WinFormy dokładnie z nimi robią, a zresztą to rozwiązanie najgorsze z możliwych) Tzn moim zdaniem coś niepotrzebnie komplikujesz - chcesz wykonać kod który masz w keyDown w pewnym momencie? Zrób z kodu który chcesz wywołać odrębną metodę i wywołaj ją w zdarzeniu keyDown i tam gdzie jeszcze chcesz.
0
Tutaj masz zaawansowany przykład: http://www.pinvoke.net/default.aspx/user32.sendinput
Kiedyś pod VB.NET robiłem to w następujący sposób:
Private Declare Sub keybd_event Lib "User32" _
(ByVal bVk As Byte, ByVal bScan As Byte, _
ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Const keyV = &H56
Private Const keyX = &H58
Private Const keyQ = &H51
Private Const keyW = &H57
Private Const keyE = &H45
Private Const keyR = &H52
Private Const keyT = &H54
Private Const keyY = &H59
Private Const key1 = &H31
Private Const key2 = &H32
Private Const key3 = &H33
Private Const key4 = &H34
Private Const key5 = &H35
Private Const key6 = &H36
Private Const keyUp = &H2
I przykład użycia:
keybd_event(keyV, 0, 0, 0) 'Key V down
Thread.Sleep(450)
keybd_event(keyV, 0, keyUp, 0) 'Key V up
0
Dzięki.