0
如何通過Delphi xe6-7 OSX應用程序運行終端命令?我想運行一個腳本,例如從iTunes播放列表返回所有曲目名稱。使用Delphi XE7 FMX運行終端命令
我看到VCL和WINDOWS我可以運行ShellExecute()函數,但我似乎無法找到OSX等值FMX
如何通過Delphi xe6-7 OSX應用程序運行終端命令?我想運行一個腳本,例如從iTunes播放列表返回所有曲目名稱。使用Delphi XE7 FMX運行終端命令
我看到VCL和WINDOWS我可以運行ShellExecute()函數,但我似乎無法找到OSX等值FMX
的ShellExecute是Windows操作系統的功能,而不是一個VCL功能。由於我不確定的原因,BIBCE(Borland/Inprise/Borland/CodeGear/Embarcadero)從來沒有打算實現一個在VCL/FMX中啓動命令的函數,儘管許多其他跨平臺工具(Qt,Python,甚至FreePascal)這個。正如Stephen Ball在博客文章中提到的那樣,如果您的應用程序是跨平臺的,則需要爲每個平臺使用IFDEF和本機功能。 :-(
雖然我沒有獲得OS X測試它,英巴卡迪諾球給了下面的代碼來說明在啓動Windows和OS X文件,使用「_SYSTEM」爲OS X:
unit FileLauncher;
interface
uses
{$IFDEF MSWINDOWS}
Winapi.ShellAPI, Winapi.Windows;
{$ENDIF MSWINDOWS}
{$IFDEF MACOS}
Posix.Stdlib;
{$ENDIF MACOS}
type
TFileLauncher = class
class procedure Open(FilePath: string);
end;
implementation
class procedure TFileLauncher.Open(const FilePath: string);
begin
{$IFDEF MSWINDOWS}
ShellExecute(0, 'OPEN', PChar(FilePath), '', '', SW_SHOWNORMAL);
{$ENDIF MSWINDOWS}
{$IFDEF MACOS}
_system(PAnsiChar('open ' + '"' + AnsiString(FilePath) + '"'));
{$ENDIF MACOS}
end;
斯蒂芬斯早2年博客文章http://stackoverflow.com/questions/7443264/how-to-open-an-url-with-the-default-browser-with-firemonkey-cross-platform-appli/ 7443440#7443440:o) – 2014-09-04 08:24:31