Глобальная горячая клавиша в консольном приложенииC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Глобальная горячая клавиша в консольном приложении

Сообщение Anonymous »

Кто-нибудь знает, как использовать вызовы API RegisterHotKey/UnregisterHotKey в консольном приложении? Я предполагаю, что настройка/удаление горячей клавиши такое же, но как мне сделать обратный звонок при нажатии клавиши?
Каждый пример, который я вижу, предназначен для Winforms и использует защищенное переопределение void WndProc(ref Message m){..., которое недоступно для me.

обновление:
то, что у меня есть, приведено ниже, но событие никогда не происходит. Я думал, что это может быть потому, что когда вы загружаете ConsoleShell, он блокирует дальнейшее выполнение, но даже если я помещу SetupHotkey в другой поток, ничего не произойдет. Есть мысли?

class Program
{
static void Main(string[] args)
{
new Hud().Init(args);
}
}

class Hud
{
int keyHookId;

public void Init(string[] args)
{
SetupHotkey();
InitPowershell(args);
Cleanup();
}

private void Cleanup()
{
HotKeyManager.UnregisterHotKey(keyHookId);
}

private void SetupHotkey()
{
keyHookId = HotKeyManager.RegisterHotKey(Keys.Oemtilde, KeyModifiers.Control);
HotKeyManager.HotKeyPressed += new EventHandler(HotKeyManager_HotKeyPressed);
}

void HotKeyManager_HotKeyPressed(object sender, HotKeyEventArgs e)
{
//never executed
System.IO.File.WriteAllText("c:\\keyPressed.txt", "Hotkey pressed");
}

private static void InitPowershell(string[] args)
{
var config = RunspaceConfiguration.Create();
ConsoleShell.Start(config, "", "", args);
}
}


Подробнее здесь: https://stackoverflow.com/questions/365 ... pplication
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»