如何shellexecute()
在 Mac 上执行与 Lazarus 中的等效操作?
Jamey McElveen
问问题
4520 次
5 回答
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;
于 2009-03-05T19:26:49.910 回答
3
我不知道 Lazarus 库是否已经包含此功能,但如果没有,您可以使用Launch Services Programming Guide中的信息编写条件编译的ShellExecute()版本。
于 2009-02-27T05:22:06.887 回答
3
如果您想使用 ShellExecute 打开带有首选应用程序的文档,则可以使用 LCLIntf 单元中的 OpenDocument 过程。
Lazarus 转换工具也使用这个替代 ShellExecute,请参阅Lazarus wiki。如 RobS 所述,它在内部使用 open。
于 2011-09-19T10:43:47.767 回答
0
我已经成功地Shell('open ' + Filename)
在 OS X 10.4 和 10.3 中使用,这对于大多数文件类型来说似乎工作得相当好。
我在 shell 提示符下偶然发现open
,现在在 cygwin/linux 等中错过了它。
于 2009-02-27T09:06:09.640 回答
0
叉子在 Mac 上很痛。BSD 使用 vfork,而不是 fork。
于 2009-04-26T17:27:26.143 回答