- 締切済み
WinXP起動時に実行されるプログラムは何処に記述
困ったというのではなく、純粋に知的好奇心での質問です。 WinXP起動時に、必要に応じてディスクチェックが行われ、その後、「ようこそ」画面がでて、ユーザの選択画面になります。しかし「HD革命」のリストアを実行すると、再起動した後、「ようこそ」画面の代わりにHD革命のリストアプログラムが開始されますよね。 どうやって、「ようこそ」の画面表示の前に自分のプログラムを起動させているのか興味があります。想像するに、HD革命では、Cドライブのどこかのファイルを書き換えて、 「「ようこそ」の画面を表示する前にHD革命のリストアプログラムを実行せよ」 という意味の記述を書き加えているのだと思いますが、具体的に、どのファイルにどのような記述をすれば、自分のプログラムを起動できるのか、ご存知のかた、お教えください。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- Raistlin
- ベストアンサー率63% (65/102)
起動時のディスクのエラーチェックを(ドライブのプロパティ経由で)意図的に実行してみると分かるのですが、システムドライブのチェックをしようとすると、「Windows再起動後にしか実行できない」というメッセージが表示されます。 これはWindowsが普通に起動してしまった後では、エラーチェックができないので、Windowsを起動させる前に実行するということを伝えています。 一方、Win32モードとは何かというと、windows用の32ビットプログラムを走らせることができる環境です。 「Windowsが普通に起動してしまった状態」(=Win32モード)では、autochkのようなWindowsが(普通に)起動する前の環境で実行するためのプログラムは起動できないというのが提示のエラーの原因ですが、では実行できるプログラムは何かと問われると、当方知識を超えています。御免なさい。 追加の質問ですが、以下のようなVBScriptをシャットダウンスクリプトに指定すれば確認は可能です。 +++++ここから++++++ Dim WshShell, bKey, i Set WshShell = WScript.CreateObject("WScript.Shell") bKey = WshShell.RegRead("HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\BootExecute") For i = 0 To LBound(bKey) WScript.Echo bKey(i) Next +++++ここまで++++++ #結論としては間違っていないと思いますが、上記記述に厳密な意味での正確さを期待しないでください。
- Raistlin
- ベストアンサー率63% (65/102)
質問を読み飛ばして誤った回答をしてしまい申し訳ありません。 ログオン画面の前に起動するプログラムを指定できるレジストリはこちらのようです。 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\BootExecute 普段は起動時のディスクエラーチェックが設定されています。
- Raistlin
- ベストアンサー率63% (65/102)
参考URLを参照下さい
お礼
回答ありがとうございます。 紹介いただいたページでは、<ログオン画面> すなわち「ようこそ」の画面表示の前に、 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion の下の、 RunServicesOnce RunServices が実行されると記載されていると理解しました。そこで早速、REGEDITでレジストリを見てみましたが、 これらのエントリーが見当たりません。 なお、<ログオン画面>の後に実行されるという、 RunOnce Run および、 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion の下の、 RunOnce Run は見つかりました。 >再起動した後、「ようこそ」画面の代わりにHD革命のリストアプログラムが開始されます が私の勘違いと思い、再度リストアを実行したのですが、やはり、<ログオン画面>になる前にHD革命のリストアプログラムが開始されます。 これって、どうやっているのでしょう?
お礼
回答ありがとうございます。 早速、お教えいただいたレジストリを調べたところ autocheck autochk * が設定されていました。そこで、このautocheckコマンドを「ファイル名を指定して実行」してみましたが、 autocheck が見つかりません と表示されるだけで実行できません。どこにあるプログラムなのでしょうか? また、パラメタの autochk の実行を試みましたが、 autochk はWin32モードでは実行できません と表示されます。ここに記述される値は、いったい何なのでしょう?少なくとも、ファイル名を指定して実行 で実行できるコマンドでは無いようらしいです。 別の質問になってしまいますが、 >HD革命では、Cドライブのどこかのファイルを書き換えて、 > 「「ようこそ」の画面を表示する前にHD革命のリストアプログラムを実行せよ」 >という意味の記述を書き加えている という推測が正しいとして、 HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\BootExecute にどのような値を設定しているのか確かめようとしたのですが、「HD革命」のリストアを実行して値が設定された後、直ぐにシステムが再起動されてしまい、regedit を起動して内容を確認することができません。どうやったら確かめられるのでしょうか?