急!急!急!关于delphi运行文件的问题?先谢了! 在delphi中如何运行一个可执行文件,并可在进程中关闭文件. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 关闭程序TerminateProcess(Handle, 0); void __fastcall TfmMain::RunExe(const AnsiString ExeName){ RECT R1; GetWindowRect(Handle,&R1); RECT R2=Rect(Screen->Width/2,Screen->Height/2,Screen->Width/2,Screen->Height/2); STARTUPINFO StartupInfo; PROCESS_INFORMATION ProcessInfo; ZeroMemory(&StartupInfo, sizeof(STARTUPINFO)); StartupInfo.cb = sizeof(STARTUPINFO); try { if(CreateProcess(NULL,ExeName.c_str(),NULL,NULL,TRUE, NORMAL_PRIORITY_CLASS, NULL, NULL, &StartupInfo,&ProcessInfo)) { Hide(); DrawAnimatedRects(Handle,3,&R1,&R2); WaitForSingleObject(ProcessInfo.hProcess, INFINITE); } else MessageBox(Handle,AnsiString("运行失败!\n\n"+ExeName).c_str(),"提示信息",MB_OK|MB_ICONERROR); } __finally { if(!Visible) { CloseHandle(ProcessInfo.hProcess); CloseHandle(ProcessInfo.hThread); DrawAnimatedRects(Handle,3,&R2,&R1); Sleep(200); Show(); } }} {声明}varMyHandle: THandle;MyStartupInfo: TStartupInfo;MyProcessInfo: TProcessInformation;{执行函数}procedure ExecuteApp(MyPath: String);beginFillChar(MyStartupInfo, SizeOf(MyStartupInfo), 0);MyStartupInfo.cb:=SizeOf(MyStartupInfo);CreateProcess(PChar(MyPath), nil, nil, nil, False,DETACHED_PROCESS, nil, nil, MyStartupInfo,MyProcessInfo);MyHandle:=MyProcessInfo.hProcess;//把执行的程序的句柄赋值给MyHandle,它会在终止程序时用到end;{结束}procedure CloseApp(MyHandle: THandle);beginTerminateProcess(MyHandle, 0);end;{用的时候MyPath就是要运行的exe文件带路径名} 关于listbox的add求教 关于Dbgrid的若干问题: 用D 7 +SQL 请问用什么SQL 书好呢?要用到SQL 我SQL 语言不行。。。 函数返回体 如何检测按钮被按下?急.... Delphi 调用Webservice 接口出现内存泄露 求一个调试成功的用SendMessage向QQ对话窗口发送信息 关于delphi中tactionlist这个控件中tsearchfind的问题! 剧好答!!!! 如何动态给DBGrid 的 DataSource 属性 赋值 如何通过网络传送一个string类的数组 一个简单的问题??????? 关于ADOQuery的问题,急
TerminateProcess(Handle, 0);
{
RECT R1; GetWindowRect(Handle,&R1);
RECT R2=Rect(Screen->Width/2,Screen->Height/2,Screen->Width/2,Screen->Height/2);
STARTUPINFO StartupInfo;
PROCESS_INFORMATION ProcessInfo;
ZeroMemory(&StartupInfo, sizeof(STARTUPINFO));
StartupInfo.cb = sizeof(STARTUPINFO);
try
{
if(CreateProcess(NULL,ExeName.c_str(),NULL,NULL,TRUE,
NORMAL_PRIORITY_CLASS, NULL, NULL,
&StartupInfo,&ProcessInfo))
{
Hide();
DrawAnimatedRects(Handle,3,&R1,&R2);
WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
}
else
MessageBox(Handle,AnsiString("运行失败!\n\n"+ExeName).c_str(),"提示信息",MB_OK|MB_ICONERROR);
}
__finally
{
if(!Visible)
{
CloseHandle(ProcessInfo.hProcess);
CloseHandle(ProcessInfo.hThread);
DrawAnimatedRects(Handle,3,&R2,&R1);
Sleep(200);
Show();
}
}
}
var
MyHandle: THandle;
MyStartupInfo: TStartupInfo;
MyProcessInfo: TProcessInformation;
{执行函数}
procedure ExecuteApp(MyPath: String);
begin
FillChar(MyStartupInfo, SizeOf(MyStartupInfo), 0);
MyStartupInfo.cb:=SizeOf(MyStartupInfo);
CreateProcess(PChar(MyPath), nil, nil, nil, False,
DETACHED_PROCESS, nil, nil, MyStartupInfo,
MyProcessInfo);
MyHandle:=MyProcessInfo.hProcess;
//把执行的程序的句柄赋值给MyHandle,它会在终止程序时用到
end;
{结束}
procedure CloseApp(MyHandle: THandle);
begin
TerminateProcess(MyHandle, 0);
end;
{用的时候MyPath就是要运行的exe文件带路径名}