2009-02-26 68 views

回答

8

{这里是代码来做到这一点。使用TProcess对象! }

uses Process; 

... 

procedure DoProcess; 
Var 
    Proc : TProcess; 

Begin 
    Proc := TProcess.Create(nil); 
    try 
    Proc.CommandLine := '/Applications/MyApp.app'; 

    PRoc.Options := Proc.Options + [poWaitOnExit]; 
    Proc.CommandLine := Proc.CommandLine + ' -someparam'; 
    PRoc.Execute; 
    finally 
    Proc.free; 
    end; 
End; 
3

我不知道拉撒路库是否确实已经有了这个功能包,但如果没有,你可以写使用在Launch Services Programming Guide的信息的ShellExecute()的有条件编译版本。

0

我已经在OS X 10.4和10.3中成功地使用了Shell('open ' + Filename),这对于大多数文件类型来说似乎很好地工作。

我碰到open绊倒在shell提示符下,现在错过了Cygwin中/ Linux的等

0

在苹果机上的叉子受伤。 BSD使用vfork,而不是fork。

3

如果您想使用ShellExecute使用其首选应用程序打开文档,则可以使用LCLIntf单元中的OpenDocument过程。

Lazarus转换工具也使用此替换ShellExecute,请参阅Lazarus wiki。它在内部使用RobS提到的open。