Я делаю приложение Windows, которое захватывает вход клавиатуры глобально. Когда пользователь использует Ctrl + Alt + G Combo Combo, приложение использует
SendKey.Send(Guid.NewGuid().ToString());
, чтобы ввести порожденный GUID в любом направлении текстового поля. И это должно сделать это независимо от приложения, принимающего вход.
Это работает именно так, как я впервые впервые вводит Ctrl + Alt + G, но последующие попытки приведу к ничу или просто очень нечастым успехам.
Я имею в виду, все должно быть очень простым и последовательным. У меня есть рабочий глобальный крючок клавиатуры, который все время работает, я тестировал его, но метод SendKey.Send () не работает каждый раз.
Я посмотрел по всему Google при чем-либо, связанном с моим вопросом, но пока ничего не работала.
У кого-нибудь есть проницательность?
Отредактировать 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 к некоторой степени успеха. Как только я выделяю свои новые проблемы, я опубликую редактирование и, возможно, закройте этот вопрос, если я получу функционирование моего приложения как предназначено.