FindWindow(
lpClassName,
{窗口的類名}
lpWindowName: PChar
{窗口的標題}
): HWND;
{返回窗口的句柄; 失敗返回 0}
//FindWindowEx 比 FindWindow 多出兩個句柄參數:
FindWindowEx(
Parent: HWND;
{要查找子窗口的父窗口句柄}
Child: HWND;
{子窗口句柄}
ClassName: PChar;
{}
WindowName: PChar
{}
): HWND;
{
若是 Parent 是 0, 則函數以桌面窗口爲父窗口, 查找桌面窗口的全部子窗口;
若是 是 HWND_MESSAGE, 函數僅查找全部消息窗口;
子窗口必須是 Parent 窗口的直接子窗口;
若是 Child 是 0, 查找從 Parent 的第一個子窗口開始;
若是 Parent 和 Child 同時是 0, 則函數查找全部的頂層窗口及消息窗口.
}
//測試1: 試着找找新建程序主窗口的句柄
var
h: HWND;
begin
{如今咱們知道窗口的標題是: Form一、窗口的類名是: TForm1}
h := FindWindow(
'TForm1',
'Form1');
ShowMessage(IntToStr(h));
{656180; 這是隨機, 每次啓動窗口確定不同}
{假如不知道類名}
h := FindWindow(
nil,
'Form1');
ShowMessage(IntToStr(h));
{656180}
{假如不知道標題名}
h := FindWindow(
'TForm1',
nil);
ShowMessage(IntToStr(h));
{656180}
{其實這個窗口的句柄不就是 Self.Handle 嗎}
ShowMessage(IntToStr(Handle));
{656180}
end;
//測試2: 找計算器窗口的句柄(先打開計算器)
var
h: HWND;
begin
{若是不是簡體中文系統, 這樣可能不靈}
h := FindWindow(
nil,
'計算器');
ShowMessage(IntToStr(h));
{1508334}
{最好這樣, 但你得提早知道計算器窗口的類名是: SciCalc}
h := FindWindow(
'SciCalc',
nil);
ShowMessage(IntToStr(h));
{1508334}
end;