Я делаю приложение для Windows, которое фиксирует ввод с клавиатуры во всем мире.Когда пользователь использует комбинацию клавиш CTRL + ALT + G, приложение использует
SendKey.Send(Guid.NewGuid().ToString());
для ввода генерируемого GUID в любое текстовое поле, находящееся в фокусе.И он должен делать это независимо от приложения, принимающего ввод.
Он работает точно так, как я и задумывал, когда вы в первый раз набираете CTRL + ALT + G, но последующие попытки не приводят ни к чему или просто к очень редким успехам.*
Я имею в виду, все это должно быть очень простым и последовательным.У меня есть работающая глобальная клавиатурная зацепка, которая работает все время, я проверял ее, но метод SendKey.Send () не работает каждый раз.
Я просматривал Google во всем, что связанона мой вопрос, но пока ничего не получалось.
У кого-нибудь есть понимание?
EDIT 1 : Я также пытался использовать SendKey.SendWait (), делает то же самое.Я действительно хочу более отзывчивый способ генерировать новый GUID с помощью этого сочетания клавиш.
РЕДАКТИРОВАТЬ 2 :
Ниже приведены основные части кода:
/* Initialization Code Here */
// register the event that is fired after the key press.
hook.KeyPressed += new EventHandler<KeyPressedEventArgs>(hook_KeyPressed);
// register the control + alt + F12 combination as hot key.
hook.RegisterHotKey((uint)(HotkeyModifiers.Control | HotkeyModifiers.Alt), Keys.G);
Код события довольно прост:
void hook_KeyPressed(object sender, KeyPressedEventArgs e)
{
SendKeys.SendWait(Guid.NewGuid().ToString());
}
Все остальное в моем проекте просто пух.
Обновление 1 :
У меня есть еще вопросы по этому вопросу, но у меня нет временипродолжать работать над этим на сегодня.Я реализовал предложение Джона Рейнора об использовании подхода app.config до некоторой степени успеха.Как только я изолирую свои новые проблемы, я опубликую правку и, возможно, закрою этот вопрос, если я получу свое приложение функционирующим как предполагалось.