文章編號:10653時間:2024-09-28人氣:
FindWindowEx函數用于在 Windows 窗口層級中查找一個指定窗口。該函數可以通過指定父窗口和窗口類名或窗口標題來查找子窗口,也可以通過指定子窗口和窗口層級關系來查找父窗口或兄弟窗口。
HWND FindWindowEx(HWND hWndParent,HWND hWndChildAfter,LPCTSTR lpszClass,LPCTSTR lpszWindow);
HWND hWndParent = GetDesktopWindow();
HWND hWndChild = FindWindowEx(hWndParent, NULL, _T("Button"), NULL);
if (hWndChild != NULL)
{// 找到窗口,可以進行相關操作
}
下面的示例代碼演示如何使用 `FindWindowEx` 函數查找一個具有指定標題的父窗口:
HWND hWndChild = GetforegroundWindow(); HWND hWndParent = FindWindowEx(NULL, hWndChild, NULL, _T("記事本")); if (hWndParent != NULL) {// 找到窗口,可以進行相關操作 }
1 private void button2_Click(object sender, EventArgs e) 2 { 3 IntPtr hwnd = FindWindow(TGroupBox, 查詢條件); 4 if (hwnd != ) 5 { 6 (找到窗口); 7 } 8 else 9 {10 (沒有找到窗口);11 }12 hwnd = FindWindow(Notepad, null);13 if (hwnd != )14 {15 (找到記事本
FindWindowEx說明在窗口列表中尋找與指定條件相符的第一個子窗口返回值Long,找到的窗口的句柄。 如未找到相符窗口,則返回零。 會設置GetLASTError參數表參數類型及說明hWnd1Long,在其中查找子的父窗口。 如設為零,表示使用桌面窗口(通常說的頂級窗口都被認為是桌面的子窗口,所以也會對它們進行查找)hWnd2Long,從這個窗口后開始查找。 這樣便可利用對FindWindowEx的多次調用找到符合條件的所有子窗口。 如設為零,表示從第一個子窗口開始搜索lpsz1String,欲搜索的類名。 零表示忽略lpsz2String,欲搜索的類名。 零表示忽略
1.定義一個模塊, 內容為:Option ExplicitPublic Declare Function GetNExtWindow Lib user32 Alias GetWindow (ByVal hwnd As Long, ByVal wFlag As Long) As LongPublic Declare Function GetWindowText Lib user32 Alias GetWindowTextA (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As LongPublic Declare Function FindWindowa Lib user32 Alias FindWindowA (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPublic Declare Function GetForegroundWindow Lib user32 () As Long2. 給窗口加一個按鈕, 在按鈕的click事件里寫以下內容:Option ExplicitPrivate Sub Command1_Click()Dim hwnd As Longhwnd = GetForegroundWindow FindWindowa(Notepad, 新建 文本文檔 - 記事本)Dim str1 As String, len1 As Longstr1 = Space(255) 定義接收字串 hwnd, str1, 1024Do while hwnd <> 0 hwnd = GetNextWindow(hwnd, 2) 只有2才表示找下一個窗口 len1 = GetWindowText(hwnd, str1, Len(str1)) If (InStr(1, str1, 記事, 1) > 0) ThenMsgBox 你要的窗口找到了, 它是: + str1Exit Sub 這一句看情況修改 End IfLoopMsgBox 很遣憾, 沒有你要找的窗口End Sub3. 測試, 一定會通過..
FindWindow一般用了查找主窗口, 查找到主窗口后,用FindWindowEx查找里面的子窗口
找子窗口要用SPY++////////Private Declare Function FindWindowEx Lib user32 Alias FindWindowExA (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long 看里面的參數,第一個和第二個:ByVal hWnd1 As Long,ByVal hWnd2 As Long,這里都需要傳入句柄,再看第三個和第四個:ByVal lpsz1 As String, ByVal lpsz2 As String,這里所要傳入的是字符串。 具體意思如下: hWnd1 ---------- Long,在其中查找子的父窗口。 如設為零,表示使用桌面窗口(通常說的頂級窗口都被認為是桌面的子窗口,所以也會對它們進行查找) hWnd2 ---------- Long,從這個窗口后開始查找。 這樣便可利用對FindWindowEx的多次調用找到符合條件的所有子窗口。 如設為零,表示從第一個子窗口開始搜索 lpsz1 ---------- String,欲搜索的類名。 零表示忽略,注意一般傳入vbNullString lpsz2 ---------- String,欲搜索的類名。 零表示忽略,注意一般傳入vbNullString 用實踐幫我們分析,這里還是拿記事本開刀。 打開一個記事本,新建一個標準EXE,接著新建一個CommandButton,Caption設置為:設置文本。 OK,寫入以下代碼: Private Declare Function FindWindow Lib user32 Alias FindWindowA (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function FindWindowEx Lib user32 Alias FindWindowExA (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long Private Declare Function EnableWindow Lib user32 (ByVal hwnd As Long, ByVal fEnable As Long) As Long Private Sub Command1_Click() Dim WindowHandle As Long, ChildWindowHandle As Long WindowHandle = FindWindow(vbNullString, 無標題 - 記事本) If WindowHandle Then 如果獲取句柄成功 ChildWindowHandle = FindWindowEx(WindowHandle, 0, Edit, vbNullString) If ChildWindowHandle Then 如果成功獲取子句柄 EnableWindow ChildWindowHandle, False 禁用子窗口 Else MsgBox 無法獲取子窗口 End If End If End Sub 好了,幫大家分析。 看第一行:Dim WindowHandle As Long, ChildWindowHandle As Long,用于儲存獲取的句柄的。 WindowHandle = FindWindow(vbNullString, 無標題 - 記事本)這個就不用講了,上面已經講過。 ChildWindowHandle = FindWindowEx(WindowHandle, 0, Edit, vbNullString),這一段是通過我們已經獲取的記事本句柄獲取其中的子窗口句柄。 大家可以用Spy++查看到記事本的TextBox類,然后根據類名寫入即可。 EnableWindow ChildWindowHandle, False 這又是一個新的API,雖然前面我沒有前過,但是這個API使用起來及其簡單。 這個API中有兩個參數,第一個理所當然是傳入窗口句柄,第二個為Long變量,其實這里應該設為Boolean變量好些,主要是用來處理當前窗口是否可用。 True可用,False禁用。 現在F5運行,記得打開記事本哦,然后點擊Command1,看看能不能在記事本的文本框中輸入字符串?是否被禁用了?
內容聲明:
1、本站收錄的內容來源于大數據收集,版權歸原網站所有!
2、本站收錄的內容若侵害到您的利益,請聯系我們進行刪除處理!
3、本站不接受違法信息,如您發現違法內容,請聯系我們進行舉報處理!
4、本文地址:http://www.lmxpnzry.com/article/26912b7bc3ceae86f7d2.html,復制請保留版權鏈接!
FionaRead是一位開創性的作家,她的作品對當代文學產生了深遠的影響,她以其對人類狀況的深刻見解、扣人心弦的故事講述和對語言的精湛運用而聞名,從早期的短篇小說到備受贊譽的小說,Read一直挑戰著文學的界限,并因其對社會變革和人權的堅定承諾而受到贊譽,簡介FionaRead于1953年出生于澳大利亞悉尼,她在悉尼大學學習英語文學,并...。
互聯網資訊 2024-09-27 15:11:27
回退行為是導航策略的一個重要組成部分,它在用戶參與和網站可用性方面發揮著關鍵作用,當用戶在完成操作后希望返回到前一頁時,回退行為至關重要,例如當他們成功提交表單或在電子商務網站上完成購買時,回退行為作為導航策略的優點在導航策略中納入回退行為提供了一些重要的優點,1.改善用戶體驗回退行為讓用戶可以輕松返回到前一頁,而無需使用瀏覽器的后退...。
技術教程 2024-09-24 22:45:36
在Web應用程序中,后退按鈕是用戶用來返回先前瀏覽過的頁面的基本功能,JavaScript提供了強大的API,可以通過window.history.back,方法控制后退按鈕的行為,通過巧妙地使用此方法,您可以優化用戶體驗,提供更流暢、更直觀的導航,創建自定義后退行為,使用window.history.back,方法,您可以創建自...。
最新資訊 2024-09-24 22:33:30
概要415不支持的媒體類型錯誤表示服務器無法接受客戶端發送的媒體類型,這通常由客戶端和服務器之間媒體類型不匹配引起,本文將提供一個全面的指南來幫助您診斷和解決此錯誤,診斷要診斷415錯誤,您需要確定導致錯誤的根本原因,以下是一些可能的因素,不匹配的媒體類型,客戶端發送的媒體類型與服務器接受的媒體類型不匹配,無效的請求正文,客戶端發送的...。
互聯網資訊 2024-09-24 09:31:39
字形是指字體中每個字符的外觀,它的設計和構造極大地影響著可讀性,這是文本易于清晰快速閱讀的能力,清晰易辨的字形提高了可讀性,而復雜或花哨的字形則可能затрудняетпрочтение,閱讀困難,字形的特征字形的關鍵特征包括,筆畫,字符中線條或筆畫的類型和粗細字間距,字符之間的間距字符高度,字符頂部和底部的垂直距離字寬,字符兩側之...。
最新資訊 2024-09-23 03:40:47
什么是有害物質,有害物質是指任何對人體健康或環境造成危害的物質,這些物質可以是自然產生的,也可以是人造的,有害物質在我們的日常生活中隨處可見,從我們使用的清潔產品到我們食用的食物,有害物質對健康的危害有害物質可以通過多種途徑進入人體,包括,吸入攝入皮膚接觸暴露于不同類型有害物質會產生各種健康問題,包括,癌癥生殖問題神經系統損傷器官損傷...。
最新資訊 2024-09-16 09:05:20
項目成本管理是項目管理的一個重要部分,涉及到規劃、編制預算和控制項目的成本,有效的成本管理可以幫助確保項目在預算和時間范圍內完成,規劃成本管理的第一步是規劃,這包括,確定項目的范圍和目標識別并分析項目成本制定預算在規劃階段,重要的是要考慮項目的風險和不確定性,并制定應變計劃,以應對成本超支或其他意外事件,編制預算預算是一份詳細的財務計...。
本站公告 2024-09-15 18:52:08
在當今競爭激烈的市場中,企業需要找到一種方法來在競爭對手中脫穎而出,基于客戶價值的營銷是一種以客戶為中心的營銷方法,旨在建立長期、有利可圖的關系,通過專注于客戶的價值,企業可以創建更有針對性的營銷活動,從而提高銷售額和客戶忠誠度,什么是基于客戶價值的營銷,基于客戶價值的營銷是一種營銷方法,它將目標客戶視為獨特個體,并根據其價值來對待他...。
技術教程 2024-09-15 18:20:12
簡介sprintf,函數是C語言中用于格式化字符串的標準庫函數,它允許您使用格式化字符串和可變參數列表來創建格式良好的字符串,語法sprintf,函數的語法如下,cintsprintf,charstr,constcharformat,...,````str`是要格式化的字符串緩沖區,`format`是指定格式的文件格式字符串,`...。
技術教程 2024-09-15 12:06:33
什么是內連接,內連接是數據庫中連接兩個或多個表格的一種方法,它只保留在兩個表格中都存在匹配記錄的行,內連接使用以下語法,sqlSELECTFROMtable1INNERJOINtable2ONtable1.column,name=table2.column,name,其中,table1和table2是要連接的兩個表格,column,n...。
本站公告 2024-09-14 22:41:04
PHP是一種廣泛用于創建動態網站的流行編程語言,有許多PHP建站系統可供選擇,每個系統都有其優點和缺點,選擇最適合您需求的系統很重要,選擇PHP建站系統時需要考慮的因素在選擇PHP建站系統時,需要考慮以下因素,您的需求,你需要什么樣的功能,您是希望有一個簡單的博客還是一個復雜的電子商務網站,您的技能水平,您對PHP和web開發了解多少...。
最新資訊 2024-09-12 02:29:15
引言JSP是JavaServerPages的縮寫,是一種基于Java的動態網頁技術,它是一種服務器端腳本語言,可以將Java代碼嵌入到HTML頁面中,從而實現動態網頁的開發,在本文中,我們將深入探究JSP源碼,了解其幕后工作原理,JSP源碼的結構一個JSP文件由以下部分組成,模板文本,XML標記,JSP源碼中包含的HTML、XML和...。
技術教程 2024-09-07 16:23:04