Я хотел сделать небольшой кейлоггер, используя консольное приложение, и я наткнулся на этот исходный код в Интернете, и мне трудно его понять.
while(true)
{
Thread.Sleep(10);
for (int i = 0; i < 255; i++)
{
int keyState = GetAsyncKeyState(i);
if (keyState == -32767)
{
Console.WriteLine((Keys)i);
}
}
}
Итак, насколько я понимаю, keystate — это в основном функция, которая сообщает, нажата ли клавиша в данный момент. Поскольку мы хотим проверить, проверяются ли какие-либо из 255 клавиш клавиатуры, нам нужен цикл for. Поправьте меня, если я ошибаюсь.
Итак, если клавиша, которую мы сейчас нажимаем, хорошо... нажата, она вернет некоторое значение (Хотелось бы знать, какое это значение... может быть, значение кода клавиши? Поправьте меня, потому что я уверен, что ошибаюсь).
Но ЕСЛИ — это та часть, где я полностью потерял ее. Если я правильно понимаю, то строка записи произойдет только в том случае, если мы получим -32767, а это кто знает что? И это то, что я хотел бы знать. Почему это -32767? Почему это работает, даже если мы никогда не получим -32767, например, LMB равно 1...?