一、模擬鍵盤(pán)操作
十多年的海興網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營(yíng)銷(xiāo)推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整海興建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)從事“海興網(wǎng)站設(shè)計(jì)”,“海興網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
以下示例程序當(dāng)點(diǎn)擊button1按鈕,模擬鍵盤(pán)在文本框textBox1中作輸入操作,詳細(xì)說(shuō)明請(qǐng)參看MSDN幫助中的SendKeys類(lèi)。
//事件完整代碼
private void button1_Click(object sender, System.EventArgs e)
{
this.textBox1.Focus(); //先必須讓文本框得到焦點(diǎn),因?yàn)榻裹c(diǎn)在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
}
二、模擬鼠標(biāo)操作
以下示例程序當(dāng)點(diǎn)擊DBButton按鈕,模擬鼠標(biāo)雙擊窗體事件,并將鼠標(biāo)向左上方移動(dòng)10*10象素,其它操作類(lèi)似。
//引入名字空間
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); //移動(dòng)鼠標(biāo),否則事件發(fā)生在按鈕上
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框架就是對(duì)API就行封裝,做成一個(gè)個(gè)的類(lèi)然后可以讓你輕松調(diào)用,但是。net封裝的內(nèi)容,是常用的內(nèi)容,有些東西用的時(shí)候,還是需要調(diào)用API函數(shù),自己寫(xiě),畢竟,微軟不知道你要用什么函數(shù),所以盡可能的滿足用戶大眾口味而已。如果你需要用的比較復(fù)雜,還是調(diào)用API自己寫(xiě)類(lèi)吧。
希望我的回答對(duì)您有所幫助
使用webbrowser空間實(shí)現(xiàn)很簡(jiǎn)單
一。 首先在窗體頭部定義 Dim WithEvents MyDom As MSHTML.HTMLDocument
其次找到element對(duì)象 myDom=WebBrowser1.Document.getElementsByName("sa")
最后執(zhí)行onclick : mydom.onclick
二.還有想要實(shí)現(xiàn)點(diǎn)擊,直接執(zhí)行點(diǎn)擊的相應(yīng)函數(shù)即可例如:假設(shè)想實(shí)現(xiàn)點(diǎn)擊下面的Inputbox
input id="busT1" name="busT" type="radio" value="1" class="input5" checked="checked" onclick="busSwitchDiv('changeDiv')" tabindex="18"/
那么直接執(zhí)行onclick里的函數(shù)busSwitchDiv('changeDiv')即可,執(zhí)行語(yǔ)句如下:
WebBrowser1.Document.parentwindow.execscript "busSwitchDiv('changeDiv')"
你每點(diǎn)一次tab是從你那個(gè)按鈕的下一個(gè)控件向后跳躍的。
因?yàn)槟泓c(diǎn)的時(shí)候,你的當(dāng)前控件就是你的按鈕。
2種方法:
1。用兩個(gè)界面,一個(gè)界面的按鈕控制另一個(gè)界面的tab跳躍
2。每次tab變化都記錄一下,這樣你才能得到點(diǎn)按鈕之前是那個(gè)控件為當(dāng)前,才能nextcongtrol
要求不多的話,完全可以用按鍵精靈的,你用vb.net去實(shí)現(xiàn)的話,反而啰嗦了。。。
這是不可能完成的任務(wù),.NET平臺(tái)不存在開(kāi)發(fā)驅(qū)動(dòng)的能力,你要想在驅(qū)動(dòng)層對(duì)鍵盤(pán)操作,最好使用C,C++來(lái)實(shí)現(xiàn),比較方便。 像現(xiàn)在一些比較出名的網(wǎng)絡(luò)游戲,都是在驅(qū)動(dòng)層進(jìn)行保護(hù)的。
名稱(chēng)欄目:vb.net用按鍵模 vb復(fù)制按鈕
網(wǎng)頁(yè)URL:http://aaarwkj.com/article42/hhhpec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗(yàn)、電子商務(wù)、品牌網(wǎng)站制作、品牌網(wǎng)站設(shè)計(jì)、企業(yè)建站、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)