Private Sub Command1_Click() ReferForm "WebBrowser1", 2, "message", Text1.Text End Sub Private Sub Command2_Click() ReferForm "WebBrowser1", 8, "submit" End Sub Private Sub Form_Load() WebBrowser1.Navigate (" ") End Sub '************************************************************************* '**函 數(shù) 名:ReferForm '**中文意譯:表單提交 '**輸 入:ByVal WebbrowserA(String) - webbrowser控件名 '** :ByVal FormType(Integer) - 集合 表單類型 '** Text = 0; password = 1; textarea = 2; Hidden = 3; CheckBox = 4; submit = 8; button = 9 '** :Optional FormName(String) - 表單名[可選] '** :Optional Value(String = "") - 表單值[可選] '**輸 出:無(wú) '**功能描述: '** : '**作 者:最恨VB '**日 期:2008-01-31 07:46:14 '************************************************************************* Sub ReferForm(ByVal Webbrowser$, ByVal FormType%, Optional FormName$, Optional Value$ = "") If FormType 0 Or FormType 9 Then Exit Sub End If Dim objDoc, objTag Set objDoc = Me.Controls(Webbrowser).Document For i = 0 To objDoc.All.length - 1 Select Case UCase$(objDoc.All(i).tagName) Case "INPUT" Set objTag = objDoc.All(i) Select Case FormType Case 0, 1 If objTag.Name = FormName Then objTag.Value = Value End If Case 3 Case 4 If objTag.Name = FormName Then objTag.Click End If Case 8 If objTag.Type = FormName Then objTag.Click End If Case 9 If objTag.Typ
成都創(chuàng)新互聯(lián)公司執(zhí)著的堅(jiān)持網(wǎng)站建設(shè),小程序開發(fā);我們不會(huì)轉(zhuǎn)行,已經(jīng)持續(xù)穩(wěn)定運(yùn)營(yíng)10年。專業(yè)的技術(shù),豐富的成功經(jīng)驗(yàn)和創(chuàng)作思維,提供一站式互聯(lián)網(wǎng)解決方案,以客戶的口碑塑造品牌,攜手廣大客戶,共同發(fā)展進(jìn)步。
一、模擬鍵盤操作
以下示例程序當(dāng)點(diǎn)擊button1按鈕,模擬鍵盤在文本框textBox1中作輸入操作,詳細(xì)說(shuō)明請(qǐng)參看MSDN幫助中的SendKeys類。
//事件完整代碼
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象素,其它操作類似。
//引入名字空間
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);
}
添加服務(wù)引用,然后調(diào)用HelloWorld方法,將數(shù)據(jù)以參數(shù)的形式傳遞給 HelloWorld
用API函數(shù),以下代碼Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As LongPrivate Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As LongPrivate Const WS_EX_LAYERED = H80000
Private Const GWL_EXSTYLE = (-20)
Private Const LWA_ALPHA = H2
Private Const LWA_COLORKEY = H1Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Const HWND_TOPMosT = -1
Private Const SWP_NOMOVE = H2
Private Const SWP_NosIZE = H1
Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Const WM_KEYDOWN = H100
Const WM_KEYUP = H101
Const WM_CHAR = H102
Const VK_F1 = H70
Private Sub SendF1(hwnd) '調(diào)用這個(gè)過(guò)程即可對(duì)目標(biāo)窗體發(fā)送F1鍵
Call PostMessage(hwnd, WM_KEYDOWN, VK_F1, 0)
Call PostMessage(hwnd, WM_KEYUP, VK_F1, 0)
End Sub這里是發(fā)送F1的實(shí)例,各個(gè)按鍵對(duì)應(yīng)的虛擬鍵碼,要到網(wǎng)上查
看了很多這方便的解決方案,很多都是一大段代碼,版本也有差別,既然有可能別人用得起我也用不起。
我用一種最簡(jiǎn)單的方法,只要思路對(duì)所有人都能用得起。
其實(shí)非常簡(jiǎn)單,就是獲取鍵值,Ctrl+Enter的健值是10,是不是思路一下就通了。以下是源碼:
Private Sub 聊天輸入框_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles 聊天輸入框.KeyPress
If Asc(e.KeyChar) = 發(fā)送快捷鍵值 Then
發(fā)送消息過(guò)程()
End If
End Sub
源內(nèi)容出處:
本文名稱:vb.net發(fā)送按鍵 vbs發(fā)送組合鍵
網(wǎng)站URL:http://aaarwkj.com/article8/hhhpip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、用戶體驗(yàn)、響應(yīng)式網(wǎng)站、服務(wù)器托管、營(yíng)銷型網(wǎng)站建設(shè)、網(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)
猜你還喜歡下面的內(nèi)容