Process.CloseMainWindow メソッドとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > Process.CloseMainWindow メソッドの意味・解説 

Process.CloseMainWindow メソッド

メイン ウィンドウクローズ メッセージ送信してユーザー インターフェイスがあるプロセス終了します

名前空間: System.Diagnostics
アセンブリ: System (system.dll 内)
構文構文

例外例外
例外種類条件

PlatformNotSupportedException

プラットフォームWindows 98 または Windows Millennium Edition (Windows Me) です。Windows 98Windows Me でこのプロパティアクセスするには、ProcessStartInfo.UseShellExecute を false設定します

解説解説

プロセス実行中、メッセージ ループ待機状態です。メッセージ ループは、オペレーティング システムによって Windows メッセージプロセス送信されるたびに実行されます。CloseMainWindow呼び出すと、メイン ウィンドウ閉じ要求送信されます。適切に構成されアプリケーションでは、これにより子ウィンドウ閉じられ、そのアプリケーションのために実行されているすべてのメッセージ ループ終了しますCloseMainWindow呼び出してプロセス終了要求しても、アプリケーション強制終了されません。アプリケーションでは、終了前にユーザー確認求めたり終了拒否できますアプリケーション強制的に終了するには、Kill メソッド使用しますCloseMainWindow動作は、システム メニュー使用してアプリケーションメイン ウィンドウ閉じるときと同じです。そのため、メイン ウィンドウ閉じてプロセス終了要求しても、アプリケーションはすぐには強制的に終了されません。

プロセスによって編集されデータまたはプロセス割り当てられリソースは、Kill呼び出すと失われることがありますKillプロセス異常終了発生させるため、必要なときにだけ使用してくださいCloseMainWindow使用すると、プロセス手順に従って終了させ、すべてのウィンドウ閉じることができるため、インターフェイスのあるアプリケーションにはより適切です。CloseMainWindow失敗した場合は、Kill使用してプロセス終了できますグラフィカル インターフェイスのないプロセス終了させるには、Kill唯一の方法です。

KillCloseMainWindow呼び出すことができるのは、ローカル コンピュータ実行されているプロセスだけです。リモート コンピュータ上のプロセス終了できません。リモート コンピュータ上で実行中のプロセスは、情報表示だけができます

Windows 98, Windows Millennium Edition プラットフォームメモ : ProcessStartInfo.UseShellExecutetrue設定してプロセス開始した場合、このプロパティは、このプラットフォームでは利用できません。

使用例使用例

メモ帳インスタンス起動する例を次に示します。このコードは、インスタンス起動すると、2 秒間隔で最大 10 秒間関連付けられているプロセス物理メモリ使用量を取得しますまた、10 秒が経過する前にプロセス終了したかどうか検知します。10経過した後もプロセス実行中である場合は、プロセス終了します

Imports System
Imports System.Diagnostics
Imports System.Threading

Namespace Process_Sample
   Class MyProcessClass

      Public Shared Sub
 Main()
         Try

            Dim myProcess As Process
            myProcess = Process.Start("Notepad.exe")
            ' Display physical memory usage 5 times at intervals of
 2 seconds.
            Dim i As Integer
            For i = 0 To 4
               If not myProcess.HasExited Then
               
                  ' Discard cached information about the process.
                  myProcess.Refresh()
                  ' Print working set to console.
                  Console.WriteLine("Physical Memory Usage: "
 + _
                                              myProcess.WorkingSet.ToString())
                  ' Wait 2 seconds.
                  Thread.Sleep(2000)
               Else 
                  Exit For
               End If
              
            Next i

           ' Close process by sending a close message to its main window.
           myProcess.CloseMainWindow()
           ' Free resources associated with process.
           myProcess.Close()

         Catch e As Exception
            Console.WriteLine("The following exception was raised:
 ")
            Console.WriteLine(e.Message)
         End Try
      End Sub 'Main
   End Class 'MyProcessClass
End Namespace 'Process_Sample
using System;
using System.Diagnostics;
using System.Threading;

namespace Process_Sample
{
   class MyProcessClass
   {
      public static void
 Main()
      {
         try
         {
            Process myProcess;
            myProcess = Process.Start("Notepad.exe");
            // Display physical memory usage 5 times at intervals of
 2 seconds.
            for (int i = 0;i < 5; i++)
            {
               if (!myProcess.HasExited)
               {
                   // Discard cached information about the process.
                   myProcess.Refresh();
                   // Print working set to console.
                   Console.WriteLine("Physical Memory Usage: " 
                                        + myProcess.WorkingSet.ToString());
                   // Wait 2 seconds.
                   Thread.Sleep(2000);
               }
               else {
                   break;
               } 
            }

            // Close process by sending a close message to its main
 window.
            myProcess.CloseMainWindow();
            // Free resources associated with process.
            myProcess.Close();

         }
         catch(Exception e)
         {
            Console.WriteLine("The following exception was raised: ");
            Console.WriteLine(e.Message);
         }
      }
   }
}
#using <System.dll>

using namespace System;
using namespace System::Diagnostics;
using namespace System::Threading;
int main()
{
   try
   {
      Process^ myProcess;
      myProcess = Process::Start(  "Notepad.exe" );
      
      // Display physical memory usage 5 times at intervals of 2 seconds.
      for ( int i = 0; i < 5; i++ )
      {
         if (  !myProcess->HasExited )
         {
            
            // Discard cached information about the process.
            myProcess->Refresh();
            
            // Print working set to console.
            Console::WriteLine( "Physical Memory Usage : {0}", myProcess->WorkingSet.ToString()
 );
            
            // Wait 2 seconds.
            Thread::Sleep( 2000 );
         }
         else
         {
            break;
         }

      }
      myProcess->CloseMainWindow();
      
      // Free resources associated with process.
      myProcess->Close();
   }
   catch ( Exception^ e ) 
   {
      Console::WriteLine( "The following exception was raised: " );
      Console::WriteLine( e->Message );
   }

}

.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

Process.CloseMainWindow メソッドのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Process.CloseMainWindow メソッドのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS