Глобальный хук в консольном приложении - C#
Формулировка задачи:
Приветствую!
Понимаю тема давно избита и куча решений, но не могу сам найти как реализовать.. И возможно ли такое?
Необходимо считывать нажатие одной единственной клавиши в консольном приложении, когда само приложение не активно.
Собственно как реализовано сейчас:
if (key == ConsoleKey.Add)
{
coin++;
}
key = Console.ReadKey(true).Key;Решение задачи: «Глобальный хук в консольном приложении»
textual
Листинг программы
using System;
using System.Threading;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace GlobalHook
{
class Program
{
[DllImport("user32.dll")]
static extern short GetAsyncKeyState(System.Windows.Forms.Keys vKey);
static void Main(string[] args)
{
while (true)
{
Thread.Sleep(10);
for (int i = 0; i < 255; i++)
{
int keyState = GetAsyncKeyState((Keys)i);
if (keyState == -32767)
{
Console.WriteLine((Keys)i);
}
}
}
}
}
}