暇人おやじの暇なつぶやき
× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
■別のプロセスを起動する
タイトルはウインドウズのスタートメニューにある項目ですが、これの実装がサンプルとしてありました コードは次になります Process^ myProcess; myProcess->Start(); プロセスを使うには次の名前空間を定義します using namespace System::Diagnostics; using namespace System::ComponentModel; プロセスを起動する際、最低限必要な項目は「StartInfo->FileName」になります 次のコードはマイドキュメントのフォルダにある「MyFile.doc」を設定します // Get the path that stores user documents. String^ myDocumentsPath = Environment::GetFolderPath( Environment::SpecialFolder::Personal ); myProcess->StartInfo->FileName = String::Concat( myDocumentsPath, "\\MyFile.doc" ); 尚、MSのサンプルでは「StartInfo->Verb」が次のように設定されています myProcess->StartInfo->Verb = "Print"; これはファイルを開いて印刷を指示することになりますので、バッチなどを起動する場合には この項目は設定しません プロセスが終了した際に、正常終了したか否かを取得する場合には、イベントを定義します 次のコードはプロセスを新規作成し、イベントを発生させるためのプロパティ「EnableRaisingEvents 」を設定し、イベントを定義しています myProcess = gcnew Process; myProcess->StartInfo->CreateNoWindow = true; myProcess->EnableRaisingEvents = true; myProcess->Exited += gcnew System::EventHandler(this, &Form1::myProcess_Exited); これにより、終了時に「Exited 」イベントである「myProcess_Exited」が発生します private: System::Void myProcess_Exited(System::Object^ sender, System::EventArgs^ e) { String^ ecode = Convert::ToString(myProcess->ExitCode); MessageBox::Show(ecode,Application::ProductName,MessageBoxButtons::OKCancel,MessageBoxIcon::Asterisk); myProcess->Exited->Remove; } イベント発生時、その終了コードをメッセージボックスで確認できます PR |
カレンダー
カテゴリー
フリーエリア
最新CM
最新TB
ブログ内検索
|