忍者ブログ
暇人おやじの暇なつぶやき
[62] [61] [60] [59] [58] [57] [56] [55] [54] [53] [52]
×

[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

コメント


コメントフォーム
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字


トラックバック
この記事にトラックバックする:


忍者ブログ [PR]
カレンダー
08 2024/09 10
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
フリーエリア
最新CM
最新TB
プロフィール
HN:
忍者 シオ才
性別:
非公開
バーコード
ブログ内検索