第3回 リンクを実行する

 

BTMemoでは、文書内にリンクを埋め込むことができます。

そしてリンクを実行すると、

フォルダ

エクスプローラを起動して該当フォルダを表示します

プログラムファイル

そのプログラムを実行します

データファイル

拡張子に関連付けられたプログラムを実行します

ショートカット

ショートカットを実行します

コマンドラインオプションを指定してプログラムを実行できるようになります

WEBページアドレス

ブラウザを実行して該当ページを表示します

メールアドレス

メールソフトを起動します。題名や本文も指定できます

といったことが行えます。

 

ここでは、上記の実現方法をお伝えします。

 

 

(1)エクスプローラを起動してフォルダを表示する

 

BTMemoでは、ShellExecuteというAPIを使用してエクスプローラを起動しています。

当初は、単に以下の様にしていました。

      // C:\WORK フォルダを開く場合の例

 

        ShellExecute(HWND_DESKTOP, "explore", "C:\\WORK", "", "", SW_SHOWNORMAL);

 

   −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

 

   // ネットワークドライブを指定することもできます。

        ShellExecute(HWND_DESKTOP, "explore", "\\\\Server\\WORK", "", "", SW_SHOWNORMAL);

 

 

途中からフォルダツリーを付けないことも可能になりました。その場合は以下の様にしています。

      // C:\WORK フォルダを開く場合の例(フォルダツリーは付けません)

 

        ShellExecute(HWND_DESKTOP, NULL, "explorer.exe", "/n,C:\\WORK", "", SW_SHOWNORMAL);

 

   −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

 

   要は、

   ・エクスプローラはコマンドラインオプションを持っている

   ・/n というコマンドラインオプションを使用すると、フォルダツリーを消すことが出来る

    ということです。

 

   コマンドラインオプションは他にもあります。参考までにいくつかご紹介しておきます。

   /root … 指定したフォルダが最上位フォルダとして扱われます。(それ以上じょういに移動することができません)

   /select … 指定したファイルが選択された状態でエクスプローラが起動されます。(この場合はフォルダではなくてファイルを指定します)

 

 

 

(2)上記(エクスプローラの起動)以外

 

エクスプローラの起動以外でも、やはり ShellExecuteというAPIを使用しています。

そして、エクスプローラの起動以外は区別していなくて、全て同じ方法で実施しているのです。

 

        ShellExecute(HWND_DESKTOP, "open", "※実行対象をここに指定します※", "", "", SW_SHOWNORMAL);

 

   −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

 

   // C:\PROGRAM.EXE を起動する場合は、以下の様になります

        ShellExecute(HWND_DESKTOP, "open", "C:\\PROGRAM.EXE", "", "", SW_SHOWNORMAL);

 

   // C:\DATA.DOC というファイルを編集する場合は以下の様になります

        ShellExecute(HWND_DESKTOP, "open", "C:\\DATA.DOC", "", "", SW_SHOWNORMAL);

 

   // www.hogehoge.co.jp のWEBページを開く場合は以下の様になります

        ShellExecute(HWND_DESKTOP, "open", "http://www.hogehoge.co.jp", "", "", SW_SHOWNORMAL);

 

   // buruturi@buruturi@f01.itscom.net 宛メールを書くためにメーラを起動する場合は以下の様になります

        ShellExecute(HWND_DESKTOP, "open", "mailto:buruturi@f01.itscom.net&Subject=題名指定もできます", "", "", SW_SHOWNORMAL);