鼠标模拟combobox改变选项
来源:互联网 发布:sql中绝对值函数 编辑:程序博客网 时间:2024/05/22 06:14
[DllImport("user32.dll")]
static extern IntPtr FindWindow(string strClass, string strWindow);
[DllImport("user32.dll")]
static extern IntPtr FindWindowEx(HandleRef hwndParent, HandleRef hwndChildAfter, string strClass, string strWindow);
[DllImport("user32.dll", EntryPoint = "SendMessage", SetLastError = true,CharSet=CharSet.Auto)]
private static extern int SendMessage1(IntPtr hwnd, uint wMsg, int wParam, string lParam);
//调用windows提供的API函数
Intptr ptrTaskbar = FindWindow("#32770", "Form1");
Intptr ptrNextBtn = FindWindowEx(new HandleRef(this, ptrTaskbar), new HandleRef(this, IntPtr.Zero), "ComboBox",""); //找到combobox的句柄
SetForegroundWindow(ptrTaskbar); //将combobox的父窗口设为当前活动窗口
SendMessage(ptrNextBtn, CB_SHOWDROPDOWN, 1, 0);//打开列表
string ptr = "研究生"; //combobox里之前有初中生、高中生、大学生、研究生
SendMessage1(ptrNextBtn, CB_SELECTSTRING, 0, ptr );//选择
SendMessage(ptrNextBtn, WM_KEYDOWN, VK_RETURN, 0); //响应回车键
SendMessage(ptrNextBtn, CB_SHOWDROPDOWN,0, 0); //关闭列表
System.Threading.Thread.Sleep(50); //延时50ms,如果机器速度慢,可以增加延时时间
经测试程序好用。如果有问题,应该是在findwindow函数的标题或者combobox的句柄有问题。
ptrNextBtn = FindWindowEx(new HandleRef(this, ptrTaskbar), new HandleRef(this, IntPtr.Zero), "ComboBox","");中的ptrTaskbar必须是combobox的上一个父窗口的句柄,如果是其上上级父窗口肯定会出错的。
- 鼠标模拟combobox改变选项
- wpf Combobox没有黑三角,鼠标移上去改变样式
- Extjs combobox 鼠标提醒
- easyui-combobox 动态添加选项
- c# ComboBox禁用鼠标滚轮
- Ext combobox 的动态改变
- 改变ComboBox控件的高度
- 动态改变 Select 选项
- html select 选项改变
- 改变鼠标指针
- 改变鼠标样式
- 改变鼠标指针样式
- 动态改变鼠标光标
- 鼠标指针改变
- 如何改变鼠标样式
- 改变鼠标指针
- MFC改变鼠标指针
- 改变鼠标光标形状
- Ubuntu/debian 中更改桌面的路径/位置
- PHP正则表达式 /i, /is, /s, /isU等参数含义详解
- opera浏览器广告过滤设置配置
- 9.11找出the的个数
- 让IIS支持未知文件扩展名下载
- 鼠标模拟combobox改变选项
- 树的构建及相关遍历
- 平台开发问题
- debian中xxx is not in the sudoers file解决方法
- 数据库 定位指定的服务器/实例时出错 Error 26错误
- putty使用方法,中文教程
- powerbuilder把excel文件中数据导入到数据窗口中
- CentOS+QT+gdb
- 数据库连接字符串研究.