一、模拟键盘操作
十多年的海兴网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整海兴建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联从事“海兴网站设计”,“海兴网站推广”以来,每个客户项目都认真落实执行。
以下示例程序当点击button1按钮,模拟键盘在文本框textBox1中作输入操作,详细说明请参看MSDN帮助中的SendKeys类。
//事件完整代码
private void button1_Click(object sender, System.EventArgs e)
{
this.textBox1.Focus(); //先必须让文本框得到焦点,因为焦点在button1上
SendKeys.Send("^a"); //Ctrl+A
SendKeys.Send("{DEL}"); //Delete
SendKeys.Send("+(ec)"); //Shift+"ec"
SendKeys.Send("{ENTER}"); //Enter
SendKeys.Send("+ec"); //Shift+'e'+'c'
SendKeys.Send("{ENTER}"); //Enter
SendKeys.Send("{h 10}"); //"hhhhhhhhhh"
SendKeys.Send("{ENTER}"); //Enter
SendKeys.Send("^%{DEL}"); //Alt+Ctrl+Del
}
二、模拟鼠标操作
以下示例程序当点击DBButton按钮,模拟鼠标双击窗体事件,并将鼠标向左上方移动10*10象素,其它操作类似。
//引入名字空间
using System.Runtime.InteropServices
//申明
[DllImport("user32")]
private static extern int mouse_event(int dwFlags,int dx,int dy, int cButtons, int dwExtraInfo);
const int MOUSEEVENTF_MOVE = 0x0001;
const int MOUSEEVENTF_LEFTDOWN = 0x0002;
const int MOUSEEVENTF_LEFTUP = 0x0004;
const int MOUSEEVENTF_RIGHTDOWN = 0x0008;
const int MOUSEEVENTF_RIGHTUP = 0x0010;
const int MOUSEEVENTF_MIDDLEDOWN = 0x0020;
const int MOUSEEVENTF_MIDDLEUP = 0x0040;
const int MOUSEEVENTF_ABSOLUTE = 0x8000;
//事件完整代码
private void Form_DoubleClick(object sender, System.EventArgs e)
{
MessageBox.Show("你双击了屏幕");
}
private void DBButton_Click(object sender, System.EventArgs e)
{
mouse_event(MOUSEEVENTF_MOVE,-10,-10,0,0); //移动鼠标,否则事件发生在按钮上
Down,Up合为一次单击事件
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
}
.net框架就是对API就行封装,做成一个个的类然后可以让你轻松调用,但是。net封装的内容,是常用的内容,有些东西用的时候,还是需要调用API函数,自己写,毕竟,微软不知道你要用什么函数,所以尽可能的满足用户大众口味而已。如果你需要用的比较复杂,还是调用API自己写类吧。
希望我的回答对您有所帮助
使用webbrowser空间实现很简单
一。 首先在窗体头部定义 Dim WithEvents MyDom As MSHTML.HTMLDocument
其次找到element对象 myDom=WebBrowser1.Document.getElementsByName("sa")
最后执行onclick : mydom.onclick
二.还有想要实现点击,直接执行点击的相应函数即可例如:假设想实现点击下面的Inputbox
input id="busT1" name="busT" type="radio" value="1" class="input5" checked="checked" onclick="busSwitchDiv('changeDiv')" tabindex="18"/
那么直接执行onclick里的函数busSwitchDiv('changeDiv')即可,执行语句如下:
WebBrowser1.Document.parentwindow.execscript "busSwitchDiv('changeDiv')"
你每点一次tab是从你那个按钮的下一个控件向后跳跃的。
因为你点的时候,你的当前控件就是你的按钮。
2种方法:
1。用两个界面,一个界面的按钮控制另一个界面的tab跳跃
2。每次tab变化都记录一下,这样你才能得到点按钮之前是那个控件为当前,才能nextcongtrol
要求不多的话,完全可以用按键精灵的,你用vb.net去实现的话,反而啰嗦了。。。
这是不可能完成的任务,.NET平台不存在开发驱动的能力,你要想在驱动层对键盘操作,最好使用C,C++来实现,比较方便。 像现在一些比较出名的网络游戏,都是在驱动层进行保护的。