麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Delphi > 正文

獲得其他程序的子窗體

2019-09-08 23:08:58
字體:
來源:轉載
供稿:網友
                                                                                                                                                       
                       通過一個父窗體的句柄,遞歸的枚舉它的子窗體,我們可以最終找到需要的子窗體。

  用法如下:

  nParentHandle: HWnd;
  nChildHandle: HWnd;

  nParentHandle := FindWindow(nil, ''Notepad'');
  if nParentHandle <> 0 then
    nChildHandle := FindChildWindow(nParentHandle, ''SomeChildEditsClassName'');

------函數代碼------

var
hwndFindChildWindow : HWND;

function EnumWindowsForFindChildWindowProc(WHandle: HWND; lParam: LPARAM): BOOL; export; stdcall;
const
MAX_WINDOW_NAME_LEN = 80;
var
sTargetClassName: string;
nHandle: HWnd;
sCurrClassName: string;
bResult: Boolean;
begin
if (hwndFindChildWindow <> 0) then
exit;
sTargetClassName := PChar(lParam);
sCurrClassName := GetWindowClass(WHandle);
bResult := CompareText(sCurrClassName, sTargetClassName) = 0;
If (bResult) then
hwndFindChildWindow := WHandle
else
FindChildWindow(WHandle, PChar(lParam));
end;

function FindChildWindow(hwndParent: HWnd; ClassName: PChar) : HWnd;
begin
try
EnumChildWindows(hwndParent, @EnumWindowsForFindChildWindowProc, LongInt(PChar(ClassName)));
Result := hwndFindChildWindow;
except
on Exception do
Result := 0;
end;
end;

//返回當前獲得焦點的窗體
function GetFocusedWindowFromParent(ParentWnd:HWnd):HWnd;
var
OtherThread,
Buffer : DWord;
idCurrThread: DWord;
begin
OtherThread := GetWindowThreadProcessID(ParentWnd, @Buffer);
idCurrThread := GetCurrentThreadID;
if AttachThreadInput(idCurrThread, OtherThread, true) then begin
Result := GetFocus;
AttachThreadInput(idCurrThread, OtherThread, false);
end
else
Result:= GetFocus;
end;

//獲得當前獲得焦點的子窗體,即使它是其他應用程序的窗體
function GetFocusedChildWindow: HWnd;
begin
Result := GetFocusedWindowFromParent(GetForegroundWindow);
end;

//獲得窗體的文本
function EIGetWinText(nHandle: Integer): string;
var
pcText: array[0..32768] of char;
begin
SendMessage(nHandle, WM_GETTEXT, 32768, LongInt(@pcText));
Result := pcText;
end;

//設定窗體的文本
procedure EISetWinText(nHandle: Integer; const sNewText: string);
begin
SendMessage(nHandle, WM_SETTEXT, Length(sNewText), LongInt(PChar(Trim(sNewText))));
end;

//返回窗體的類名
function EIGetWindowClass(const nHandle: HWnd): string;
var
szClassName: array[0..255] of char;
begin
GetClassName(nHandle, szClassName, 255);
Result := szClassName;
end;

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 国产精品999在线观看 | 日本一区二区不卡高清 | 黄色免费高清网站 | 4p一女两男做爰在线观看 | 欧美三级日本三级少妇99 | 日本中文字幕高清 | xp123精品视频 | 久久成人国产精品 | 亚洲精品日韩色噜噜久久五月 | 亚洲国产馆 | 欧美成在人线a免费 | 成人不卡在线观看 | 欧美激情精品久久久久 | 第一区免费在线观看 | 欧洲黄视频 | 免费国产网站 | 极品美女一级毛片 | 久草在线资源福利站 | 成人不卡在线观看 | 欧美三级日本三级少妇99 | 成人性视频欧美一区二区三区 | 毛片在线免费播放 | 久久草在线视频 | 国产亚洲精品久久久久婷婷瑜伽 | 中文字幕精品在线视频 | 日韩精品久久久久久久九岛 | 欧美黑人xx | 日本在线不卡一区二区 | 玖草在线资源 | 美女污污视频在线观看 | 精品久久久一二三区播放播放播放视频 | 欧美日韩在线视频一区 | 欧美精品一区二区三区四区 | 国产精品欧美久久久久一区二区 | 爱逼av | 国产一级做a爱片在线看免 2019天天干夜夜操 | 欧美国产一区二区三区 | 久久精品日本一区 | 国产1区2区3区在线观看 | 国产在线精品一区二区不卡 | 欧洲精品久久久久69精品 |