文章編號:10652時間:2024-09-28人氣:
FindWindow 函數在 Windows 應用程序中查找具有指定類名和窗口標題的窗口。
HWND FindWindow(LPCTSTR lpClassName, // 窗口類的名稱LPCTSTR lpWindowName // 窗口的標題 );
如果函數成功,它將返回窗口的句柄。如果函數失敗,它將返回 NULL。
HWND hwnd = FindWindow("Notepad", NULL);
上面的示例查找一個名為 "Notepad" 的窗口。如果找到該窗口,則 hwnd 將包含窗口的句柄。否則,hwnd 將為 NULL。
?Declare Function FindWindow Lib user32 Alias FindWindowA (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 這個函數有兩個參數,第一個是要找的窗口的類,第二個是要找的窗口的標題。 在搜索的時候不一定兩者都知道,但至少要知道其中的一個。 有的窗口的標題是比較容易得到的,如計算器,所以搜索時應使用標題進行搜索。 但有的軟件的標題不是固定的,如記事本,如果打開的文件不同,窗口標題也不同,這時使用窗口類搜索就比較方便。 如果找到了滿足條件的窗口,這個函數返回該窗口的句柄,否則返回0。 前面提到的VB的FindWindow()函數的聲明將兩個參數都定義為String類型,而在實際使用過程中,如果我們忽略某個參數就將該參數的定義又As String改為As Any。 這里的As Any相當于C語言中的強制類型轉換。 例如,如果我們忽略窗口的類,就將定義修改如下: Declare Function FindWindow Lib user32 Alias FindWindowA (ByVal lpClassName As Any, ByVal lpWindowName As String) As Long然后,在調用時使用如下語句: hwndCalc = FindWindow(0&, 計算器)這里的0&就表示忽略類名。 需要注意的是FindWindow(0&, 計算器)和FindWindow(, 計算器)有兩種完全不同的含義,前者表示忽略窗口的類,而后者表示窗口的類是個空串。 類似的,我們也可以忽略標題而搜索指定的類。 從上面的討論中可以看出,如果要搜索的外部程序的窗口標題比較容易得到,問題是比較簡單的。 可如果窗口的標題不固定或者根本就沒有標題,怎么得到窗口的類呢?如果你安裝了Visual C++,你可以使用其中的Spy++(如果沒有VC++,在VB的盤上也可以找到Spy),在Spy++中有一個FindWindow工具,它允許你使用鼠標選擇窗口,然后Spy++會顯示這個窗口的類。 在Win32 API中還有一個FindWindowEx,它非常適合尋找子窗口。 用法示例Option Explicit private Declare Function FindWindow Lib user32 Alias FindWindowA ( _ByVal lpClassName As String, _ByVal lpWindowName As String) 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 LongPrivate Declare Function GetClassName Lib user32 Alias GetClassNameA ( _ByVal hWnd As Long, _ByVal lpClassName As String, _ByVal nMaxCount As Long) As LongPrivate Declare Function ShowWindow Lib user32 ( _ByVal hWnd As Long, _ByVal nCmdShow As Long) As LongConst SW_SHOWNORMAL = 1Const WM_CLOSE = &H10Public Sub test()Dim hWnd As Long不知道類名hWnd = FindWindow(vbNullString, 計算器) hWndEnd Sub Public Sub test2()Dim hWnd As Long知道計算器窗口的類名是: SciCalchWnd = FindWindow(SciCalc, vbNullString) hWndEnd Sub Public Sub Test3() Dim hWnd As LongDim lpClassName As StringDim retVal As LonghWnd = FindWindow(vbNullString, 計算器)If hWnd = 0 Then MsgBox Couldnt find the window ...: Exit SubShow the windowShowWindow hWnd, SW_SHOWNORMALCreate a bufferlpClassName = Space(256)retrieve the class nameretVal = GetClassName(hWnd, lpClassName, 256)Show the Classname: + Left(lpClassName, retVal)Post a message to the window to close itPostMessage hWnd, WM_CLOSE, 0&, 0& ? MySQL 的 find_in_set函數使用方法很多時候我們在設計數據庫時有這種情況,比如:有個文章表里面有個type字段,他存儲的是文章類型,有 1頭條,2推薦,3熱點,4圖文 .....11,12,13等等現在有篇文章他既是 頭條,又是熱點,還是圖文,type中以 1,3,4的格式存儲.那們我們如何用sql查找所有type中有4圖文標準的文章呢,這就要我們的find_in_set出馬的時候到了.先看mysql手冊中find_in_set函數的語法:FIND_IN_SET(str,strlist)假如字符串str 在由N 子鏈組成的字符串列表strlist 中,則返回值的范圍在 1 到 N 之間。 一個字符串列表就是一個由一些被‘,’符號分開的自鏈組成的字符串。 如果第一個參數是一個常數字符串,而第二個是type SET列,則 FIND_IN_SET() 函數被優化,使用比特計算。 如果str不在strlist 或strlist 為空字符串,則返回值為 0 。 如任意一個參數為NULL,則返回值為 NULL。 這個函數在第一個參數包含一個逗號(‘,’)時將無法正常運行。 mysql> SELECT FIND_IN_SET(b,a,b,c,d);-> 2用起來很簡單就以上面我說到的情況來舉例:以下為引用的內容:select * from article where FIND_IN_SET(4,type)
CWnd*phwnd=FindWindow(CFindWindowFunDlg,NULL);前面是類名,后面窗口名。 或者用spy++確認一下類名是否正確。
FindWindowEx說明在窗口列表中尋找與指定條件相符的第一個子窗口返回值Long,找到的窗口的句柄。 如未找到相符窗口,則返回零。 會設置GetLastError參數表參數類型及說明hWnd1Long,在其中查找子的父窗口。 如設為零,表示使用桌面窗口(通常說的頂級窗口都被認為是桌面的子窗口,所以也會對它們進行查找)hWnd2Long,從這個窗口后開始查找。 這樣便可利用對FindWindowEx的多次調用找到符合條件的所有子窗口。 如設為零,表示從第一個子窗口開始搜索lpsz1String,欲搜索的類名。 零表示忽略lpsz2String,欲搜索的類名。 零表示忽略
解決方法:在調用FindWindow函數的時候,應該第一個參數為空,第二個參數為窗口的標題名。 classname是窗口在創建時的注冊名稱,不是源代碼的類名,通常可以不指定,除非確切地知道。 另外,vc自帶一個spy++的工具,可以探查當前所有窗口的信息,包括注冊類名。 FindWindow這個函數檢索處理頂級窗口的類名和窗口名稱匹配指定的字符串。 這個函數有兩個參數,第一個是要找的窗口的類,第二個是要找的窗口的標題。 在搜索的時候不一定兩者都知道,但至少要知道其中的一個。
第一步執行EnumWindowsProc API函數第二步,在EnumWindowsProc的回調函數里執行GetWindowThreadProcessId API函數獲得Window句柄對應的ProcessID然后判斷ProcessID是否和這個游戲的ProcessID一致,就可以拿到窗體句柄了
內容聲明:
1、本站收錄的內容來源于大數據收集,版權歸原網站所有!
2、本站收錄的內容若侵害到您的利益,請聯系我們進行刪除處理!
3、本站不接受違法信息,如您發現違法內容,請聯系我們進行舉報處理!
4、本文地址:http://www.hudongshop.com/article/604ac2f4f06729142ec5.html,復制請保留版權鏈接!
Wireshark是一款強大的網絡協議分析器,可用于識別和應對網絡攻擊,通過捕獲和分析網絡流量,Wireshark可以提供對網絡活動全面的可視性,使安全分析師能夠識別異常模式、檢測惡意流量并追蹤網絡攻擊,使用Wireshark捕獲數據包為了使用Wireshark分析網絡流量,您需要先捕獲數據包,以下是捕獲數據包的步驟,打開Wiresh...。
本站公告 2024-09-27 06:53:01
Linux是一個強大的開源操作系統,被廣泛用于服務器、個人電腦和嵌入式系統,要充分利用Linux的功能,了解其命令行和文件系統至關重要,本指南將為您提供一系列視頻教程,這些教程將一步一步地指導您了解Linux的基礎知識,這些教程適合所有技能水平的初學者,并且涵蓋了各種主題,從基本命令到高級文件系統管理,視頻教程命令行基礎Linux命令...。
本站公告 2024-09-23 11:40:12
由業內專家創建,經過數小時的深入講解什么是JavaScript,JavaScript是一種高級編程語言,用于創建動態、可交互的網頁,它是一種客戶端腳本語言,這意味著它在用戶的瀏覽器中執行,而不是在服務器端,JavaScript用于以下目的,驗證表單輸入創建交互式元素,例如下拉菜單和滑塊在頁面上加載和處理數據創建動畫和游戲JavaScr...。
最新資訊 2024-09-16 02:47:14
歡迎來到JavaScript編程的奇妙世界!我們在這里為您提供一系列精心挑選的視頻教程,旨在幫助您快速有效地掌握這門必不可少的編程語言,什么是JavaScript,JavaScript,JS,是一種廣泛用于Web開發的腳本語言,它是一種基于文本的語言,允許您為Web頁面添加交互性和動態行為,從驗證表單到創建交互式用戶界面,JavaSc...。
本站公告 2024-09-16 02:35:20
引言您的博客模板是您網站的第一印象,它可以決定訪問者是否會繼續閱讀您的文章并探索您的網站,選擇正確的模板對于創建一個引人入勝且專業的網站來說至關重要,選擇博客模板時需要注意的因素在選擇博客模板之前,請考慮以下因素,1.目標受眾誰是您目標受眾,他們的興趣和偏好是什么,選擇一個與他們的品味和風格相匹配的模板,2.博客內容您博客的內容是什么...。
本站公告 2024-09-14 23:56:39
概述文件上傳是Web開發中一項必不可少的任務,它使我們能夠從用戶接收文件并將其存儲在服務器上,PHP提供了強大的功能來處理文件上傳,從基本的表單處理到高級的進度跟蹤和錯誤處理,基礎知識要啟用文件上傳,我們需要在HTML表單中使用`enctype=multipart,form,data`屬性,這將指示瀏覽器將表單數據作為多部分數據發送,...。
技術教程 2024-09-08 19:23:57
JavaScript作為一門強大的編程語言,廣泛應用于Web開發、移動應用程序開發和游戲開發等領域,要精通JavaScript,需要深入理解其基礎和高級功能,JavaScript基礎變量和數據類型變量用于存儲數據,數據類型決定變量存儲數據的類型,JavaScript中的基本數據類型包括,字符串、數字、布爾值和null,undefine...。
本站公告 2024-09-07 15:30:26
JavaScriptreplace,方法是用于在字符串中搜索并替換特定子字符串的強大工具,它可以幫助您修改字符串內容、更正錯誤或執行其他文本操作,語法replace,方法的語法如下,```string.replace,searchValue,replaceValue,```其中,string是要替換的字符串,searchValue...。
本站公告 2024-09-06 22:38:08
引言織夢仿站是一種通過模仿其他網站的功能和設計來創建新網站的技術,通過遵循業界最佳實踐,仿站開發者可以創建可靠且有效的網站,遵守網頁標準使用有效的HTML和CSS代碼,遵循網絡無障礙指南,WCAG,2.0,確保所有用戶都可以訪問網站,使用響應式設計,讓網站在各種設備上都能正常顯示,優化網站加載速度,以提高用戶體驗,確保安全性使用安全套...。
互聯網資訊 2024-09-06 07:57:43
Photoshop是一款非常強大的圖像處理軟件,它可以幫助我們完成各種各樣的圖像處理任務,但是對于初學者來說,可能會覺得Photoshop非常復雜,不知道從何入手,本篇文章將為大家提供一份從零開始學習Photoshop的基礎知識的教程,希望能夠幫助大家快速入門,第一章,Photoshop的基礎知識在使用Photoshop之前,我們需要...。
技術教程 2024-09-02 01:58:17
蘋果手機發燙的原因及解決辦法一、發燙原因,1.高負荷運行,長時間使用高耗能應用如游戲、視頻編輯等,導致手機處理器高負荷工作,產生大量熱量,2.環境氣溫過高,在高溫環境下使用手機,散熱效果會受到影響,導致手機溫度升高,3.不當使用習慣,如手機被外部覆蓋物遮擋,影響散熱,或在充電時同時使用手機等,二、解決辦法,1.降低負荷,減少長時間高負...。
技術教程 2024-09-02 01:29:37