如何杀死它。。。。。(50分)

  • 主题发起人 主题发起人 套牢1
  • 开始时间 开始时间

套牢1

Unregistered / Unconfirmed
GUEST, unregistred user!
在一个工程中调用了另一个exe[shellexecute(....)];
怎样在关闭本工程时,同时关闭那个exe?
另外,用findwindow或阻塞可以避免重复执行一个应用程序,
但怎样才能实现,既不重复执行,又可以把任务切换到那个执行程序呢?
 
用Createprocess更好一些,控制更容易,如果不这样也可以,
给窗体发一个CLOSE消息就行了,
先FINDWINDOWS找到窗口的句柄,然后SENDMESSAGE发WM_CLOSE
 
呵呵,给你这么多源码,还不给我分先??
type
pfindwindowstruct=^tfindwindowstruct;
tfindwindowstruct=record
caption:string;
classname:string;
windowhandle:thandle;
end;
function enumwindowsproc(hwindow:hwnd;lparam:longint):bool
{$IFDEF WIN32}STDCALL;{$ELSE};EXPORT;{$ENDIF}
VAR lpbuffer:pchar;
windowcaptionfound:bool;
classnamefound:bool;
begin
getmem(lpbuffer,255);
result:=true;
windowcaptionfound:=false;
classnamefound:=false;
try
if getwindowtext(hwindow,lpbuffer,255)>0 then
if pos(pfindwindowstruct(lparam).caption,strpas(lpbuffer))>0 then
windowcaptionfound:=true;
if pfindwindowstruct(lparam).classname='' then
classnamefound:=true else
if getclassname(hwindow,lpbuffer,255)>0 then
if pos(pfindwindowstruct(lparam).classname,strpas(lpbuffer))>0 then
classnamefound:=true;
if (windowcaptionfound and classnamefound) then begin
pfindwindowstruct(lparam).windowhandle:=hwindow;
result:=false;
end;
finally
freemem(lpbuffer,sizeof(lpbuffer^));
end;
end;
function findawindow(caption:string;classname:string):thandle;
var windowinfo:tfindwindowstruct;
begin
begin
windowinfo.caption:=caption;
windowinfo.classname:=classname;
windowinfo.windowhandle:=0;
enumwindows(@enumwindowsproc,longint(@windowinfo));
findawindow:=windowinfo.windowhandle;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var thewindowhandle:thandle;
begin
thewindowhandle:=findawindow('浏','');
if thewindowhandle=0 then
begin
showmessage('window not found!');
winexec('explorer.exe',sw_show);
end
else
bringwindowtotop(net);
end;
end;
 
用CREATEMUTEX可以阻止程序的二次运行,具体的看帮助!
 
》bringwindowtotop(net);//net 是什么,你好歹说一点呀。
》用CREATEMUTEX可以阻止程序的二次运行,具体的看帮助!//关键是同时使该程序ontop,怎么办
 
bringwindowtotop(net);搞定了,可以top了;
第一个sendmessage还在试。
 
sendmessage可以关闭该程序,问题结束
 
后退
顶部