delphi 根据进程名 获取窗口标题 急救
比如进程taskmgr.exe的标题就是Windows任务管理器最好显示在text文本框里面谢谢大家!长命百岁...
比如 进程 taskmgr.exe 的标题就是 Windows 任务管理器
最好显示在text文本框里面 谢谢大家!长命百岁 展开
最好显示在text文本框里面 谢谢大家!长命百岁 展开
3个回答
展开全部
都六级了,多给点分。
下面以记事本为例子,获得指定进程 你自己传个变量就可以了。
procedure TForm1.Button1Click(Sender: TObject);
var
h: HWnd;
p: array[0..254] of char;
begin
Memo1.Clear;
h := GetWindow(Handle, GW_HWNDFIRST);
while h <> 0 do
begin
GetClassName(h, p, Length(p));
if p = 'Notepad' then
begin
GetWindowText(h, p, Length(p));
Memo1.Lines.Add(p);
Exit;
end;
h := GetWindow(h, GW_HWNDNEXT);
end;
end;
----------------
我用spy++ 看任务管理器的classname是 #32770 比较变态, 你用 #32770 替换成 if p = '#32770' then
begin 这句就行了
下面以记事本为例子,获得指定进程 你自己传个变量就可以了。
procedure TForm1.Button1Click(Sender: TObject);
var
h: HWnd;
p: array[0..254] of char;
begin
Memo1.Clear;
h := GetWindow(Handle, GW_HWNDFIRST);
while h <> 0 do
begin
GetClassName(h, p, Length(p));
if p = 'Notepad' then
begin
GetWindowText(h, p, Length(p));
Memo1.Lines.Add(p);
Exit;
end;
h := GetWindow(h, GW_HWNDNEXT);
end;
end;
----------------
我用spy++ 看任务管理器的classname是 #32770 比较变态, 你用 #32770 替换成 if p = '#32770' then
begin 这句就行了
展开全部
#33270是对话框的类,类似QQ啊什么的都是这个.....
特别是IE的弹出框,我根本捕捉不到#33270的窗口的句柄,用类名+标题名也不行....
只能用类名+NIL才检测到,但是无法向其发送消息....
有人在IE下做过类似的实验么......
特别是IE的弹出框,我根本捕捉不到#33270的窗口的句柄,用类名+标题名也不行....
只能用类名+NIL才检测到,但是无法向其发送消息....
有人在IE下做过类似的实验么......
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
关注,我也有同样问题,再次关注
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询