exec

Windowsのファイルを実行する

exec "filename",p1,"command"

"filename" : 対象となるファイル名
p1=0~(0)  : ファイル実行モード
"command"  : コンテキストメニューの操作名

解説

execは "filename" で指定したファイル名のアプリケーションを実行します。
拡張子がEXEの場合は、拡張子を省略することができます。
p1で実行時のモードを選ぶことができます。p1を省略した場合は0になります。

 モード0  : HSPノーマル実行
 モード2  : 最小化モードで実行
 モード16 : 関連付けされたアプリケーションを実行
 モード32 : 指定したファイルを印刷する

"command"が指定された場合は、 "filename"で指定したファイルまたはフォルダ名に対するコンテキストメニュー操作名となります。
コンテキストメニュー操作名は、レジストリに登録されているアクションを指定する文字列で、標準で以下のようなものが用意されています。

  操作名     |     説    明
 ---------------------------------------------------------------------
  edit       | エディタを開いて編集する。
  explore    | フォルダを選択して、エクスプローラを起動します。
  open       | 関連付けられたアプリケーションでファイルを開きます。
  print      | 関連付けられたアプリケーションでファイルを印刷します。
  properties | ファイルまたはフォルダのプロパティを表示します。

"command"が指定された場合は、ファイル実行モードの16、 32は無効になります。また、実行結果を示す値がシステム変数statに返されます。

ノーマル実行は、新しく起動したアプリケーションのウィンドウがアクティブになり、入力フォーカスも移りますが、マルチタスクで、 HSPは終了せずに実行を続けます。

例 :
	exec "calc"  ; Windows電卓を起動

また、ファイル名に続けてパラメータを書くこともできます。

例 :
	exec "notepad hsp.txt"  ; ノートパッドでhsp.txtを開く

モード2は指定したアプリケーションを最小化した状態で実行します。
DOSアプリケーションの実行時にHSPの画面を遮ることなくバックで実行させることができます。

モード16は、実行ファイルではなく、データファイルを指定してその拡張子に関連付けられたアプリケーションを実行します。

例 :
	exec "hsp.txt",16  ; hsp.txtを関連付けられたアプリケーションで開く

上の例では、「hsp.txt」を関連付けされたアプリケーションで開きます。
(通常は、notepad.exe) 
また、 モード16ではインターネットのURLを指定することでインターネットショートカットとしても使用することが可能です。

例 :
	;インターネットのページを開く
	exec "http://www.onionsoft.net/hsp/",16

モード32では、指定したファイルに関連付けされたアプリケーションを経由して、プリンタに印刷をします。
たとえば、

例 :
	exec "hsp.txt",32  ; hsp.txtをプリンタで印刷

は、「txt」に関連付けされたアプリケーションで「hsp.txt」を自動的に印刷します。印刷のオプションなどはすべて、関連付けされたアプリケーションで指定されたものになります。

モードは、複数同時に指定することが可能です。
たとえば、モード2とモード16を同時に指定する場合は、それぞれの値を加算して18になります。この場合は、「最小化モードで関連付けされたアプリケーションを実行」になります。

※HSP2.61までサポートされていたモード1(タスク実行待ち)は、HSP3ではサポートしていません。起動したプロセスを監視するか、コンソールアプリケーションの場合はpipeexec命令をご使用ください。

関連項目

pipeexecパイプ付き実行(hspext)

サンプル逆引き (10)

ahtman_kw.hsp
aplkey.hsp
aplnote.hsp
button_test.hsp
cnvsrc.hsp
demo.hsp
elm2d_edit.hsp
noteadd.hsp
pipe.hsp
sampview.hsp

情報

バージョン3.4
作成日2013/12/09
著作者onitama
URLhttp://hsp.tv/
備考ver3.4標準命令
タイプ内蔵命令
グループプログラム制御命令
対応環境
  • Windows 版 HSP
  • コマンドライン版 HSP
  • HSPLet
移植のヒントHSPLet時は、HTML ページを表示する目的で使用されます。
第3引数の意味がオリジナルの HSP とは違うため、この命令を直接使用することはお勧めしません。
代わりに letutil.hsp 内に定義されている showPage fileName, target 命令を使用することをお勧めします。
hs ファイルhsphelp\i_prog.hs