- ベストアンサー
NTのシャットダウン時及び起動時にプログラムを走らせる方法
NTのシャットダウン時及び起動時にプログラムを走らせる方法を探しています。 スタートアップではログオン時に走ってしまい都合が悪いです。 できれば両方知りたいですが、片方でも良いです。 もし知っておられる方はお教えください。お願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
まず、間違っていてすいません。思いっきり外していました。 「Run」で指定するとログオン時になります。「スタートアップ」フォルダに表示しないだけです。 「RunServices」というのもありますが、これはWin9xだけです。 こちらでもいろいろ調べてみたのですが、結局 NTの場合はサービスに登録するしかなさそうですね。 というわけで、「参考URL」にそれらしい動作をさせることが可能なプログラムを見つけました。ここにある「タイマー実行サービス」というプログラムです。たぶん貴方の要望に合うのではないでしょうか。(シャットダウン時は無理ですが) ただし、バッチファイルの場合はいろいろ制約があるのでOS起動時というのは難しいかもしれません。バッチファイルの中身が、ただ単にアプリケーションを次々に起動するという形ならまだましなのですが、コマンドプロンプトの機能を使っていた場合はうまく動かないかもしれません。 また、カレントディレクトリがOSのインストールしてあるドライブのルートディレクトリ(C:\等)に設定されていると思うので、カレントディレクトリに対して何かするようなアプリケーションの場合は注意が必要です。 あんまりお役に立てませんでしたね。すいません。
- 参考URL:
- http://www.and.or.jp/~metys/
その他の回答 (3)
- KojiS
- ベストアンサー率46% (145/312)
「ファイル名を指定して実行」で、「regedit.exe」か「regedt32.exe」と打ち込んだらレジストリエディタが起動します。 そこで、先日書き込んだディレクトリを探してください。 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run は、 HKEY_LOCAL_MACHINE +SOFTWARE +Microsoft +Windows +CurrentVersion +Run というツリー構造になっているということです。 なお、レジストリの操作は危険を伴いますので、誤って他のものを変更・削除してしまったりしないように気を付けてください。 危険を伴いますので、わからなければ、実行したいプログラムファイルのフルパスとコマンドラインオプションを教えてもらえば、簡単に設定できるやり方を教えます。
お礼
ツリー構造は見つかってRUNに設定する事も出来ました。 しかしログオンの度に実行されてしまいますが・・・・・ 何か間違っているのでしょうか? RUNONCE?を見つけたのでのその中に設定したところ一度実行したら設定が消えました。(起動時に一回じゃなく本当に一回だけなんですね・・・) 起動したいのは単なるバッチファイルです。 急ぎではないのでお暇な時にでも教えていただけたら幸いです。 ありがとうございました。
- KojiS
- ベストアンサー率46% (145/312)
》・レジストリのRUNに設定する方法 》 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run にいくつか登録されていますので、参考にしてください。 》・サービスアプリケーションへの登録の方法 》 基本はサービス用にプログラムを組むのですが、リソースキットに通常のアプリケーションをサービスに組み込むソフトがついていたと思います。(今NT4のリソースキットは片づけてしまっているので確認できませんが) サービスアプリケーションの組み方については MSDN等を調べてください。SDKにはサンプルがあります。 》シャットダウンの順序の概要 》 詳細は開示されていなかったと思いますが、アンドキュウメンテッドな書籍には書いてあるかもしれません。ユーザー層に近いものから終了するはずですが。 なお、シャットダウン時にいろいろ処理するようなアプリケーションはあまり薦められません。Windows自体のシャットダウン処理に障害が起こる可能性があるからです。シャットダウン時にフリーズするかもしれませんし、応答がありませんといわれるかもしれません。注意しましょう。
お礼
度々すみません。 ご回答をみて考えた結果、シャットダウン時とサービスへの登録はちょっと適した方法ではないようです。 レジストリのRUNに設定する方法を使用したいと考えています。 しかし素人のため HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run に設定されているという意味が分かりません・・・・・・ こういう名前のファイル、フォルダは無いですよね?? 申し訳ないですがもう少し具体的にお願いできませんか? OSはNT4.0SP6です。
- KojiS
- ベストアンサー率46% (145/312)
「走らせる」を「処理する」としてアドバイスします。 「走らせる」が「起動する」だった場合は、無理だと思います。 起動時なら、レジストリの Runに設定すれば、普通のプログラムでも起動時のみに走らせることができます。(こちらは「起動する」の場合でも有効です) シャットダウン時の場合は、サービスに登録するしかありません。ログオフの時に走っても困るんですよね? サービスアプリケーションにすれば起動時とシャットダウン時にプログラムに処理させることができるようになりますが、常駐してしまいます。 但し、シャットダウン時は、ドライバ、サービスなどのシャットダウン順序を詳しく調べないと、誤動作やフリーズの原因になりますので注意してください。
お礼
ご解答ありがとうございます。 質問の内容は「処理をする」でお願いします。 恥ずかしながらこの辺りの設定に関してぜんぜん素人です。 申し訳ないですが以下の項目を少し具体的に教えてもらえないでしょうか? ・レジストリのRUNに設定する方法 ・サービスアプリケーションへの登録の方法 (もし可能ならシャットダウンの順序の概要なども) ずうずうしいですがお願いできるでしょうか?
お礼
いえいえ、いろいろありがとうございました。 特別無いと困るって訳でもないので大丈夫です。 サービスに追加する方法を試してみます。 ありがとうございました。