我有一个应用程序有一些控件(按钮、编辑等)的窗口。我需要模拟用户事件(如 Tab 单击和输入文本)。我在用着keybd_event
在 Tab 键顺序控件(编辑框)之间移动焦点并为其输入文本。但我需要知道当前焦点控件的句柄(例如从中获取文本或更改其样式)。我该如何解决?
附注
我现在正在写 Delphi,但这并不重要(Win-API 到处都一样)。
请参阅中的备注部分GetFocus http://msdn.microsoft.com/en-us/library/ms646294%28v=vs.85%29.aspx' 文档以解释以下示例。
function GetFocus: HWND;
var
Wnd: HWND;
TId, PId: DWORD;
begin
Result := windows.GetFocus;
if Result = 0 then begin
Wnd := GetForegroundWindow;
if Wnd <> 0 then begin
TId := GetWindowThreadProcessId(Wnd, PId);
if AttachThreadInput(GetCurrentThreadId, TId, True) then begin
Result := windows.GetFocus;
AttachThreadInput(GetCurrentThreadId, TId, False);
end;
end;
end;
end;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)