Delphi获得一个进程的主窗体
来源:互联网 发布:山下智久 知乎 编辑:程序博客网 时间:2024/05/02 01:22
type
TMainWindow = packed record
ProcessID: THandle;
MainWindow: THandle;
end;
PMainWindow =^ TMainWindow;
function IsMainWindow(AHandle: THandle): Boolean;
begin
Result :=(GetWindow(AHandle, GW_OWNER) = 0) and (IsWindowVisible(AHandle));
end;{ IsMainWindow }
function fFindMainWindow(hWnd: THandle; lParam: PMainWindow): BOOL; stdcall;
var
vProcessID: THandle;
begin
GetWindowThreadProcessId(hWnd, vProcessID);
if (lParam^.ProcessID = vProcessID) and IsMainWindow(hWnd) then
begin
lParam^.MainWindow := hWnd;
Result := False;
end else Result := True;
end;
function FindMainWindow(AProcessID: THandle): THandle;
var
vMainWindow: TMainWindow;
begin
vMainWindow.ProcessID := AProcessID;
vMainWindow.MainWindow := 0;
EnumWindows(@fFindMainWindow, Integer(@vMainWindow));
Result := vMainWindow.MainWindow;
end;{ FindMainWindow }
procedure TForm1.Button1Click(Sender: TObject);
begin
Caption := Format('Application.Handle: %d, FindMainWindow(): %d',[
Application.Handle, FindMainWindow(GetCurrentProcessId)]);
end;
- Delphi获得一个进程的主窗体
- C#一个窗体Form2获得另一个窗体Form1的方法
- 获得其他进程的所有窗体的方法
- delphi中获得进程列表或想要的进程(枚举进程、遍历进程)
- Delphi如何访问一个进程的内存空间
- 一个通过某个部件获得父窗体的例子
- c# 其它窗体获得当前应用程序主窗体的句柄
- Delphi 主窗体最小化, 从窗体保持大小的方法
- DELPHI在一个窗体中打开另外一个窗体的问题
- 移花接木,Delphi中主窗体的转移。
- Delphi-----窗体的属性
- Delphi 窗体的事件
- Delphi窗体的继承
- Delphi 窗体的事件
- Delphi的窗体停靠
- Delphi中一个获得窗口图象的函数
- Delphi工程主窗体显示并最大化一个特殊例子
- Winform中怎样在一个窗体中获得另一个窗体中的控件的值?
- C#解号称爱因斯坦出的智力题
- 使用Microsoft HTML Help Workshop制作CHM帮助文件
- cscope在windows下使用mingw编译的方法
- MD5算法
- 林园4月21日北大投资报告会实录
- Delphi获得一个进程的主窗体
- SQL语言 - 自连接
- 日进斗金的Google广告
- JAVA 连接 oracle
- 学习笔记:Unicode与UTF8互转
- 写给18岁以后的成年人
- 添加系统托盘图标
- 复习一下范式
- TIMESTAMP数据类型-007