输入字符串到指定的窗口
来源:互联网 发布:linux系统可以ghost 编辑:程序博客网 时间:2024/04/30 06:00
#define UPPERCASE 0X03
#define LOWERCASE 0X02
#define NUMBER 0x01
还有一个CanInput(vWk)就是判断是大写,小写还是数字,再返回指定的值,如UPPERCASE
void SendInputKeypress(CString str,HWND hWnd)
{
CArray<INPUT,INPUT&> inputList;
BYTE vWk;
BOOL isShift=FALSE;
for(int i=0;i<str.GetLength()*2;i+=2)
{
vWk=(BYTE)str.GetAt(i/2);
isShift=this->CanInput(vWk);
if(isShift==LOWERCASE)
{
vWk-=32;
}
if(isShift==UPPERCASE)
{
INPUT in;
ZeroMemory(&in,sizeof(in));
in.type=INPUT_KEYBOARD;
in.ki.dwFlags=0;
in.ki.wVk=VK_SHIFT;
inputList.Add(in);
}
INPUT Keys[2];
ZeroMemory(Keys,sizeof(Keys));
Keys[0].type=Keys[1].type=INPUT_KEYBOARD;
Keys[0].ki.wVk = Keys[1].ki.wVk = vWk;
Keys[1].ki.dwFlags = KEYEVENTF_KEYUP; // THIS IS IMPORTANT
inputList.Add(Keys[0]);
inputList.Add(Keys[1]);
if(isShift==UPPERCASE)
{
INPUT in;
ZeroMemory(&in,sizeof(in));
in.type=INPUT_KEYBOARD;
in.ki.dwFlags=KEYEVENTF_KEYUP;
in.ki.wVk=VK_SHIFT;
inputList.Add(in);
}
}
LPINPUT AllKey=new INPUT[inputList.GetCount()];
for(int i=0;i<inputList.GetCount();i++)
{
AllKey[i]=inputList.GetAt(i);
}
SetForegroundWindow(hWnd);
while(!::SendInput((UINT)inputList.GetCount(), AllKey, sizeof(INPUT)))
{
SetForegroundWindow(hWnd);
}
delete[] AllKey;
}
- 输入字符串到指定的窗口
- 逆向把字符串输入到指定文件的程序
- sscanf输入指定格式的字符串
- 字符串遇到指定的字符停止输入
- 窗口遍历,关闭包含指定字符串的窗口
- 拷贝pWnd指向的窗口的指定区域到剪贴板
- VC如何激活并切换到指定的窗口
- 将一个子控件移动到指定的窗口位置
- 如何将你的浏览器窗口设定到指定分辨率
- 将输入的字符存入到指定的文件中
- 把一个字符串插到另一个字符串的指定位置
- 将字符串插入到另一个字符串的指定位置
- 十五周—输入含有指定字符的字符串
- 如何通过字符串指定的窗口名称,获取该窗口内的控件
- 将一串字符串按指定编码表输入到文本中
- Linux C编程——在指定位置输入指定长度的字符串
- 取到字符串的指定下标的字符
- Lo4J配置指定包下的log输出级别和输入到指定位置
- 使用 jQuery 简化 Ajax 开发
- 如何在 Web 服务中使用 Service Data Objects 2.1 的动态数据 API
- 使用 CakePHP 快速打造 Web 站点
- [.net]模拟网站登陆、截取数据
- 在IBM Systems 上安装 Linux 服务器
- 输入字符串到指定的窗口
- 颜色和颜色不是同样的颜色
- css表格单元格中的长文本的显示问题()
- Java SE 6 新特性: Instrumentation 新功能
- IBM Parallel Machine Learning Toolbox 简介
- 怎么用PS做出划痕的效果?
- 使用 IBM OmniFind Yahoo! Edition REST API
- mov指令详解
- 金山词霸激活码