FindWindow怎么用
Find Window的函數原型:
FindWindow(
lpClassName, {窗口的類名}
lpWindowName: PChar {窗口的標題}
): HWND; {返回窗口的句柄; 失敗返回 0}
C語言測試代碼(假如要查系統自帶的 放大鏡 窗口,前提是已經打開放大鏡窗口):
HWND h = FindWindow(NULL, "放大鏡");
if(0 == h)
{
ShowMessage("can't find 放大鏡");
}
el
{
ShowMessage(IntToStr(h)); //查找到窗口,并且打印出該窗口的句柄
}
findwindow用法
CWnd*
phwnd=FindWindow("CFindWindowFunDlg",NULL);
前面是類名,后面窗口名。或者用spy++確認一下類名是否正確。
C語言中的findwindow()函數參數是什么?
1.函數說明:FindWindow,Win32 API函數。
FindWindow函數返回與指定字符串相匹配的窗口類名或窗口名的最頂層窗口的窗口句柄。這個函數不會查找子窗口。
2.函數原型:
HWND FindWindow( LPCTSTR lpClassName,
LPCTSTR lpWindowName
);3.參數說明:
lpClassName
指向一個以null結尾的、用來指定類名的字符串或一個可以確定類名字符串的原子。如果這個參數是一個原子,那么它必須是一個在調用此函數前已經通過GlobalAddAtom函數創建好的全局原子。這個原子(一個16bit的值),必須被放置在lpClassName的低位字節中,lpClassName的高位字節置零。
lpWindowName
指向一個以null結尾的、用來指定窗口名(即窗口標題)的字符串。如果此參數為NULL,則匹配所有窗口名。
4返回值:
如果函數執行成功,則返回值是擁有指定窗口類名或窗口名的窗口的句柄。
如果函數執行失敗,則返回值為 NULL 。可以通過調用GetLastError函數獲得更加詳細的錯誤信息。5.使用示例:HWND hWndRcv = ::FindWindow(NULL,"123");if(hWndRcv != NULL){ AfxMessageBox("找到123窗口");}
請教vb中findwindow的用法
請參考:
VB聲明
Declare Function FindWindow Lib "ur32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
說明
尋找窗口列表中第一個符合指定條件的頂級窗口(在vb里使用:FindWindow最常見的一個用途是獲得ThunderRTMain類的隱藏窗口的句柄;該類是所有運行中vb執行程序的一部分。獲得句柄后,可用api函數GetWindowText取得這個窗口的名稱;該名也是應用程序的標題)
返回值
Long,找到窗口的句柄。如未找到相符窗口,則返回零。會設置GetLastError
參數表
參數 類型及說明
lpClassName String,指向包含了窗口類名的空中止(C語言)字串的指針;或設為零,表示接收任何類
lpWindowName String,指向包含了窗口文本(或標簽)的空中止(C語言)字串的指針;或設為零,表示接收任何窗口標題
注解
很少要求同時按類與窗口名搜索。為向自己不準備參數傳遞一個零,最簡便的辦法是傳遞vbNullString常數
示例
Dim hw&, cnt&
Dim rttitle As String * 256
hw& = FindWindow("ThunderRT5Main", vbNullString) ' ThunderRTMain under VB4
cnt = GetWindowText(hw&, rttitle, 255)
MsgBox Left$(rttitle, cnt), 0, "RTMain title"
findwindowA 和findwindow 有什么區別?
#ifdef UNICODE
#define FindWindow FindWindowW
#el
#define FindWindow FindWindowA
#endif // !UNICODE
編譯器會給程序指定當前字符集。
如果是ANSI字符集 則FindWindow完全等同于FindWindowA。
如果是Unicode字符集,則FindWindow完全等同于FindWindowW,而FindWindowA此時與FindWindow完全是兩個不同函數。
也就是說,Windows中不存在名為FindWindow的函數,僅存在FindWindowA和FindWindowW。而FindWindow實際上是被定義的別名。
findwindow用法
你這樣寫是不對的
"aa$" 這是一個字符串
你應該寫成
Private Sub Form_Load()
dim aa as string
Text1.Text = ""
aa = Text1.Text
hwd = FindWindow(vbNullString, aa): Dim XX As Long '這里要改
XX = SetWindowPos(Me.Hwnd, Hwndx, 0, 0, 0, 0, 3)
End Sub