電源ON直後のWindowsが立ち上がる前に設定の変更ができる方法はありますか?
以下の文章で「kemasel.exe」を利用する例が書かれておりますが、kemasel.exeが自動生成する autoexec.bat は、LongFileName でパスが記述されてしまいます。従って、kemasel.exe を実行後、手動で autoexec.bat を編集し、パスの変更を行ってください。
【よくある例】c:\program files\... → c:\progra~1\...
上級者向けです(が、お気楽ツールもあります)
「これでできるかもしれません」程度に読んでください(全ての環境でできる保証はまるで無い)。作者はWin98でしかも自分の環境しか試していませんのでWin95については全く考慮していません。
Win98ユーザーで、コマンドラインオプションという言葉に抵抗がなく、バッチファイルの作成ができ、regeditを使用でき、Windowsが起動しなくなっても動揺せず、かつ、楽をするためなら手間を惜しまない方(?)であれば試す価値はあると思います。
と思いましたが「えいや!」とツールを作ってみました。下記の一連のファイル作成を一括で行ってくれます。
相変わらず結果は全く保証しませんがバッチファイルの動作は正常であることは確認しています。もちろん、我が家では設定切り替えも正常に動作しています。下記の「下ごしらえ」も読んでください。
kemasel.lzhここからダウンロードできます。
概要は以下のとおりです。図中の各ファイルのパスはあまり正しくないです。
ポイント
以下はお好みに合わせてどうぞ。
以下の項目はツールを使用する場合、自動生成されますが、「このツールは何やってんだろう?」
という方はご一読ください。
KemaNetをインストールしたディレクトリなどに kemaset.bat ファイルを作成します。
kemasel.batの中身
@echo off echo ---------------- echo KemaNet 設定選択 echo ---------------- echo A:自宅 echo B:自宅Proxy echo. echo X:キャンセル echo ---------------- choice /c:XAB /t:X,10 選択してください(デフォルト:X) if errorlevel 3 goto KEMA_B if errorlevel 2 goto KEMA_A echo キャンセルされました goto QUIT :KEMA_B echo KEMA_B regedit c:\progra~1\kemanet\B.reg goto QUIT :KEMA_A echo KEMA_A regedit c:\progra~1\kemanet\A.reg goto QUIT :QUIT
上の場合、Aを選択するとKEMA_Aへジャンプし、A.REGファイルをレジストリに書き込みます。
ポイントは
choice /c:XAB /t:X,10 選択してください(デフォルト:X)
で、choiceは選択された文字列が何番目になるのかをerrorlevelで返しますので
大きい順にif文で分岐させます。Xを最初にしてエラーコードが一番小さくなるようにしておくと
全てのif文をスルーして「キャンセルされました」を表示後、終了します。
また if や choice, goto などの文法に付いてはDOS窓で if /? とか choice /? と入力すると
たいてい出るのでご確認ください。
また、この段階で実際に kemaset.bat を起動して、自分が選択したメニューと選択後の処理が
正しいことを確認しましょう。上の例ではAを選択したときに「KEMA_A」と表示されればよいです。
全ての選択肢を試しておきましょう。当たり前ですがこの段階では regedit c:\temp\A.reg の文は
実行するとエラーになります。
KemaNetをインストールしたディレクトリなどに ?.reg ファイルを作成します。
A.REGの中身
REGEDIT4 [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce] "KemaNet"="C:\\Program Files\\KemaNet\\kemanet.exe 自宅 /c"
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce]の下に
適当な名前のキーで文字列属性のデータ(実行ファイル名)をレジストリに書き込むと
該当のプログラムを1回だけWindows起動時に実行するらしい、ということが実験から
判明しました。これを利用しています。
上の場合、設定名「自宅」を反映します。/C オプションは問い合わせのダイアログを
いかなる場合も表示しないようにするためです。この辺はお好きなように併せて変更してください。
なお、A.REGファイルではパスの区切りの「\」は「\\」と記述する必要があります。
この段階で A.REG ファイルをダブルクリックしてみてレジストリに結合し、regedit で正しく追加されることを確認します。その後、kematest.bat から起動してみて連動試験を行いましょう。
autoexec.bat の最終行に次の1行を追加します。
call C:\Progra~1\kemanet\kemaset.bat
これで電源ON(再起動時)にkemaset.batが呼び出されます。
再起動してみて満足の行く結果になるかどうか試してみましょう。作者の失敗としては、
などです。現在、もう少しましな方法を考えているところですがどうなることやら・・・