如何在自己的程序中关闭其他程序? 1.使用FindWindow找到程序的Handle2.PostMessage(Handle,WM_Close,0,0); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如何在 Delphi 应用程序中, 去关闭外部已开启的应用程序?下面给出一段在 Delphi 中关闭“计算器”程序为例:varHWndCalculator : HWnd;begin// find the exist calculator windowHWndCalculator := Winprocs.FindWindow(nil, '计算器'); // close the exist Calculatorif HWndCalculator <> 0 thenSendMessage(HWndCalculator, WM_CLOSE, 0, 0);//用这个消息来关闭end;明白了吗? mysine(宝兰)的答复在程序员大本营里就有了,我的意思是说我并不知道a,b,c三个名字,我的程序能列出目前有这几个程序在运行,然后选择性的关闭。而不是先知道程序的名字再来关闭。 调用系统函数EnumWindows()获取指定窗体的句柄,在自己定义的回调函数中定义窗体的标题名或者类名。具体程序可在人民邮电出版社的一本叫《Delphi编程疑难详解》,作者:季雪岗等,不妨去书店转转? wuyh78(阿华),thanks不过我急需,有人知道吗? 只要有handle 不论是发消息还是杀进程都ez了,以下是所有窗口枚举procedure TForm1.Button1Click(Sender: TObject);var curwin:hwnd;text:array[0..255] of char;begincurwin:=getwindow(handle,GW_HWNDFIRST);while curwin<>0 do beginif getwindowtext(curwin,@text,255)>0 thenmemo1.Lines.Add(strpas(text));curwin:=getwindow(curwin,gw_hwndnext);end;end; redbirdli(火鸟):very good!请教一问题:如果想在我的应用程序中调用某一别的应用程序,比如调用AutoCAD,而我又无法确定我的AutoCAD程序安装在何处,那么我该如何做呢?比如我的应用程序在安装到别人的电脑上时,我是无法得知其AutoCAD会装在什么地方的……请各位一并赐教! 到注册表查一下autocad安装在哪里. 谢谢各位宝贵意见!可是: “用个对话框问问就行了”:有缺陷,因为对于某一使用我的程序的用户而言,他总不可能每次都要去对话框中找需要的应用程序吧,我想第一次可能可以通过对话框去找,但是第2次、第3次……,你每次要调用(AutoCAD)都要来个对话框,岂不太叫人…… mc_music(狂沙)兄:如何在程序中实现在注册表中查找实现呢?收索注册表似乎很慢啊! >>我想第一次可能可以通过对话框去找,但是第2次、第3次……,你每次要调用(AutoCAD)都要来个对话框,岂不太叫人……难道你不会把第一次的结果保存起来吗?//faint 同意 Hillside(要命的是买不到D盘了) wuyh78(阿华),你贴个帖子,我去给你回复。 去这儿看看 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths顺便提一下 http://rbsky.myetang.com 中有关于注册表的全面文章及对注册表全面操作的程序视窗超人 cds27(冰封) 兄:你真能解决?我就不会食言的……thanks redbirdli(火鸟)! 关于多线程的问题! SQL SERVER与ADO 在delphi7中怎样使dbgrid中的某一列不能获得焦点,而其它列能获得输入焦点?readonly:=true不能达到目的 大侠帮帮忙! 厉害,谁知道这种设置怎么加上的? 各位兄台,帮帮我吧!!! 如何定义和使用动态创建控件的事件? 抓屏的一个小问题 帮我看看这段代码 怎样把自己做的DELPHI程序开发出一个安装的执行软件?????? adoquery查询的结果,能有好的方法清空吗(就是全部删除)? bitmap.loadFromFile失败异常后该是free还是nil?
下面给出一段在 Delphi 中关闭“计算器”程序为例:
var
HWndCalculator : HWnd;
begin
// find the exist calculator window
HWndCalculator := Winprocs.FindWindow(nil, '计算器'); // close the exist Calculator
if HWndCalculator <> 0 then
SendMessage(HWndCalculator, WM_CLOSE, 0, 0);//用这个消息来关闭
end;
明白了吗?
我的意思是说我并不知道a,b,c三个名字,我的程序能列出目前有这几个程序在运行,
然后选择性的关闭。而不是先知道程序的名字再来关闭。
不过我急需,有人知道吗?
procedure TForm1.Button1Click(Sender: TObject);var curwin:hwnd;text:array[0..255] of char;begincurwin:=getwindow(handle,GW_HWNDFIRST);while curwin<>0 do beginif getwindowtext(curwin,@text,255)>0 thenmemo1.Lines.Add(strpas(text));curwin:=getwindow(curwin,gw_hwndnext);end;end;
请教一问题:如果想在我的应用程序中调用某一别的应用程序,比如调用AutoCAD,而我又无法确定我的AutoCAD程序安装在何处,那么我该如何做呢?比如我的应用程序在安装到别人的电脑上时,我是无法得知其AutoCAD会装在什么地方的……
请各位一并赐教!
“用个对话框问问就行了”:有缺陷,因为对于某一使用我的程序的用户而言,他总不可能每次都要去对话框中找需要的应用程序吧,我想第一次可能可以通过对话框去找,但是第2次、第3次……,你每次要调用(AutoCAD)都要来个对话框,岂不太叫人……
mc_music(狂沙)兄:如何在程序中实现在注册表中查找实现呢?收索注册表似乎很慢啊!
同意 Hillside(要命的是买不到D盘了)
顺便提一下 http://rbsky.myetang.com 中有关于注册表的全面文章及对注册表全面操作的程序视窗超人
thanks redbirdli(火鸟)!