如何在 Mac 的 Lazarus 中执行与 shellexecute() 等效的操作?
如何在 Mac 版 Lazarus 中执行与 shellexecute()
等效的操作?
How can I perform the equivalent of shellexecute()
in Lazarus for a Mac?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我不知道 Lazarus 库是否已经包含此功能,但如果没有,您可以使用 启动服务编程指南。
I don't know whether Lazarus libraries do already have this functionality wrapped, but if not you could write a conditionally compiled version of ShellExecute() using the info in the Launch Services Programming Guide.
我已经在 OS X 10.4 和 10.3 中成功使用了 Shell('open ' + Filename),它似乎对大多数文件类型都工作得相当好。
我在 shell 提示符下偶然发现了
open
,现在在 cygwin/linux 等中错过了它。I've successfully used
Shell('open ' + Filename)
in OS X 10.4 and 10.3 which seems to work rather nicely for most filetypes.I stumbled across
open
at the shell prompt and now miss it in cygwin/linux etc.如果要使用 ShellExecute 通过其首选应用程序打开文档,则可以使用 LCLIntf 单元中的 OpenDocument 过程。
Lazarus 转换工具也使用此替代 ShellExecute,请参阅 Lazarus wiki。 在内部它使用 RobS 提到的 open。
If you want to use ShellExecute to open a document with its preferred application, then you can use the OpenDocument procedure from the LCLIntf unit.
The Lazarus conversion tool also uses this replacement for ShellExecute, see the Lazarus wiki. Internally it uses open as mentioned by RobS.
fork 在 Mac 上很痛苦。 BSD 使用 vfork,而不是 fork。
fork hurts on Mac. BSDs use vfork, not fork.
{ 这是执行此操作的代码。 使用 TProcess 对象! }
{ Here is code to do it. Use the TProcess object! }