Sendkeys из приложения WPF

У меня есть полноэкранное приложение WPF, и я настроил горячую клавишу Skype «Focus Skype» на комбинацию Ctrl + F6.

Теперь... Как я могу отправить это сообщение в Windows (Ctrl+F6)? Я пробовал sendkeys, но не работает, он говорит, что: «SendKeys не может работать внутри этого приложения, потому что приложение не обрабатывает сообщения Windows. Либо измените приложение для обработки сообщений, либо используйте метод SendKeys.SendWait».

Я попробовал метод Sendkeys.sendwait, но он минимизировал мое полноэкранное приложение, и мне нужно, чтобы оно оставалось полноэкранным.

любая помощь или подсказка?

заранее спасибо


person Kioko Kiaza    schedule 20.06.2011    source источник
comment
Для этого должен быть вызов Windows API.   -  person CodingBarfield    schedule 20.06.2011


Ответы (1)


Попробуй это:

Private Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, _
ByVal bScan As Byte, ByVal dwFlags As Integer, ByVal dwExtraInfo As Integer)

Private Const kbdDown = 0
Private Const kbdUp = 2



Private Sub SendKey(ByVal Key As Byte)
    Call keybd_event(Key, 0, kbdDown, 0)
    Call keybd_event(Key, 0, kbdUp, 0)

End Sub

Коды клавиш можно посмотреть здесь: http://www.codeproject.com/KB/system/keyboard.aspx

person Goldmoon    schedule 09.07.2011
comment
Я бы рекомендовал использовать SendInput вместо keybd_event. - person Cody Gray; 17.12.2011