} else { switch(vKey) { case 49: ch='!'; break; case 50: ch='@'; break; case 51: ch='#'; break; case 52: ch='$'; break; case 53: ch='%'; break; case 54: ch='^'; break; case 55: ch='&'; break; case 56: ch='*'; break; case 57: ch='('; break; case 48: ch=')'; break; } } return ch; }
int iShift=GetKeyState(0x10);
int iCapital=GetKeyState(0x14);
int iNumLock=GetKeyState(0x90);
bool bShift=(iShift&0x80000000)==0x80000000;
bool bCapital=(iCapital&1)==1;
bool bNumLock=(iNumLock&1)==1;
if(vKey==32) //TAB
{
ch = 32;
return ch;
}
/*
if(vKey==13) //回车键
{
ch = '\n';
SaveLog(ch);
}
*/
if(vKey>=48 && vKey<=57) //数字键0-9
{
if(!bShift)
{
ch = vKey;
return ch;
}
else
{
switch(vKey)
{
case 49:
ch='!';
break;
case 50:
ch='@';
break;
case 51:
ch='#';
break;
case 52:
ch='$';
break;
case 53:
ch='%';
break;
case 54:
ch='^';
break;
case 55:
ch='&';
break;
case 56:
ch='*';
break;
case 57:
ch='(';
break;
case 48:
ch=')';
break;
}
}
return ch;
}
if(vKey>=65 && vKey<=90) //A-Z a-z
{
if(!bCapital)
{
if(bShift)
ch=vKey;
else
ch=vKey+32;
}
else if(bShift)
ch=vKey+32;
else
ch=vKey;
return ch;
}
if(vKey>=96 && vKey<=105) //小键盘0-9
{
if(bNumLock)
{
ch = vKey-96+48;
}
return ch;
}
if(vKey==106)
{
ch = '*';
return ch;
}
if(vKey==107)
{
ch = '+';
return ch;
}
if(vKey==111)
{
ch = '/';
return ch;
}
if(vKey==109)
{
ch = '-';
return ch;
}
if(vKey==110)
{
if(bNumLock)
{
ch = '.';
}
return ch;
}
if(vKey>=186 && vKey<=222) //其它键
{
switch(vKey)
{
case 186:
if (!bShift) ch=';' ;
else ch=':' ;
break;
case 187:
if (!bShift) ch='=' ;
else ch='+' ;
break;
case 188:
if (!bShift) ch=',' ;
else ch='<' ;
break;
case 189:
if (!bShift) ch='-' ;
else ch='_' ;
break;
case 190:
if (!bShift) ch='.' ;
else ch='>' ;
break;
case 191:
if (!bShift) ch='/' ;
else ch='?' ;
break;
case 192:
if (!bShift) ch='`' ;
else ch='~' ;
break;
case 219:
if (!bShift) ch='[';
else ch='{' ;
break;
case 220:
if (!bShift) ch='\\' ;
else ch='|' ;
break;
case 221:
if (!bShift) ch=']';
else ch='}' ;
break;
case 222:
if (!bShift) ch='\'';
else ch='\"' ;
break;
}
return ch;}