Written in Japanese(UTF-8)
2014.8.30
INASOFT
2014.8.30
INASOFT
/トップ/いじくるつくーる/ダウンロード/WebHelp/ヘルプトップ/
本ソフトウェアの開発は終了しています。ヘルプに記載されている情報も古いものになっています。

R-Script プログラマーズガイド(4/7)
ここには R-Scriptを使ってレジストリ編集ツールを作りはじめる際の手助けになる文章が書かれています。
このコーナーのトップページはこちら。
※このページのサンプルプログラム中で、表示の都合上で1行に入りきらずに改行している場合がありますが、実際にスクリプトを作るときには改行を入れないようにして下さい。R-Scriptは、基本的に行を単位にして実行を行っています。
4. 編集ボックスを作ってみよう
4.1 素直なレジストリエントリの場合
次のようなスクリプトで、編集ボックスを含んだレジストリ編集ツールができあがります。
ITEM = 練習用スクリプト INFORMATION = 練習用に作られたスクリプトです HELP = TEST.TXT %% text( "編集ボックスです(&E):" ) editbox( "editbox", "", "HKEY_CURRENT_USER\\Software\\Company\\Software\\Version", "7off", CTRL_NORMAL )
editbox() 関数は、編集ボックスを作る関数です。
第1引数はID(後からアクセスするためのコード)で、IDは、"editbox" です。
第2引数はエントリが存在しなかった場合に表示される文字列ですが、ここではから文字列になっています。
第3, 第4引数は、それぞれレジストリキーとエントリです。
4.2 素直でない場合
例えば、入力された文字列が空ならば、エントリを削除したくなる場合があるかもしれません。
その場合は、命令部を次のようにします。
text( "編集ボックスです(&E):" ) editbox( "editbox", "", "HKEY_CURRENT_USER\\Software\\Company\\Software\\Version", "text" ) exit :OK if ( GetEditBox$( "editbox" ) == "" ) { RegDeleteValue( "HKEY_CURRENT_USER\\Software\\Company\\Software\\Version", "text" ) Stop( "editbox" ) }
[OK]を押したら
:OKに飛ぶのですが、もし編集ボックスが空だったら、text というエントリを削除しています。
しかしこのままでは、削除したエントリが、R-Scriptの自動処理によって再び復活させられてしまいますから(つまり、editbox() で編集ボックスを作るとき、レジストリと関連づけてしまっているので、レジストリに対する読み出し・書き込みなどは、インタプリタが自動的に行ってしまうのです)、それを防ぐために、編集ボックスを Stop() で一時的に無効化しています。
なお、Disable() 関数で、各コントロールを無効化(グレイアウト)しても同様の効果がありますが、[適用]ボタンを押した場合などには、スクリプトの処理が終わった後にもグレイアウトし続けてしまうため、Stop() を利用します。
4.3 実はもっと簡単に書けます
命令部を次のようにすると、上のことを簡単に実現できます。
text( "編集ボックスです(&E):" ) editbox( "editbox", "", "HKEY_CURRENT_USER\\Software\\Company\\Software\\Version", "7off", DELETE_DEFAULT )
DELETE_DEFAULT は、入力された値がデフォルトと指定指定された値(ここでは "")と等しければ、値を削除してしまうという意味になります。
戻る 次へ
目次
R-Scriptについて
プログラマーズガイドの目次
※このページは、ソフトウェアに付属のヘルプファイルをWeb用に再構築したものです。大部分に自動変換を施しているため、一部は正しく変換しきれずに表示の乱れている箇所があるかもしれませんが、ご容赦下さい。また、本ドキュメントはアーカイブドキュメントであり、内容は「いじくるつくーる」最終公開時点、あるいは、それより古い時点のものとなっております。一部、内容が古くなっている箇所があるかと思いますが、あらかじめご了承下さい。
※このページへは、自由にリンクしていただいてかまいません。
このページに関するご意見の受け付けは終了しています。