如何在Delphi中调用外部程序?(20分)

  • 主题发起人 主题发起人 DJ6674
  • 开始时间 开始时间
D

DJ6674

Unregistered / Unconfirmed
GUEST, unregistred user!
如何在Delphi中调用外部程序?
 
winexec(PChar(程序路径),SW_SHOW);
 
同意张无忌
 
有好几个函数:
winexec
shellexecute
executefile
CreateProess
具体参数,你可查帮助
 
shellexecute()够用了~~~
 
var sInfo : TStartupInfo;
pInfo : TProcessInformation;
cmdLine : String;
exitCode : Cardinal;
// 下面是调用过程
cmdLine := 'c:/winnt/notepad.exe';
FillChar(sInfo,sizeof(sInfo),#0);
sInfo.cb := SizeOf(sInfo);
sInfo.dwFlags := STARTF_USESHOWWINDOW;
sInfo.wShowWindow := SW_NORMAL;
if not CreateProcess(nil,pchar(cmdLine),nil,nil,false,CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, nil, sInfo, pInfo) then
MessageBox(Application.handle,'指定程序启动失败!','错误',MB_OK or MB_ICONSTOP)
else
begin
WaitForSingleObject(pInfo.hProcess,INFINITE);
GetExitCodeProcess(pInfo.hProcess,exitCode);
end;
 
哗,楼上兄弟的好复杂,呵呵。其实用winexec应该就能满足要求了,想多点控制就用
shellexecute,不过要记住再uses里加上shellapi单元
 
但是我发现一个情况,各位大侠不知道发现没有,如果你调用的程序需要写下文件的话,
比如一个小游戏会记下一个包含游戏者名字的DAT文件,这样的话,这个文件就会写到你的
这个程序的目录下,而不是游戏的目录。
不知道你们有没有遇到过这种情况。
 
多人接受答案了。
 
后退
顶部