Delphi如何获得窗口的名字?
答案:2 悬赏:10 手机版
解决时间 2021-01-22 23:38
- 提问者网友:遁入空寂
- 2021-01-22 18:55
就是获得我当前所有运行的窗口名,用来做老板键的。就比如,我桌面上有记事本、百度网页、和Q聊这几个窗口,就可以获取他们的名字,存入数组。
最佳答案
- 五星知识达人网友:笑迎怀羞
- 2021-01-22 20:13
用WindowsAPI EnumWindows可以实现你想要的功能。
EnumWindows枚举所有窗口,用GetWindowText获得标题。
具体代码如下:
function EnumWndProc(hwnd: THandle; lParam: LPARAM): Boolean; stdcall;
var
wndTitle: array[0..255] of Char;
begin
//获取窗口名称
if GetWindowText(hwnd, wndTitle, 255) > 0 then
begin
//参数lParam转换为TStrings,添加窗口标题
TStrings(lParam).Add(wndTitle);
end;
//返回True则继续下一个窗口,否则停止
Result := True;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
List: TStrings;
begin
List := Memo1.Lines;
EnumWindows(@EnumWndProc, Integer(List));
end;
EnumWindows枚举所有窗口,用GetWindowText获得标题。
具体代码如下:
function EnumWndProc(hwnd: THandle; lParam: LPARAM): Boolean; stdcall;
var
wndTitle: array[0..255] of Char;
begin
//获取窗口名称
if GetWindowText(hwnd, wndTitle, 255) > 0 then
begin
//参数lParam转换为TStrings,添加窗口标题
TStrings(lParam).Add(wndTitle);
end;
//返回True则继续下一个窗口,否则停止
Result := True;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
List: TStrings;
begin
List := Memo1.Lines;
EnumWindows(@EnumWndProc, Integer(List));
end;
全部回答
- 1楼网友:煞尾
- 2021-01-22 21:14
忒复杂了,看不懂啊
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯