2014-09-03 30 views
0

如何通過Delphi xe6-7 OSX應用程序運行終端命令?我想運行一個腳本,例如從iTunes播放列表返回所有曲目名稱。使用Delphi XE7 FMX運行終端命令

我看到VCL和WINDOWS我可以運行ShellExecute()函數,但我似乎無法找到OSX等值FMX

回答

3

的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; 
+1

斯蒂芬斯早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