0X41.cpp
上传用户:hyz2004817
上传日期:2022-03-30
资源大小:226k
文件大小:1k
- #include "stdafx.h"
- extern BOOL g_bMustExit;
- ////////////////////////////////
- //
- // 生成键盘事件
- //
- // 附加数据描述: 一个 RCAKEYBDINPUT 结构数组.
- //
- // 数组元素个数可以这样获得:
- // (RCAREUQUESTHEAD.requestBytes-sizeof(RCAREQUESTHEADER)) / sizeof(RCAKEYBDINPUT)
- //
- BYTE bSave;
- BOOL bFirst = 0;
- BOOL WINAPI
- RCAID_0X41_HANDLER(
- SOCKET s,
- RCAREQUESTHANDLEDATA * pData,
- RCAREQUESTHEADER * pRCAHead,
- HANDLE hEventArray[2]
- )
- {
- int len; // 附加数据长度;
- int count; // 数组元素个数
- int ret;
- BOOL bExit = FALSE;
-
- RCAKEYBDINPUT bi;
-
-
- len = pRCAHead->requestBytes - sizeof( RCAREQUESTHEADER );
- // 计算数组元素个数
- count = len / sizeof(RCAKEYBDINPUT);
- // 限制一次执行的次数,最大 20 次
- if( count > 20 )
- return FALSE;
- // 接收, 执行; 接收, 执行...
- while( count-- )
- {
- ret = RCARecv_EventSelectIO( s, hEventArray, (char*)&bi, sizeof(RCAKEYBDINPUT));
- if( ret != len )
- {
- // 添加错误响应
- return FALSE;
- }
- keybd_event( (BYTE)(bi.wVk), (BYTE)(bi.wScan), bi.dwFlags, bi.dwExtraInfo );
- }
- // 添加响应处理
- return TRUE;
- }