Process.StartInfo プロパティ

定義

ProcessStart() メソッドに渡すプロパティを取得または設定します。

public:
 property System::Diagnostics::ProcessStartInfo ^ StartInfo { System::Diagnostics::ProcessStartInfo ^ get(); void set(System::Diagnostics::ProcessStartInfo ^ value); };
public System.Diagnostics.ProcessStartInfo StartInfo { get; set; }
[System.ComponentModel.Browsable(false)]
public System.Diagnostics.ProcessStartInfo StartInfo { get; set; }
member this.StartInfo : System.Diagnostics.ProcessStartInfo with get, set
[<System.ComponentModel.Browsable(false)>]
member this.StartInfo : System.Diagnostics.ProcessStartInfo with get, set
Public Property StartInfo As ProcessStartInfo

プロパティ値

ProcessStartInfo

プロセスを起動するときに使用するデータを表す ProcessStartInfo。 これらの引数には、プロセスの起動時に使用する実行可能ファイルまたは文書の名前があります。

属性

例外

StartInfo を指定する値は null です。

.NET Core と .NET 5 以降のみ: このメソッドは Start() 、プロセスの開始に使用されませんでした。

次の例では、実行するファイル、それに対して実行されたアクション、およびユーザー インターフェイスを表示する必要があるかどうかを設定 StartInfo します。 その他の例については、クラスのプロパティのリファレンス ページを ProcessStartInfo 参照してください。

#using <System.dll>
using namespace System;
using namespace System::Diagnostics;
using namespace System::ComponentModel;

int main()
{
    Process^ myProcess = gcnew Process;

    try
    {
        myProcess->StartInfo->UseShellExecute = false;
        // You can start any process, HelloWorld is a do-nothing example.
        myProcess->StartInfo->FileName = "C:\\HelloWorld.exe";
        myProcess->StartInfo->CreateNoWindow = true;
        myProcess->Start();
        // This code assumes the process you are starting will terminate itself. 
        // Given that it is started without a window so you cannot terminate it 
        // on the desktop, it must terminate itself or you can do it programmatically
        // from this application using the Kill method.
    }
    catch ( Exception^ e ) 
    {
        Console::WriteLine( e->Message );
    }
}
using System;
using System.Diagnostics;
using System.ComponentModel;

namespace MyProcessSample
{
    class MyProcess
    {
        public static void Main()
        {
            try
            {
                using (Process myProcess = new Process())
                {
                    myProcess.StartInfo.UseShellExecute = false;
                    // You can start any process, HelloWorld is a do-nothing example.
                    myProcess.StartInfo.FileName = "C:\\HelloWorld.exe";
                    myProcess.StartInfo.CreateNoWindow = true;
                    myProcess.Start();
                    // This code assumes the process you are starting will terminate itself.
                    // Given that it is started without a window so you cannot terminate it
                    // on the desktop, it must terminate itself or you can do it programmatically
                    // from this application using the Kill method.
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
}
Imports System.Diagnostics
Imports System.ComponentModel

Namespace MyProcessSample
    Class MyProcess
        Public Shared Sub Main()
            Try
                Using myProcess As New Process()

                    myProcess.StartInfo.UseShellExecute = False
                    ' You can start any process, HelloWorld is a do-nothing example.
                    myProcess.StartInfo.FileName = "C:\\HelloWorld.exe"
                    myProcess.StartInfo.CreateNoWindow = True
                    myProcess.Start()
                    ' This code assumes the process you are starting will terminate itself. 
                    ' Given that it is started without a window so you cannot terminate it 
                    ' on the desktop, it must terminate itself or you can do it programmatically
                    ' from this application using the Kill method.
                End Using
            Catch e As Exception
                Console.WriteLine((e.Message))
            End Try
        End Sub
    End Class
End Namespace

注釈

StartInfo は、プロセスの開始に使用するパラメーターのセットを表します。 呼び出されると StartStartInfo 開始するプロセスを指定するために使用されます。 設定に必要な StartInfo メンバーは、 FileName プロパティのみです。 プロパティを指定してプロセスをFileName開始することは、Windowsの [スタート] メニューの [実行] ダイアログ ボックスに情報を入力するのと似ています。 したがって、このプロパティは FileName 実行可能ファイルを表す必要はありません。 これは、拡張子がシステムにインストールされたアプリケーションに関連付けられている任意のファイルタイプを使用できます。 たとえばFileName、メモ帳などのエディターにテキスト ファイルが関連付けられている場合は.txt拡張子を持つことができます。また、.doc ファイルをワープロ ツール (Microsoft Word など) に関連付けた場合は.docを持つことができます。 同様に、[ 実行 ] ダイアログ ボックスで、.exe拡張子の有無にかかわらず実行可能ファイル名を受け入れるのと同じ方法で、.exe拡張子はメンバーで FileName 省略可能です。 たとえば、プロパティを FileName "Notepad.exe" または "メモ帳" に設定できます。

最初にアプリケーションをインストールした場所 (Web アドレスなど) にプロパティを設定FileNameすることで、ClickOnce アプリケーションを起動できます。 ハード ドライブにインストールされている場所を指定して、ClickOnce アプリケーションを起動しないでください。

ファイル名に実行できないファイル (.doc ファイルなど) が含まれている場合は、ファイルに対して実行するアクションを指定する動詞を含めることができます。 たとえば、.doc拡張子で Verb 終わるファイルの "Print" を設定できます。 プロパティの値を FileName 手動で入力する場合、プロパティで指定されたファイル名に拡張子を付ける Verb 必要はありません。 ただし、このプロパティを Verbs 使用して使用可能な動詞を決定する場合は、拡張機能を含める必要があります。

プロパティで指定されたパラメーターは、 StartInfo プロセスでメソッドを呼び出 Start す時点まで変更できます。 プロセスを開始した後、値を StartInfo 変更しても、関連付けられているプロセスに影響を与えたり、再起動したりすることはありません。 プロパティがProcessStartInfo.Password設定されたStart(ProcessStartInfo)メソッドProcessStartInfo.UserNameを呼び出すと、アンマネージCreateProcessWithLogonW関数が呼び出されます。この関数は、プロパティ値が true > またはプロパティ値Hiddenである場合CreateNoWindowでも、新しいウィンドウでプロセスをWindowStyle開始します。

メソッドによって返されるオブジェクトのProcessプロパティにのみアクセスStartInfoするStart必要があります。 たとえば、返されるGetProcessesオブジェクトのStartInfoプロパティにはProcessアクセスしないでください。 それ以外の場合、.NET Core StartInfo では、プロパティはダミー ProcessStartInfo オブジェクトをInvalidOperationException返.NET Frameworkをスローします。

プロセスが開始されると、ファイル名は (読み取り専用) MainModule プロパティを設定するファイルです。 プロセスの開始後にプロセスに関連付けられている実行可能ファイルを取得する場合は、プロパティを MainModule 使用します。 関連付けられているプロセスが開始されていないインスタンスのProcess実行可能ファイルを設定する場合は、プロパティのFileNameメンバーをStartInfo使用します。 プロパティのメンバーはプロセスの StartInfo メソッドに Start 渡される引数であるため、関連付けられているプロセスが開始された後にプロパティを変更 FileName しても、プロパティはリセット MainModule されません。 これらのプロパティは、関連付けられているプロセスを初期化するためにのみ使用されます。

適用対象

こちらもご覧ください