如何关闭一个已知Title的应用程序?

barton 2000-05-04 02:15:00
如何关闭一个已知Title的应用程序?
例如,在编写ISAPI应用程序时每一次编译都只能重启Windows,
我已查到PWS的Title是inetinfo,如何写一个应用程序关闭它?
FindWindow('',inetinfo'')
FindWindow('inetinfo','')
FindWindow('inetinfo','inetinfo')
都找不到窗口。
...全文
132 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
snakezou 2000-05-08
  • 打赏
  • 举报
回复
我刚写了一个这方面的程序,跟superdelphi的一样:
procedure TForm1.Button1Click(Sender: TObject)
var ExeHandle: HWND;
begin
ExeHandle:=FindWindow(nil,'你的标题');
SendMessage(ExeHandle,WM_CLOSE,0,0);
end;

我已经试过了,应该没问题。
superdelphi 2000-05-07
  • 打赏
  • 举报
回复
Try: SendMessage(ExeHandle,wm_close,0,0)
1.标题确定的
Procedure TForm1.Btn1Click()
var
ExeHandle:THandle;
Begin
ExeHandle:=FindWindow(Nil,'文件管理器');
SendMessage(ExeHandle,wm_close,0,0);
End;

2.标题不确定的
Procedure TForm1.Btn2Click()
var
ExeHandle:THandle;
Begin
ExeHandle:=FindWindow('NotePad',Nil);
SendMessage(ExeHandle,wm_close,0,0);
End;
haiyang 2000-05-04
  • 打赏
  • 举报
回复
hCurrentWindow: HWnd;//窗口句柄
hCurrentWindow := GetWindow(Handle, GW_HWNDFIRST)//取得当前窗口句柄
GetWindowText(hCurrentWindow, @szText, 255) //取得窗口标题(title)
hCurrentWindow := GetWindow(hCurrentWindow, GW_HWNDNEXT)//取下一个窗口句柄SendMessage(hCurrentWindow, WM_CLOSE, 0, 0);//关闭窗口
此法必须是Title是已知的!findwindow('','')前一个参数是类名(class name),后一个是窗口名(windows name--the window's title)(见帮助文件),因此我怀疑pws的title不是inetinfo!
我另有一例程,可列出当前所有正在运行的程序,包括程序文件名及路径,关闭程序,不过是强行关闭,使用的函数有:Process32First, Process32Next,TerminateProcess, CreatToolhelp32Snapshot, openprocess.
不过我还没把它整理好,若有兴趣请来E-mail:hq_pan@263.net

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧