- ベストアンサー
プログラムの再起動
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>自作プログラムのコードを検索すれば、WinMainがあるのですか? メニューの「プロジェクト(P)」に「ソース表示(V)」というのがありませんか? 蛇足ですが#3への補足です。 >2の方法ですと、グローバル変数があった場合にそのコンストラクタや >ディストラクタが実行されないので危険だと思うのですが、いかがです >か? 静的グローバル変数は初期化されないので危険をはらみますが、静的グローバル変数には初期化コードがあるだけでコンストラクタやディストラクタは存在しません(回答のコードを例にすればReboot変数が静的グローバル変数です) 動的グローバル変数は、メインフォームのクラス内に記述すれば、メインのフォームをReleaseした時点でディストラクタが呼ばれ、CreateForm()でフォームを再作成した時点でコンストラクタが呼ばれる筈です。 もし、独自のクラス内に動的グローバル変数を置いてあっても、そのクラスを生成、破棄する時点で、コンストラクタとディストラクタが呼ばれる筈です。
その他の回答 (3)
No.1のhsn_hidekiです。 chie65536さんへ質問です。 2の方法ですと、グローバル変数があった場合にそのコンストラクタやディストラクタが実行されないので危険だと思うのですが、いかがですか? 1の方法は確実に再起動されるので大丈夫ですよね。
- chie65536
- ベストアンサー率41% (2512/6032)
1. ShellExecuteEx関数で自分自身(Application->ExeName()が返す実行ファイル名)を起動し、呼び出し元プログラムを終了する。 2. WinMainの中を改造する。 bool Reboot; WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { Reboot = true; try { while (Reboot) { Reboot = false; Application->Initialize(); Application->CreateForm(__classid(TMainForm), &MainForm); Application->Run(); MainForm->Release(); } } catch (Exception &exception) { Application->ShowException(&exception); } return 0; } 再起動したい場合、Reboot変数にtrueを設定した上でメインのフォームをクローズすると、もう一度メインのフォームが作成され、プログラムが再起動したように振るまいます。 なにもせずにメインのフォームをクローズすると普通に終了します。
再起動というのは、 1.パソコンの再起動 2.Windowsの再起動 3.お作りになってるプログラムの再起動 どれでしょうか?
関連するQ&A
- 「Borland C++ Builder 5」で作成したプログラムについて
「Borland C++ Builder 5」で作成したプログラム(コンポーネント使用)を、Builderを起動せずフリーソフトのようにWindows上で実行させるにはどうすればよいのでしょうか。
- ベストアンサー
- C・C++・C#
- win10でCppビルダー2009起動しない
久しぶりに、エンバカデロのC++ Builder 2009でコードの修正を行わなくてはいけなくなり、起動してみたのですが、なぜかウィンドウが全く開きません。 C:\Program Files (x86)\CodeGear\RAD Studio\6.0\bin\bds.exe このexeを管理者権限で直接起動してみるとか、互換モードでwindows7選択なども試したのですが全く起動できません。 前回、PCがwindows 8.1搭載時にインストールした際には通常通りC++ Builder 2009は起動できていたのですが、今回windows10に更新してから初めての起動でした。 なにか、windows10になってからのC++ Builder 2009の起動で問題が発生しているなどの現象はありますでしょうか? どうぞ、ご教示頂きますよう、よろしくお願い致します。
- 締切済み
- その他([技術者向] コンピューター)
- プログラムが起動できません。
適当なプログラムを右クリックでスタートメニューにアイコンを登録を選択 その元のフォルダの名前変更しスタートメニューからアイコンをクリック。 当然起動されない。そのショートカット先を変更。するとそのソフト(1とする)は使えるようになるが他のプログラムを起動しても1しか起動されないようになってしまった。そこでアイコンとそのプログラム(1のソフトが入っているフォルダ)削除。すると指定されたパスは存在しません。パスが正しいか確認してください。と出て他のプログラムを起動できません。かろうじてIEだけは起動できたんです。再起動もしましたけどだめでした。使っているOSはXPのhome edition sp1です。パソ本体はFMV-BIBLO NB16C/Aです これはOSのバグなんでしょうか?とにかく他のプログラムが起動できなくて困ってます。誰かわかる方、精通している方お願いします。
- ベストアンサー
- Windows XP
- C言語でプログラムを再起動
UNIXで動くC言語のプログラムを作っています。 その際、プログラムを再起動させたい時があります。 しかし、C言語でプログラムを再起動させるってどうやればいいのかよくわかりません。 何かよいやり方を知っている方、教えてください。 よろしくお願いします。
- ベストアンサー
- C・C++・C#
- 保存したファイルを起動したい
C++Builder5.0で画像ファイルを起動させたいのですがどのようにしたらいいのでしょうか? したい事は画像ファイルをダブルクリックして画像を表示させる動作を プログラムで実装したいです。 よろしくお願い致します。
- ベストアンサー
- C・C++・C#
- C++Builder初心者の勉強法
C++Builder初心者です。 プログラムといえばVBをかじった経験しかありません。 そんな初心者がC++Builderを理解したいのですが、 C++Builderは参考書籍が少なく困っています。 VC++のものを読んでも参考になるのでしょうか? また、VC++を読んだ場合、注意点等あるでしょうか?
- ベストアンサー
- C・C++・C#
- 複数プログラム一発起動
こんばんわ。お伺いします。 複数プログラムを一発起動できるプログラム、 を探しています。 所謂「ランチャー」だと思いますが、 中々理想に合ったものが見つかりません。 ご紹介頂ければ幸いです。 ---------------------------------------------- 「理想」は、 「デスクトップ上のアイコンをクリックすると、 対応した複数ファイルがボン、ボン、ボン、 と起動してくれる。わー、楽チン♪」 です。こんな流れを期待しています。 (1)一括で使うファイルA,B,Cがある。 (2)普段は、それぞれショートカットをつくって、 一つのフォルダにまとめて入れて、 順番にクリックして起動して使っている という状態から、 (3)プログラムX導入 (4)プログラムXに、上記ファイルA,B,Cを放り込む。 (5)プログラムXが「ファイルA,B,Cを一発起動するアイコンX」 を作成する。 (6)それ以降、アイコンXをクリックすると、 一発でファイルA,B,Cが開くようになる という状態へもって行きたい、です。 「ランチャーを起動しておいて、ボタンを押す」 ではなく、あくまで、 「デスクトップのアイコンXから、一発で複数起動」 へもって行きたいです。 説明が上手く出来なくて申し訳ありません。 「あ、それなら、これはいかがかな?」 とお奨めいただければ、幸いです。 ご一読感謝いたします。 それでは
- ベストアンサー
- フリーウェア・フリーソフト
- スタートアップで起動される常駐プログラム
Windows98を起動すると、自動的に起動される常駐プログラムがいくつもあり、そのせいかときどき動きが遅くなったり止まったりすることがあります。不要な常駐プログラムは起動されないようにしたいのですが、これはどこを変えればよいでしょうか。 C:\WINDOWS\All Users\スタート メニュー\プログラム\スタートアップ C:\WINDOWS\スタート メニュー\プログラム\スタートアップ は既に調べて、ここにいくつかのショートカットがあるのは確認したのですが、ここ以外にいくつもあるようで、それを知りたいのです。
- ベストアンサー
- Windows 95・98
- ハードコピーをプログラムから操作する
C++Builder Ver5.0でプログラム開発しています。 表示しているウィンドウのハードコピーをプログラムからハードコピーする方法が分かりません。 たぶん、APIをコールするだけだと思うのですが、参考資料がみつかりません。 C++Builder にラッパーも見あたらないのですが、どなたかお教えください。 また、以下の2つの場合にわけて操作したいのですが、、、 1、アクティブウィンドウをハードコピーする 2、スクリーン全体をハードコピーする 以上 よろしくお願いいたします。
- ベストアンサー
- C・C++・C#
補足
コードまで書いていただきありがとうございます。 ただ、「WinMainの中を改造する」というのが、わかりません。 自作プログラムのコードを検索すれば、WinMainがあるのですか? それともイベントのこと? 初心者なので、的外れかもしれませんが、 もう少しお願いします!!!