【问题标题】:How to launch Finder or other Mac apps from a wine (WineBottler) windows program如何从 wine (WineBottler) windows 程序启动 Finder 或其他 Mac 应用程序
【发布时间】:2017-12-05 20:34:29
【问题描述】:

我正在编写一个 Windows 程序,并使用 wine (WineBottler) 在 Mac 上运行它

我希望能够从我的程序中启动 Finder 或其他 MacOS 应用程序。

我知道这是可能的,因为例如我可以用这条线启动 Safari:

ShellExecute(0, 'open', 'http://www.google.com', nil, nil, 0);

我想这是因为 Safari 是处理 URL 的默认应用程序。事实上,即使这样仍然会成功启动 Safari:

ShellExecute(0, nil, 'www', nil, nil, 0);

另一方面,传递其他字符串(例如文本文件的路径)将为这些文件类型启动基于 wine 的默认应用程序,如果有的话。

所以看起来上面可以启动基于客户操作系统(例如Safari)的应用程序,或基于wine的应用程序,视情况而定。

那么现在,例如,我怎样才能在给定文件夹中启动 Finder?或者我如何使用默认的 Mac 应用程序打开一个给定的文件,比如说一个 mp3 文件,而不是该文件类型的(不存在的)基于 wine 的应用程序?

注意:wine 启动 Safari 的方式可能是通过 wine 中包含的“iexplorer.exe”应用程序——可能是 wine 中 URL 的注册应用程序——但即便如此,问题仍然是一样的:“iexplorer.exe”是如何实现的。 exe”程序调用 Safari,或者 URL 的默认应用程序是什么?以及如何在 MacOS 中启动用于浏览文件夹的默认应用程序?或者打开mp3文件等等?

我花了最后两个小时尝试了我能想到的一切,但没有成功。我也无法在 wine 和 wine-faq 网站上找到解决方案。

我使用 Delphi,但任何基于 Windows API 的答案都可以。

有人可以帮忙吗?

谢谢!

【问题讨论】:

    标签: macos delphi wine


    【解决方案1】:

    答案是“葡萄酒浏览器”。

    例如,要使用我可以调用的本机应用程序(Finder)打开一个文件夹:

    ShellExecute(0, 'open', 'winebrowser', PChar(PathOfTheFolder), nil, 0);
    

    以类似的方式,我可以传递文本文件的路径,由 TextEdit(*.txt 文件的默认应用程序)打开等等。

    【讨论】:

      猜你喜欢
      • 2016-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-05
      • 1970-01-01
      • 2015-08-27
      相关资源
      最近更新 更多