如何用delphi控制其它窗口?
时间: 2023-03-04 21:33:26 浏览: 232
在 Delphi 中,可以使用 Windows API 函数来控制其他窗口,以下是一些常用的 Windows API 函数和其对应的 Delphi 函数:
1. FindWindow:查找窗口句柄
```delphi
function FindWindow(lpClassName, lpWindowName: PChar): HWND; stdcall;
```
其中,lpClassName 参数为窗口类名,可以传入 nil;lpWindowName 参数为窗口标题,可以传入部分或完整的窗口标题。
2. SetForegroundWindow:将窗口置顶并获得焦点
```delphi
function SetForegroundWindow(hWnd: HWND): BOOL; stdcall;
```
其中,hWnd 参数为窗口句柄。
3. SendMessage:发送消息给窗口
```delphi
function SendMessage(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
```
其中,hWnd 参数为窗口句柄;Msg 参数为消息类型;wParam 和 lParam 参数为消息的附加参数,具体含义取决于消息类型。
举个例子,下面的代码演示了如何查找记事本窗口并向其发送一条 WM_CLOSE 消息,以关闭记事本应用程序:
```delphi
procedure CloseNotepad;
var
hWnd: HWND;
begin
// 查找记事本窗口
hWnd := FindWindow(nil, '无标题 - 记事本');
if hWnd <> 0 then
begin
// 向记事本窗口发送 WM_CLOSE 消息
SendMessage(hWnd, WM_CLOSE, 0, 0);
end;
end;
```
请注意,使用 Windows API 函数来控制其他窗口可能会对系统稳定性产生影响,建议谨慎使用,并根据具体情况做好错误处理。
阅读全文