怎样调用外部可执行文件.(50分)

  • 主题发起人 主题发起人 lt258
  • 开始时间 开始时间
L

lt258

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样在Delphi应用程序中调用外部可执行文件,如调用WinRar或WinZip来备份和恢复数据.
 
好象有很多这样的贴子,看看前边的(windows api)
 
使用WINEXEC函数
 
也可以使用ShellExec函数或创建一个线程
 
不嫌麻烦或者想最大限度控制进程
用CreateProcess
 
用下面的函数,ShowCmd 是窗口显示模式,参看WIN32API的ShowWindow解释
function ExecuteFile(const FileName, Params, DefaultDir: string;
ShowCmd: Integer): THandle;
var
zFileName, zParams, zDir: array[0..79] of Char;
begin
Result := ShellExecute(Application.MainForm.Handle, nil,
StrPCopy(zFileName, FileName), StrPCopy(zParams, Params),
StrPCopy(zDir, DefaultDir), ShowCmd);
end;
 
uses shellapi;
shellexeculte 搞定
 
学会用HELP(这是造血功能)比什么都重要!
见HELP的WIN32
WinExec(
LPCSTR lpCmdLine, // address of command line
UINT uCmdShow // window style for new application
);
 
完整搞定.
var
pWindowsList: pointer;
hActiveWindow: HWnd;
hExeHandle: THandle;
begin
pWindowsList := DisableTaskWindows(0);
hActiveWindow := GetActiveWindow;
try
hExeHandle := WinExec('arj.exe /?',SW_SHOWNORMAL);
while GetModuleUsage(hExeHandle) <> 0do
Application.ProcessMessages;
finally
EnableTaskWindows(pWindowsList);
SetActiveWindow(hActiveWindow);
end;
end;
 
WINEXEC('EXPLORER.EXE',SW_SHOWNORMAL);
 
最好不用Winexec 那是win 3.x 中16位的api,还是用shellexeculte
 
1. WINEXEC('sol.exe',SW_SHOW);
2.
uses Shellapi;
  ...
SellExecute(handle,nil,pchar'sol.exe'),nil,nil,sw_shownormal);




 
使用Winexec或ShellExecute函数,其有关用法清参照各自的帮助
 
时间太久,强制结束。 wjiachun
 
后退
顶部