2016-07-17 20 views
-1

Я написал приложение win с помощью C#, которое автоматически связывается с другими приложениями, такими как браузеры. Я хочу скопировать что-то в своем приложении win и вставить его в браузер, не заставляя пользователя нажимать или перемещать мышь. У меня нет проблем с имитацией кликов мыши, но у меня проблемы с имитацией штрихов клавиатуры. Копировать (Ctrl + c) всегда работает правильно, но когда я хочу вставить все в буфер обмена, иногда работает правильно, а иногда нет. Follwing больше о моей проблеме: Я хочу погладить Ctrl + v с помощью C#, другими словами, я хочу вставить что-то в буфер обмена в другое приложение с помощью C#.Имитировать ход клавиатуры Ctrl + V с использованием результатов C# «v» в целевом приложении

Я использую следующий код:

SendKeys.Send("^{v}"); 

Я тоже попытался следующий код:

SendKeys.Send("^(v)"); 

Но проблема в том, что это приводит иногда вставить действие, а иногда и просто погладить v ключ , Может ли кто-нибудь помочь с тем, что не так с моим приложением? и еще один вопрос, есть ли проблема в доступе к буферу, когда другие приложения хотят получить к нему доступ?

ответ

0

При использовании SendKeys.Send вам необходимо использовать круглые скобки для удержания нескольких модификаторов. Однако, поскольку у вас есть только один модификатор, вам не нужна группировка, и вы должны отправлять только "^v".

фигурные скобки {} используются для указания специального ключа, такие как {ENTER}, полный список доступен в SendKey.Send docs

Согласно docs:

Чтобы указать, что какой-либо комбинации SHIFT, CTRL и ALT должны удерживаться, пока нажаты несколько других клавиш, заключите код для этих ключей в круглые скобки. Например, чтобы указать, чтобы удерживать нажатой клавишу SHIFT во время нажатия E и C, используйте «+ (EC)». Чтобы указать, чтобы удерживать нажатой клавишу SHIFT во время нажатия E, а затем C без SHIFT, используйте «+ EC».

+0

Вы понимаете, что это хорошо: SendKeys.Send ("^ (v)"); – user6387308

+0

Я использую «^ (v)» для отправки Ctlr + v, но он выглядит так же, как и раньше. т. е. если я поглажу эту клавишу 10 раз, в 6 раз она работает правильно, и 4 раза она пишет «v» – user6387308

+0

спасибо, я больше описываю свою проблему, редактируя вопрос – user6387308