delphi怎么实现外部程序调用?以及调用的外部程序关闭时,返回一个值?
如题,delphi写了一个程序,需要调用外部程序,只是启动程序而已,没有参数!当外部程序启动后,主程序隐藏。外部程序关闭时,主程序再显示!具体怎么实现?...
如题,delphi写了一个程序,需要调用外部程序,只是启动程序而已,没有参数!当外部程序启动后,主程序隐藏。外部程序关闭时,主程序再显示!具体怎么实现?
展开
2个回答
2015-06-01
展开全部
用下面这个函数可以解决你的问题:
function WinExecAndWait32(FileName:String; Visibility : integer): DWORD;
var
zAppName:array[0..512] of char;
zCurDir:array[0..255] of char;
WorkDir:String;
StartupInfo:TStartupInfo;
ProcessInfo:TProcessInformation;
begin
StrPCopy(zAppName,FileName);
GetDir(0,WorkDir);
StrPCopy(zCurDir,WorkDir);
FillChar(StartupInfo,Sizeof(StartupInfo),#0);
StartupInfo.cb := Sizeof(StartupInfo);
StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := Visibility;
if not CreateProcess(
nil,
zAppName, { pointer to command line string }
nil, { pointer to process security attributes }
nil, { pointer to thread security attributes }
false, { handle inheritance flag }
CREATE_NEW_CONSOLE or { creation flags }
NORMAL_PRIORITY_CLASS,
nil, { pointer to new environment block }
nil, { pointer to current directory name }
StartupInfo, { pointer to STARTUPINFO }
ProcessInfo { pointer to PROCESS_INF }
)
then Result := $FFFFFFFF else begin
WaitforSingleObject(ProcessInfo.hProcess,INFINITE);
GetExitCodeProcess(ProcessInfo.hProcess,Result);
end;
end;
更多追问追答
追问
filename和visible使用方法是什么?filename从哪读取文件名?返回值是什么意思?本人小白,能说的详细点吗?
追答
FileName------是要调用的外部程序的路径文件名
Visibility------是外部程序运行时窗口的状态,一般可用0或1。
当返回值为-1时表示调用失败。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询