我想用下面的代码打开一个程序,但我不能
program launchprogram;
uses
Classes, SysUtils, Process;
var
AProcess: TProcess;
begin
AProcess := TProcess.Create(nil);
AProcess.Executable:= 'C:\Program Files (x86)\oCam\oCam.exe';
AProcess.Parameters.Add('-h');
AProcess.Options := AProcess.Options + [poWaitOnExit];
AProcess.Execute;
AProcess.Free;
end.
我该如何解决这个问题?
答案 0 :(得分:0)
请参阅:http://wiki.freepascal.org/Executing_External_Programs
我在linux机器上试过这个并且工作正常
SysUtils.ExecuteProcess(UTF8ToSys('/full/path/to/binary'), '', []);
或更好:
SysUtils.ExecuteProcess(UTF8ToAnsi('/full/path/to/binary'), '', []);
它也应该在MSWin中起作用
答案 1 :(得分:0)
以下是在Linux机器上使用TProcess的示例:
enter code here
procedure TForm1.Button1Click(Sender: TObject);
VAR AProcess : TProcess;
begin
AProcess:= TProcess.Create(nil);
Aprocess.Executable:= '/usr/bin/mysqldump';
Aprocess.Parameters.Add('--user=root');
Aprocess.Parameters.Add('--password=any');
Aprocess.Parameters.Add('--result-file=/home/user/mydump.sql;
Aprocess.Parameters.Add('database1);
AProcess.Options := AProcess.Options + [poWaitOnExit,poUsePipes];
AProcess.Execute;
AProcess.Free;
end;
希望这会帮助你。我认为可执行文件不是怀特