мне нужно определить нажатие клавиш в консольном проекте (не набора в консоли)
как это можно реализовать?
Объясню задачу и свой проект подробней я делаю не большую консольную игру и мне для управления персонажем нужно пучить данные о нажатии клавиш так как картинка выводится в консоль а консоль постоянно чистится и снова отрисовывается водить данные в неё нельзя и по этому мне нужно каким то другим способом получать данные о нажатии клавиш.
Хочешь сделать кейлоггер? Аяяй. По попе за такое нужно бить.
Но в целом ответ следующий: нужно использовать WinApi для этого и отлавливать ивенты самой операционной системы. Эта статья поможет: http://www.dreamincode.net/forums/topic/180436-global-hotkeys/
Но проще будет наработки чужие использовать. Например, даный проект делает именно то, что тебе нужно, используя более чем простой синтаксис: https://github.com/fabriciorissetto/KeystrokeAPI. Долго разбиратся не придется.
Самый банальный способ определения нажатия клавиш для случая, когда Ваше приложение не является фоновым и активно:
public class Program
{
public static void Main()
{
ConsoleKeyInfo key;
do
{
key = Console.ReadKey();
Console.WriteLine(key.Key + " клавиша была нажата");
}
while (key.Key != ConsoleKey.Escape); // по нажатию на Escape завершаем цикл
}
}
Если же нужен способ отслеживания нажатия клавиш, когда приложение не активно и является фоновым процессом, то нам нужно импортировать методы вспомогательной библиотеки user32.dll
:
[DllImport("user32.dll")]
public static extern bool RegisterHotKey(IntPtr hWnd, int id, int fsModifiers, int vlc);
[DllImport("user32.dll")]
public static extern bool UnregisterHotKey(IntPtr hWnd, int id);
Есть хороший ответ, касаемо этого варианта: Capture a keyboard keypress in the background. В принципе, если воспользоваться поиском, то ответы можно найти. Или вот готовый хороший и полноценный ответ: Background Key Press Listener
https://www.codeproject.com/Articles/7294/Processing-Global-Mouse-and-Keyboard-Hooks-in-C
вот ето может помочь, по крайней мере отсюда я брал код для отслеживания перемещения указателя мыши вне формы приложения.
Для чего тут используется функция count(), ведь если isset() выполнится, то понятно, что массив содержит больше одного элемента или нет?
Выдает ошибку в линии где return $this->urban();
Освоил авторизацию через AD при помощи PHPДалее требуется проверка на ту же авторизацию