WorkToolSmith

Delphi Mac OSでのShellExecute

太田アベル

・ 更新 ・ 1分で読めます

当サイトの記事には一部に広告リンクが含まれます。

Delphiからでブラウザを開きたいときなど、ShellExecuteを使う必要があります。

FireMonkeyプロジェクトでも、WindowsならusesにWinapi.ShellAPI, Winapi.Windowsを追加し、

ShellExecute(0, 'OPEN', PChar(url), '', '', SW_SHOWNORMAL);

で使用できます。

ところでMac OSではどうやるんでしょう?

_system

Mac OSではPosix.stdlibを使います。

uses に Posix.stdlib を追加。

_system(PAnsiChar('open ' + {コマンド} ));

{コマンド}の部分にURLを書けばSafariが起動してくれます。
カンタンでうれしい!

手続きにまとめる

OSの違いをコンパイラ指令にまとめて記述し、便利にしてみます。

uses

{$IFDEF MSWINDOWS}

Winapi.ShellAPI, Winapi.Windows

{$ENDIF}

{$IFDEF POSIX}

Posix.stdlib

{$ENDIF}

フォーム

procedure BrowserExecute(url: String);

など手続きを追加。

実現部

procedure TForm1.BrowserExecute(url: String);

begin

{$IFDEF MSWINDOWS}

ShellExecute(0, 'OPEN', PChar(url), '', '', SW_SHOWNORMAL);

{$ENDIF MSWINDOWS}

{$IFDEF POSIX}

_system(PAnsiChar('open ' + AnsiString(url)));

{$ENDIF POSIX}

end;

これで呼び出し部分で常にBrowserExecuteを使えば、OSを意識せずに立ち上げられますね。

太田アベル

太田アベル

パソコンを7歳からいじり始めて40年。とにかくパソコンが好きです。気になった商品をほぼ自腹で買いまくってレビュー中!良かった点、悪かった点をズバズバ書きます。

𝕏 でフォロー プロフィールを見る

こちらもおすすめ