首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

请教大家delphi如何关闭带有提示信息的程序

2012-09-13 
请问大家delphi怎么关闭带有提示信息的程序?我想关闭第三方程序,用 SendMessage(fHwnd,WM_CLOSE,0,0)试了

请问大家delphi怎么关闭带有提示信息的程序?
我想关闭第三方程序,用 SendMessage(fHwnd,WM_CLOSE,0,0);试了不行,程序会有一个是否关闭窗口的对话框,我用了

wnd := FindWindowEx(fHwnd, 0, 'Button','是(&Y)'); //得到对话框中按钮句柄
SendMessage(wnd, WM_KEYDOWN, VK_RETURN, 0);//发送回车消息

但是没有用,请问谁有办法,谢谢了

[解决办法]

Delphi(Pascal) code
procedure CloseProgram(ExeName:string{进程文件名,如:explorer.exe});//结束进程var  bo:boolean;  pe:PROCESSENTRY32;  snap:HWND;  hP:HWND;  pid:Cardinal;begin  FillChar(pe,sizeof(pe),0);  pe.dwSize:=sizeof(pe);  snap:=CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS,0);//获得进程快照  try    bo:=Process32First(snap,pe);    while bo do    begin      if LowerCase(ExeName)=LowerCase(pe.szEzeFile) then      begin        pid:=pe.th32ProcessID;//获得进程ID        break;      end;      bo:=Process32Next(snap,pe);    end;    if pid<>0 then    try      hP:=OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ,false,pid);//获得进程句柄      TerminateProcess(hP,0);//结束进程    finally      CloseHandle(hP,0);    end;  finally    CloseHandle(snap);  end;end;
[解决办法]
Delphi(Pascal) code
procedure TForm1.Button1Click(Sender: TObject);var  H:HWnd;begin  H:=FindWindow(nil,'对方程序标题');  if h<>0 then  PostMessage(H,WM_Close,0,0,);  Sleep(1000);//关健是这句  H:=FindWindow(nil,'关闭提示的标题');  if h<>0 then  begin    H:= FindWindowEx(H, 0, 'Button','确定');    if H<>0 then    PostMessage(H,WM_KEYDOWN,VK_RETURN,0,);  end;end; 

热点排行