ブラウザからの操作について

「できること」

 ・DOS標準コマンドの実行
 ・アクティブ画面へのキー送信
 ・TIMER予約
 ・画面ダンプ&マウスクリック
 ・予め登録しておいた処理の実行
 ・ファイルのアップロード、ダウンロード

「必要なファイル」

 添付ファイルをサンプルとして説明します。

サンプル内容

DOSおよび登録済みコマンド実行、画面ダンプ

アクセス方法

http://xxxx/dos.html

ファイル名

rdos.htmldos.htmlでも問題有りません)

格納場所

IrKey.exeと同一フォルダ

内容

L01  <FORM name="cmdif" action="dos.html" method="post">
L02  <select size="1" name="cmdsel">
L03  $CommandOption$
L04  </select><br>
L05  <select size="1" name="AnswerSizeMax">
L06  <option>1024
L07  <option selected>2048
L08  <option>4096
L09  </select><br>
L10  <META http-equiv="Pragma" content="no-cache">
L11  <META http-equiv="Cache-Control" content="no-cache">
L12  <META http-equiv="Expires" content="0">
L13  <INPUT TYPE="text" NAME="intext" SIZE="14" VALUE="$Value$">
L14  <INPUT TYPE="submit" VALUE="
実行">
L15  <BR>
L16  $Result$
L17  </FORM>
Lxxは説明用の行番号です)

L01のアクションはアクセス方法のファイル名と合わせます。
$CommandOption$
IrKey.infに記述された内容で置き換えられます。
AnswerSizeMax
DOSコマンド応答メッセージの最大長となります(4096が最大)
$Result$
に実行結果が入ります。
その他NAMEで使っている名称は全て予約語となります。
※前回からの変更点
・$Value$両側の""を追加しました。
・$Result$をFORMの中に入れて<BR>を追加しました。

 

サンプル内容

DOSコマンド実行、ファイルアップロード&ダウンロード

アクセス方法

http://xxxx/fm.html

ファイル名

rfm.htmlfm.htmlでも問題有りません)

格納場所

IrKey.exeと同一フォルダ

内容

L01  <FORM name="cmdif" action="fm.html" method="post" enctype="multipart/form-data">
L02  <INPUT type="hidden" name="cmdsel" value="DOS Command">
L03  <INPUT type="hidden" name="AnswerSizeMax" value="4096">
L04  Command
L05  <INPUT type="text" name="intext" size="20" value="$Value$">
L06  <INPUT TYPE="submit" VALUE="実行"><br>
L07  Upload
L08  <INPUT type="file" name="FILE" size="20">
L09  <META http-equiv="Pragma" content="no-cache">
L10  <META http-equiv="Cache-Control" content="no-cache">
L11  <META http-equiv="Expires" content="0">
L12  <BR>
L13  $Result$
L14  </FORM>

Lxxは説明用の行番号です)

L01のアクションはアクセス方法のファイル名と合わせます。
L02のcmdsel部分
IrKey.infに記述された内容に合わせます
AnswerSizeMax
DOSコマンド応答メッセージの最大長となります(4096が最大)
L08のnameは先頭4文字は"FILE"固定です。
"FILE*"でマッチさせていますので複数指定できます。
$Result$
に実行結果が入ります。
その他NAMEで使っている名称は全て予約語となります。
ファイルをダウンロードする場合は、コマンド入力欄に以下の内容を入力して実行します。
 「download ファイル名(ワイルドカード指定可能)」
アップロードの時はブラウザでアップロードファイル名を設定します。なお、アップロードファイル名が入力されているとコマンド入力欄への入力は無視されます。

※注意
書き換え可能な全てのファイルがアップロードできますので、ご利用に当たっては自己責任で十分注意してご利用願います。
環境やファイルサイズによってはうまく使えない場合があります。ご了承願います。

 

サンプル内容

タイマー予約

アクセス方法

http://xxxx/timer.html

ファイル名

rtimer.htmltimer.htmlでも問題有りません)

格納場所

IrKey.exeと同一フォルダ

内容

L01 <FORM name="cmdif" action="timer.html" method="post">
L02 <INPUT TYPE=HIDDEN NAME="cmdsel" VALUE="action:timer">
L03 <META http-equiv="Pragma" content="no-cache">
L04 <META http-equiv="Cache-Control" content="no-cache">
L05 <META http-equiv="Expires" content="0">
L06 <INPUT TYPE="text" NAME="intext" SIZE="10" VALUE="$hour$:00">
L07 <select size="1" name="code">
L08 <option selected>R1
L09 <option>R3
L10 <option>R5
L11 <option>R12
L12 <option>R32
L13 <option>R34
L14 <option>RSTOP
L15 <option>CLR
L16 </select>
L17 <INPUT TYPE="submit" VALUE="
実行">
L18 </FORM>
L19 $ResultTimer$
Lxxは説明用の行番号です)

L01のアクションはアクセス方法のファイル名と合わせます。
$hour$,$minute$,$second$
は現在の時刻に置き換えられます。
$ResultTimer$
に実行結果が入ります。
その他NAMEで使っている名称は全て予約語となります。

 

「irkey.infファイルの設定」

 今の所、設定画面は用意していませんのでメモ帳等で設定します。以下のエントリーを追加して下さい。

[WebControl]
L01 url1=dos.html,rdos.html
L02 url2=timer.html,rtimer.html
L-- url3=fm.html,rfm.html
L03 command_name=cmdsel
L04 param_name1=intext
L05 param_name2=code
L06 AnswerSizeMax=AnswerSizeMax
L07 image_click=click
L08 command1=DOS Command,dos
L09 command2=Sendkey,key
L10 command3=Window Dump 120,dump,jpegsave.exe $FileName$ -w120 -h90
L11 command4=Window Dump 580,dump,jpegsave.exe $FileName$ -w580 -h435
L12 command5=Window Dump 800,dump,jpegsave.exe $FileName$ -w800 -h600
L13 command6=Window Dump org,dump,jpegsave.exe $FileName$
L14 command7=Send ALT+F4,code,send_alt_f4
L15 command8=shutdown,code,
shutdown
L16 url1Authority=abc* 123*
L17 url2Authority=*
L18 url3Authority=abc*

Lxxは説明用の行番号ですので設定不要です)

L01,L02の部分でURL(前)とファイル名(後)の対応を定義します。(最大10まで)
L03〜L06でhtmlファイル中に記述しているNAMEとの対応を定義します。(変更可能ですが、とりあえず例の通りとします)
L07クリッカブルマップ(ダンプした画面をマウスクリックできます)で使用する名称を設定します。特に問題無ければ例の通りとしますが使用しない場合は記述する必要が有りません。
L08〜L15で実行するコマンドを定義します。
1番目:選択時に表示するタイトル
2番目:dos → dosコマンドを実行する。実行コマンドはparam_name1から抽出する。
2番目:key → アクティブ画面にキーコードを送信する。送信内容はparam_name1から抽出する。
2番目:dump → 3番目の内容を実行して$Result$に$FileName$(jpeg)へのリンクを出力する。なお、セキュリティのため画面ファイルは一度参照すると削除される。
2番目:code → 3番目の内容を登録してあるデータから探して実行する。

L16〜L18はurlごとに指定したIDだけ接続可能とする設定です。("*","?"を使ったワイルドカード指定)
この例ではurl1にはabcあるいは123で始まるIDで認証された場合にアクセスできます。
url2には全てのIDでアクセスできます。この記述を省略した場合と同じです。
url3にはabcで始まるIDでアクセスできます。

 

拡張されているDOSコマンドについて

コマンド名

意味

download

ダウンロードしたいファイル名を指定します。
(例)download irkey.*

app

IrKeyMntでApplicationに登録されている内容を実行します。
appの後に実行したいCode1の内容を指定します。

shell

WIN32APIのShellExecuteを実行します。
(例)shell memo.txt

 

画面ダンプ&マウスクリックについて

 ダンプした画面はクリッカブルマップとして使えるようになりましたので、画像をクリックするとマウスイベントを送ることができます。その場合、param_name1のエリアに「r」と記述しておくと右クリック、「m」でまん中クリック、「dbl」でダブルクリック、その他は左クリックとなります。

「アクセス時の認証について」

 IPアドレス指定のフリーアクセスは出来ません。必ずユーザIDとパスワードで認証する必要があります。
 また、3回認証に失敗するとアクセス元のIPアドレスからのアクセスはロックされます。解除するには、再起動するか外部からメールの指示で「Initialize();」を実行します。

「セキュリティ確保のために」(要注意)

 HTTPおよびBASIC認証のみで外部からアクセスするのは非常に危険です。そのために私は仙石さんが作成されたstoneというソフトを利用し、HTTPSでアクセスするようにしています。ご自分のお好きなトンネルソフトを使えば良いかと思います。
 また、手当たり次第にアタックされた場合は、IrKeyの仕様上、上述した通り3回認証に失敗するとロックされますので、通常問題無いレベルになっているかと思います。

「携帯からのアクセスについて」

 文字数制限等の関係で、実用的に使えるのはタイマー予約や指定コマンドの実行(再起動等)に限られますが、一応使えるようです。

 

Copyright (C) 2004 T.Sagae   All Rights Reserved.