如何从wine(WineBottler)Windows程序

时间:2017-07-02 12:39:14

标签: macos delphi wine

我正在编写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);

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

因此,根据具体情况,以上内容可以启动基于guest-os(例如Safari)的应用程序或基于葡萄酒的应用程序。

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

注意:可能葡萄酒推出Safari的方式是通过" iexplorer.exe"葡萄酒中包含的应用程序 - 可能是葡萄酒中URL的注册应用程序 - 但即便如此,问题仍然是相同的:这是怎样的" iexplorer.exe"程序调用Safari,或者URL的默认应用程序是什么?如何在MacOS中启动用于浏览文件夹的默认应用程序?或者打开mp3文件,依此类推?

我花了最后两个小时尝试了我能想到的一切,却没有成功。我也找不到葡萄酒和葡萄酒常见问题网站的解决方案。

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

有人可以帮忙吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

答案是" winebrowser"。

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

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

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

相关问题