• 締切済み

Windows再起動の制御

あるアプリケーションをVC6で作成中なのですが、 そのアプリケーションのプロセスの途中で Windowsを再起動し、再起動完了後に 続きのプログラムを走らせたいのですが、 何らかの方法で可能でしょうか? ちなみに、そのアプリケーションの実行環境は WindowsXP SP2です。

みんなの回答

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.2

レジストリを使っていいのなら Runよりは RunOnceのほうがよいかと。 ただユーザーが与えられている権限による問題が出る可能性がありますけど。 レジストリの RunOnce キーの定義 http://support.microsoft.com/kb/137367/ja Windows XP レジストリの Run キーの定義 http://support.microsoft.com/kb/314866/ja

  • Oh-Orange
  • ベストアンサー率63% (854/1345)
回答No.1

★アイディア ・そのアプリケーションを再起動する前に『スタートアップ』フォルダにショートカットを  作成します。ただし、オプションを指定して起動するようにします。  その後、再起動を行う。 ・再起動するとオプション付きでアプリケーションが起動しますが、この場合に続きの処理を  行うようにすればどうでしょうか。また、『スタートアップ』フォルダのショートカットは  オプション付きで起動したら即、削除するようにします。 ・ショートカットが嫌いならば、レジストリの『Run』にプログラム名を記述すれば自動起動  します。 ・以上。こんなアイディアはどうでしょうか。

関連するQ&A

  • Windows7のタスクスケジューラーで起動してもUIが出ない

    Windows7のタスクスケジューラーで起動してもUIが出ない  VB.NETで自作した(通常のFormをUIとして持った)アプリケーションプログラムをWindowsXPのタスクスケジュラーから起動すると、プログラムの実行中はForm(UI)が見えますし、タスクマネージャーのアプリケーションのタブ内にも表示されます。しかし同じプログラムをWindows7で、タスクスケジューラーから起動すると、UIが見えません。また、タスクマネージャーで確認すると、プロセスのタブ内にはありますが、アプリケーションのタブ内には見当たりません。WindowsXPのタスクスケジューラーから起動したのと同様にUIを表示する方法を教えてください。よろしくお願いします。  ちなみに自作のアプリケーションはVB2008ExpressEditionで作成したものです。

  • プログラムの排他制御

    こんにちわ。 WindowsXP VC++でプログラムを組んでいるのですが、 同時に起動されても、並列で動くのがいやなので 後から起動された方は先に起動された方が終了するのを 待つようにしたいと思っています。 プログラムが使用するのはAccessDBであるためDBで排他するのは嫌なので、 実行中のプロセスをみて、同じ名前のプロセスがいたら、 数秒ウェイトをかけてまたプロセスチェック、というのをループで 実現しようと思っています。 でも、プログラムがかなり同時に起動してしまった場合、 (起動してプロセスのチェックをするまでの間に他プロセスが起動) 2つのプロセスはデッドロックのように、 お互いが終了するのを待つようになってしまいます。 なにか、うまい解決方法はないでしょうか? よろしくおねがいします。

  • VC++にて_spawnlpでプロセス起動

    Microsoft VisualC++にて_spawnlpを使用してのプロセス起動について質問です。 環境 OS:WindowsXP MS-Visual C++ 6.0 ----------------------------------------------------------------- int i; char cTask[10][50]; //起動するexeのパス&ファイル名 if(i=0; i<10; i++) { /* プロセス起動 */ ret = _spawnlp(_P_NOWAIT,cTask[pno],cTask[pno],NULL); } ----------------------------------------------------------------- 上記プログラムでcTaskに登録されているEXEを起動させています。 cTaskに登録されているEXEは、どれもVC++にてコンソールアプリケーションとして作成しています。 ですので、エクスプローラにて単体で各EXEを起動させると、10個のコンソールが表示されます。 ですが、上記プログラムにてcTaskに登録されているEXEを起動させると、画面上には1個のコンソールしか表示されません。 タスクマネージャで確認すると、全てのEXEは起動していますので、画面上のコンソールが1個に纏められてしまいます。 各EXE毎に10個のコンソールを表示させるようにしたいのですが、どのようにすればよいのでしょうか? 上記プログラムもVC++のコンソールアプリケーションとして作成しました。

  • コンソールアプリケーションの終了方法

    コンソールアプリケーションをC言語(Visual-C++6.0)にて開発予定です。このアプリケーションは画面を使わないのでコンソールアプリケーションにする予定です。このプログラムは常駐プロセスにし、コマンドで起動停止を行うようにする予定です。プログラムの起動はバッチファイルを作成し、そこから実行しようと考えていますが、プログラムを停止させるバッチファイルのイメージがわきません。unixの場合は、当該プロセスにSIGTERMを送信する等の方法が考えられるのですが、windowsで常駐のコンソールアプリケーションを停止させるには、どのような方法があるのでしょうか。ご存じの方ありましたら、教えてください。停止させる方法は、外部から常駐プロセスに停止である旨の何らかの事象を送り、それを常駐プロセスがキャッチし、自ら停止することを想定しています。(有無をいわさず殺すことは考えていません) 実行環境:windows2003を想定 開発言語:VC++6.0でC言語

  • VC++ Windows2000 でリソースが開けない

    環境:Windows2000SP2 Visual C++ 6.0 SP5 VC++ 超初心者です。 MFCアプリウィザード(EXE)でSDIアプリケーションのスケルトンを作成し、手を加えずにビルドしましたが、エラー 「F:\…test5\test5.rc(11) : fatal error RC1015: cannot open include file 'afxres.h'.」 rc.exe の実行エラー が出て実行できません。 また、リソースウィンドウを開いてみると、リソースが一つも表示されずにその代わりに、 「ロードに失敗しました」と表示されています。 VC++をWindows2000で使用する場合には、何かしなければいけないのでしょうか?

  • パイプ処理について

    お世話になっております。 コンソールをパイプ処理を通じて制御するWin32アプリケーションプログラムを作成しています。 パイプを作成して、コマンドプロンプトを起動、 netcap(Windowsのサポートツールです)の起動成功までは出来ました。 問題なのは、 このnetcapを終了させるためにはスペースキーを押さなければならないことです。 スペースキーを押さないと正しくログが作成されないみたいなのですが、 どのようにすればスペースキーが押されたこと子プロセスが認識できるのでしょうか? keybd_event()を使用してもうまく受け取ってくれませんでした。 よろしくお願いします。 【環境】 WinXP Pro SP1 VC++6.0

  • VC++2005で外部プログラムを起動

    VC++2005EEを使って実行ファイルとは違うフォルダにある外部プログラムの起動をしようとしています。 System::Diagnostics::Process::Start を使って起動しようとしたら起動はしたのですが、本来その外部プログラムが読み取るデータ(外部プログラムと同じフォルダにあるデータ)を読み込んでくれません。 どうしてなのでしょうか?また、どうしたら正常に起動することができるのでしょうか? VC++はまだ始めたばかりでよくわかりませんが、よろしくおねがいします。

  • 常駐し他のプロセスの起動を取得する方法

    test.exeというプログラムを作ります。 実行すると特定のプロセスの起動を待ちます。 特定のプロセスをnotepad.exeとします。 メモ帳(notepad.exe)が起動されたらtest.exeは何かします。 例えばMessageBox()とかで何か表示します。 どうやればいいのでしょうか? ・特定のプロセスが起動するまで待つ ・起動を検知する というところを教えてください。 VC++です。MFC,ATLなどは使いません。 特にウインドウなどはいらないので数行でできてしまうのであれば winmain()からお願いします。

  • アプリケーションの自動起動について

    初めて投稿させて頂きます、VC++のソフトウェア開発を始めて1ヶ月の初心者のフジと申します。 この度はソフトウェア開発において、行き詰ってしまったので皆様に質問させて頂きます。 質問させて頂きたい内容は、ヴューアー等で、特定のフォルダに画像を保存した際に、アプリケーションを自動で起動させて、画像の形式を変換させることが出来るかということです。 画像形式変換のプログラムは作成出来たのですが、特定のフォルダにファイルを保存した際に自動で自作したプログラムが起動させることが出来ません。 ネットで調べてみたら、常時起動させておく方法はあるのですが、それだとほかのアプリケーションに影響を与える可能性も考えられるので、出来ればファイルが保存された時に自動起動するようにしたいです。 開発している環境は Visual C++6.0 Windows XP Proffesional SP2 です。宜しくお願いいたします。

  • アプリケーションの自動起動について

    初めて投稿させて頂きます、VC++のソフトウェア開発を始めて1ヶ月の初心者のフジと申します。 この度はソフトウェア開発において、行き詰ってしまったので皆様に質問させて頂きます。 質問させて頂きたい内容は、ヴューアー等で、特定のフォルダに画像を保存した際に、アプリケーションを自動で起動させて、画像の形式を変換させることが出来るかということです。 画像形式変換のプログラムは作成出来たのですが、特定のフォルダにファイルを保存した際に自動で自作したプログラムが起動させることが出来ません。 ネットで調べてみたら、常時起動させておく方法はあるのですが、それだとほかのアプリケーションに影響を与える可能性も考えられるので、出来ればファイルが保存された時に自動起動するようにしたいです。 開発している環境は Visual C++6.0 Windows XP Proffesional SP2 です。宜しくお願いいたします。