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
{現在我們知道視窗的标題是: Form1、視窗的類名是: TForm1}
h := FindWindow('TForm1', 'Form1');
ShowMessage(IntToStr(h)); {656180; 這是随機, 每次啟動視窗肯定不一樣}
{假如不知道類名}
h := FindWindow(nil, 'Form1');
ShowMessage(IntToStr(h)); {656180}
{假如不知道标題名}
h := FindWindow('TForm1', nil);
{其實這個視窗的句柄不就是 Self.Handle 嗎}
ShowMessage(IntToStr(Handle)); {656180}
end;
//測試2: 找電腦視窗的句柄(先打開電腦)
{如果不是簡體中文系統, 這樣可能不靈}
h := FindWindow(nil, '電腦');
ShowMessage(IntToStr(h)); {1508334}
{最好這樣, 但你得提前知道電腦視窗的類名是: SciCalc}
h := FindWindow('SciCalc', nil);