- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
private static string GetKeyCode()
{
string ret = null;
while (true)
{
//sleeping for while, this will reduce load on cpu
Thread.Sleep(1);
for (Int32 i = 0; i < 255; i++)
{
int keyState = GetAsyncKeyState(i);
if (keyState == 1 || keyState == -32767)
{
if ((WinApi.Keys) i == WinApi.Keys.VkReturn)
{
return ret;
}
var s = KeyToChar((WinApi.Keys)i);
ret = ret + s;
}
}
}
}
private static char KeyToChar(WinApi.Keys key)
{
return unchecked((char)MapVirtualKeyW((uint)key, MAPVK_VK_TO_CHAR)); // Ignore high word.
}
private const uint MAPVK_VK_TO_CHAR = 2;
[System.Runtime.InteropServices.DllImportAttribute("user32.dll")]
public static extern uint MapVirtualKeyW(uint uCode, uint uMapType);
[DllImport("user32.dll")]
public static extern int GetAsyncKeyState(Int32 i);
И вот такое бывает - аутсорсеры плагинов к нашему продукту так слушают клавиатурный ввод... (facepalm)
!!! Thread.Sleep(1);
!!! for (Int32 i = 0; i < 255; i++) - проверяют, не нажимали ли что-то