如何在一个应用程序中控制另一个应用程序的开启与关闭?请高手指教!!急!!(50分)

  • 主题发起人 主题发起人 float
  • 开始时间 开始时间
F

float

Unregistered / Unconfirmed
GUEST, unregistred user!
各位高手:
我想实现在一个应用程序中控制另一个应用程序的开启与关闭,
应该用什么函数?请指教!!急用!!!谢谢!
 
用CreateProcess创建进程,能得到 hProcess 进程句柄,可以用TerminateProcess杀之。
 
各位高手:
请积极回答我的问题,十分感激!!!
TO:wjiachun
请您说的详细一些,我初学,最好给一个demo,谢谢!!
 
创建时用:
STARTUPINFO si;
PROCESS_INFORMATION pi;

si.cb = sizeof(STARTUPINFO);
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_SHOWDEFAULT;

if(CreateProcess("c://windows//notepad.exe",
NULL,NULL,NULL,FALSE,
CREATE_DEFAULT_ERROR_MODE,NULL,NULL,
&si,&pi))
{
ShowMessage("Success");
}
else
{
ShowMessage("Failure");
}
结素时用:
TerminateProcess(pi.hProcess,0);
 
用ShellExecute(在ShellApi中)可运行exe文件
如何结束我也想知道.
 
对于shellexecute:
结束程序可简单调用findwindow找出程序句柄.然后发wm_destory消息.
 
首先,取得正在运行的APPLICATION的HANDLE(用 function GetExitCodeProcess)

GetExitCodeProcess(AppHandle, intExitCode);

然后,发一个 WM_QUIT 消息给这个APPLICATION(同时,还要把它的STATUS也给出).

PostMessage(AppHandle, WM_QUIT, intExitCode, 0);
( 最后的参数必须为 0)

这样,APPLICATION 就被终止。



--------------------------------------------------------------------------------
 
做成C/S的程序不就解决了吗
>>
 
用Windows API函数:WinExec();
 
开启:
winexec();
shellexecute();
关闭:
sendmessage(findwindow(nil,你程序的名称),wm_close,0,0)
//感觉这个方法挺简单的,不知道能否满足你的要求
 
找到句柄,发送一条消息,很简单吗!
 
转贴:
如何在 Delphi 应用程序中, 去关闭外部已开启的应用程序?(2000年7月28日) 作者:srw
--------------------------------------------------------------------------------


下面给出一段在 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;
在此特意再摘录一段 Win32 SDK 中的说明文字:
Typically, an application sends the WM_CLOSE message before
destroying awindow, giving the window the opportunity to
prompt the user for confirmation before the window is destroyed.
A window that includes a System menu automatically receives the
WM_CLOSE message when the user chooses the Close command from
the menu. If the user confirms that the window should be destroyed,
the application calls DestroyWindow. [END]
 
多人接受答案了。
 
后退
顶部