vb點(diǎn)虐自己的句柄 vbnet implements
VB點(diǎn)虐 獲取控件句柄
Dim hwnd0 As Integer
Dim hwnd11 As Integer
第二個是你要生成EXE后 運(yùn)行EXE
第三就是沒好像沒有文本框控件
VB獲取窗口句柄的詳細(xì)教程
1、首先在電腦中打開VB軟件,然后點(diǎn)擊窗口。
2、然后找到窗體布局窗口,就可以在這里,直接拖曳鼠標(biāo),設(shè)置窗體的位置。
3、如果沒有默認(rèn)打開,回到操作頁面中,找到并點(diǎn)擊如下圖的按鈕。
4、也可以找到stateUpPosition這個屬性。
5、然后在打開點(diǎn)頁面中,就可以根據(jù)自己的需要,設(shè)置預(yù)設(shè)的類型了。
求vb點(diǎn)虐句柄實(shí)例,實(shí)現(xiàn)操作其他程序窗口。如我給的例子
Imports?System.Text
Imports?System.Runtime.InteropServices
Public?Class?Form1
????'?相關(guān)API函數(shù)聲明,注釋掉的這里沒用到,但是也比較常用吧,這些函數(shù)的功能都能搜到。
????Private?Declare?Function?FindWindow?Lib?"user32"?Alias?"FindWindowA"?(ByVal?lpClassName?As?String,?ByVal?lpWindowName?As?String)?As?IntPtr
????Private?Declare?Function?FindWindowEx?Lib?"user32"?Alias?"FindWindowExA"?(ByVal?hWnd1?As?IntPtr,?ByVal?hWnd2?As?IntPtr,?ByVal?lpsz1?As?String,?ByVal?lpsz2?As?String)?As?IntPtr
????Private?Delegate?Function?EnumChildProc(ByVal?hWnd?As?IntPtr,?ByVal?lParam?As?Integer)?As?Boolean
????Private?Declare?Function?EnumChildWindows?Lib?"user32.dll"?(ByVal?hWndParent?As?IntPtr,?ByVal?lpEnumFunc?As?EnumChildProc,?ByVal?lParam?As?Integer)?As?Boolean
????Private?Declare?Auto?Function?SendMessage?Lib?"User32.dll"?(ByVal?hWnd?As?IntPtr,?ByVal?Msg?As?Integer,?ByVal?wParam?As?Integer,?ByVal?lParam?As?String)?As?Integer
????'Private?Declare?Function?CheckDlgButton?Lib?"user32"?Alias?"CheckDLGButtonA"?(ByVal?hDlg?As?IntPtr,?ByVal?nIDButton?As?IntPtr,?ByVal?wCheck?As?Integer)?As?Integer
????Private?Declare?Function?GetClassName?Lib?"user32"?Alias?"GetClassNameA"?(ByVal?hWnd?As?IntPtr,?ByVal?lpClassName?As?StringBuilder,?ByVal?nMaxCount?As?Integer)?As?Integer
????'Private?Declare?Function?GetWindowThreadProcessId?Lib?"user32"?Alias?"GetWindowThreadProcessId"?(ByVal?hwnd?As?IntPtr,?ByVal?lpdwProcessId?As?Long)?As?Integer
????Private?Declare?Auto?Function?GetWindowTextLength?Lib?"user32"?Alias?"GetWindowTextLength"?(ByVal?hwnd?As?IntPtr)?As?Integer
????Private?Declare?Function?GetWindowText?Lib?"user32"?Alias?"GetWindowTextA"?(ByVal?hwnd?As?IntPtr,?ByVal?lpString?As?StringBuilder,?ByVal?cch?As?Integer)?As?Integer
????'?相關(guān)消息定義,也有沒用到的
????Const?WM_SETTEXT?=?HC
????Const?WM_GETTEXT?=?HD
????'Const?WM_SETFOCUS?=?H7
????'Const?WM_KILLFOCUS?=?H8
????'Const?WM_CLOSE?=?H10
????'Const?WM_SYSCOMMAND?=?H112
????'Const?SC_CLOSE?=?HF060
????'Const?SC_MINIMIZE?=?HF020
????Const?BM_GETCHECK?=?HF0
????Const?BM_SETCHECK?=?HF1
????Const?BM_GETSTATE?=?HF2
????Const?BM_SETSTATE?=?HF3
????Const?BM_SETSTYLE?=?HF4
????Const?BM_CLICK?=?HF5
????'Const?BM_GETIMAGE?=?HF6
????'Const?BM_SETIMAGE?=?HF7
????Const?BST_UNCHECKED?=?O0
????Const?BST_CHECKED?=?O1
????Const?BST_INDETERMINATE?=?O2
????'?儲存窗口句柄
????Dim?WindowHandle?As?IntPtr
????'?儲存兩個(或者多個)編輯框句柄
????Dim?EditHandle?As?New?List(Of?IntPtr)
????Dim?EditWindowsText?As?List(Of?String)
????'?儲存復(fù)選框句柄
????Dim?CheckHandle?As?IntPtr?=?0
????Private?Sub?Form1_Load(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?MyBase.Load
????????Button1_Click(sender,?e)
????End?Sub
????'?EnumChildWindows?回調(diào)函數(shù),該函數(shù)名作為API函數(shù)EnumChildWindows?的一個參數(shù)
????'?該函數(shù)實(shí)現(xiàn)了枚舉各個子窗口,找出編輯框?qū)傩缘墓δ?/p>
????Public?Function?EnumChildProcC(ByVal?hwnd?As?IntPtr,?ByVal?lParam?As?Integer)?As?Boolean
????????Dim?dwWindowClass?As?StringBuilder?=?New?StringBuilder(100)
????????'?獲得某一個句柄的類名
????????GetClassName(hwnd,?dwWindowClass,?100)
????????If?dwWindowClass.ToString.Contains("EDIT")?Or?dwWindowClass.ToString.Contains("Edit")?Then?????'?類名包含EDIT的為編輯框
????????????EditHandle.Add(hwnd)????????????????????????'?存儲該句柄
????????End?If
????????'?返回?True?一直枚舉完
????????Return?True
????End?Function
????Private?Sub?Button1_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button1.Click
????????WindowHandle?=?FindWindow(vbNullString,?"登陸")
????????If?WindowHandle.ToInt32?=?0?Then
????????????MsgBox("未捕獲到窗口"?+?"登陸")
????????????Return
????????End?If
????????'?枚舉所有主窗口的子窗口(控件),枚舉時自動調(diào)用回調(diào)函數(shù),完成編輯框句柄的獲取
????????EnumChildWindows(WindowHandle,?AddressOf?EnumChildProcC,?0)
????????'?尋找復(fù)選框
????????CheckHandle?=?FindWindowEx(WindowHandle,?IntPtr.Zero,?vbNullString,?"記住密碼")
????????Dim?str?As?New?StringBuilder
????????Dim?j?As?Integer?=?0
????????'?對編輯框文本賦值
????????For?j?=?0?To?EditHandle.Count?-?1
????????????SendMessage(EditHandle(j),?WM_SETTEXT,?0,?"Text")
????????????'GetWindowText(EditHandle(j),?str,?20)
????????????'EditWindowsText.Add(Str.ToString)
????????????'Str.Clear()
????????Next
????????If?EditHandle.Count?=?0?Then
????????????MsgBox("未找到輸入框!")
????????End?If????????
????????If?CheckHandle.ToInt32??0?Then
????????????'CheckDlgButton(WindowHandle,?id,?1)
????????????'?對復(fù)選框進(jìn)行鼠標(biāo)單擊操作
????????????SendMessage(CheckHandle,?BM_CLICK,?0,?0)
????????????'SendMessage(CheckHandle,?BM_SETCHECK,?True,?0)
????????End?If
????End?Sub
????
End?Class
上一篇:vb點(diǎn)虐類引用窗體 vbnet instr
欄 目:vb.net
下一篇:vb點(diǎn)虐教程下載 vb net從入門到精通
本文標(biāo)題:vb點(diǎn)虐自己的句柄 vbnet implements
本文地址:http://mengdiqiu.com.cn/a1/vb_net/17053.html
您可能感興趣的文章


閱讀排行
本欄相關(guān)
- 04-02vb點(diǎn)虐獲取硬件溫度 vb獲取文件屬性
- 04-02vb點(diǎn)虐仿qq軟件 vb模擬
- 04-02vb點(diǎn)虐入門書籍推薦 vbnet入門經(jīng)典
- 04-02vb點(diǎn)虐教程下載 vb net從入門到精通
- 04-02vb點(diǎn)虐執(zhí)行打開文件 vb中打開文件的命
- 04-02vb點(diǎn)虐自己的句柄 vbnet implements
- 04-02包含vb點(diǎn)虐l(fā)oad的詞條
- 04-02vb點(diǎn)虐類引用窗體 vbnet instr
- 04-02vb點(diǎn)虐用啥編譯器 vb用什么編譯器好
- 04-02類的繼承vb點(diǎn)虐 類的繼承關(guān)系
隨機(jī)閱讀
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-10delphi制作wav文件的方法
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 04-02jquery與jsp,用jquery
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 01-10C#中split用法實(shí)例總結(jié)
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置