- 注册时间
- 2013-4-1
- 最后登录
- 1970-1-1
该用户从未签到
|
发表于 2013-4-1 18:50:21
|
显示全部楼层
HWND m_hWnd = WD_Wnd; <-问道窗口句柄
void SendChar(int vKeyCode)
{
BYTE byValue = (BYTE)vKeyCode;
WPARAM wParam = (WPARAM)byValue;
vKeyCode = ConvertKey(byValue);
SendMessage(m_hWnd , WM_CHAR , (WPARAM)wParam , (LPARAM)MakeKeyLparam(vKeyCode , WM_KEYDOWN));
}
BOOL CheckChineseCode(int nfirstCode , int nSecondCode)
{
if((BYTE)nfirstCode >= 0xA1 && (BYTE)nfirstCode <= 0xFE)
{
if((BYTE)nSecondCode >= 0xA1 && (BYTE)nSecondCode <= 0xFE)
{
return TRUE;
}
}
return FALSE;
}
void MyInputText(CString &strText , int nSleep)
{
int nKeyCode = 0;
int nLength = strText.GetLength();
for(int i = 0 ; i < nLength; )
{
nKeyCode = strText.GetAt(i);
//MyKeyClick(nKeyCode , nSleep);
if(i < nLength - 1)
{
if(CheckChineseCode(nKeyCode , strText.GetAt(i+1)))
{//是中文字符
SendChar(nKeyCode);//先发高字节
Sleep(10);
SendChar(strText.GetAt(i+1));//再发低字节
i += 2;
}
else
{//一般字符
SendChar(nKeyCode);
i+= 1;
}
}
else
{////一般字符
SendChar(nKeyCode);
i += 1;
}
Sleep(nSleep);
}
}
每个问道注入一个dll
MyInputText("你想说点什么",50)
然后再 SendMessage 一个回车进去 |
|