2

私が取り組んでいる Windows プロジェクトでは、アプリを完全に再起動するメニューを選択するつもりです。これを行う Windows または C++ 関数はありますか?

4

6 に答える 6

3

このためのビルトインはありませんが、適切に設計されたアプリケーションは、進行中のすべてを停止し、最初にループバックすることができます。真の「新たなスタート」が必要な場合は、新しいプロセスを生成する必要があります (おそらく、古いプロセスがシャットダウンする前に行う最後の処理として)。

于 2009-09-22T22:21:06.860 に答える
2

いいえ、自分で行う必要があります。たとえば、アプリケーションを終了するまで待機する外部プロセスを実行してから、再度実行することができます。

于 2009-09-22T22:22:18.777 に答える
1

実際には、Windows Vista に組み込まれた再起動マネージャー API を確認することをお勧めします。いつものように、これを心ゆくまで p-invoke することができ、Visual C++ 2010での明示的なサポートが提供されます。

于 2009-09-23T04:50:18.897 に答える
0

CreateProcessを呼び出してから、アプリケーションの現在のインスタンスをExitProcess()で適切に閉じるか、C ランタイムにリンクする場合は main() から戻るだけです。しかし、最初に、なぜプロセスを再作成する必要があるのか​​を自問する必要があります。

于 2009-09-23T04:44:13.837 に答える
0

すでにこれを行う必要があります。これ以上読む必要のない最も簡単な方法は、単純な .bat ファイルを (手動で、またはアプリケーションによって動的に) 記述し、プログラムを開始してから、そのバット ファイルをアプリケーションから呼び出すことです。

バットファイルには、アプリを起動した後にそれ自体を削除する行が含まれている場合もあります...

于 2009-09-22T22:37:30.633 に答える
-3

ExitWindowsEx はあなたが望むものです。Windows に組み込まれているshutdown.exeユーティリティを実行することもできます。

shutdown -t0 -r (restart the system after 0 seconds)
于 2009-09-22T22:20:34.247 に答える