通过


ProcessStartInfo.Verb 属性

定义

获取或设置在打开属性指定的 FileName 应用程序或文档时要使用的谓词。

public:
 property System::String ^ Verb { System::String ^ get(); void set(System::String ^ value); };
public string Verb { get; set; }
[System.ComponentModel.TypeConverter("System.Diagnostics.Design.VerbConverter, System.Design, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
public string Verb { get; set; }
[System.ComponentModel.TypeConverter("System.Diagnostics.Design.VerbConverter, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
public string Verb { get; set; }
[System.ComponentModel.TypeConverter("System.Diagnostics.Design.VerbConverter, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
public string Verb { get; set; }
member this.Verb : string with get, set
[<System.ComponentModel.TypeConverter("System.Diagnostics.Design.VerbConverter, System.Design, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")>]
member this.Verb : string with get, set
[<System.ComponentModel.TypeConverter("System.Diagnostics.Design.VerbConverter, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")>]
member this.Verb : string with get, set
[<System.ComponentModel.TypeConverter("System.Diagnostics.Design.VerbConverter, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")>]
member this.Verb : string with get, set
Public Property Verb As String

属性值

要对进程打开的文件执行的操作。 默认值为空字符串(“),表示无操作。

属性

示例

下面的代码示例使用指定的谓词和文件名启动一个新进程。 此代码示例是为属性提供的大型示例的 Verbs 一部分。

int i = 0;
var startInfo = new ProcessStartInfo(fileName);

// Display the possible verbs.
foreach (var verb in startInfo.Verbs)
{
    Console.WriteLine($"  {i++}. {verb}");
}

Console.Write("Select the index of the verb: ");
var indexInput = Console.ReadLine();
int index;
if (Int32.TryParse(indexInput, out index))
{
    if (index < 0 || index >= i)
    {
        Console.WriteLine("Invalid index value.");
        return;
    }

    var verbToUse = startInfo.Verbs[index];

    startInfo.Verb = verbToUse;
    if (verbToUse.ToLower().IndexOf("printto") >= 0)
    {
        // printto implies a specific printer. Ask for the network address.
        // The address must be in the form \\server\printer.
        // The printer address is passed as the Arguments property.
        Console.Write("Enter the network address of the target printer: ");
        var arguments = Console.ReadLine();
        startInfo.Arguments = arguments;
    }

    try
    {
        using (var newProcess = new Process())
        {
            newProcess.StartInfo = startInfo;
            newProcess.Start();

            Console.WriteLine($"{newProcess.ProcessName} for file {fileName} " +
                              $"started successfully with verb '{startInfo.Verb}'!");
        }
    }
    catch (Win32Exception e)
    {
        Console.WriteLine("  Win32Exception caught!");
        Console.WriteLine($"  Win32 error = {e.Message}");
    }
    catch (InvalidOperationException)
    {
        // Catch this exception if the process exits quickly,
        // and the properties are not accessible.
        Console.WriteLine($"Unable to start '{fileName}' with verb {verbToUse}");
    }
}
Dim i = 0
Dim startInfo = New ProcessStartInfo(fileName)

Dim verb As String
For Each verb In startInfo.Verbs
    ' Display the possible verbs.
    Console.WriteLine($"  {i}. {verb}")
    i += 1
Next

Console.Write("Select the index of the verb: ")
Dim indexInput = Console.ReadLine()
Dim index As Integer
If Int32.TryParse(indexInput, index) Then
    If index < 0 OrElse index >= i Then
        Console.WriteLine("Invalid index value.")
        Return
    End If

    Dim verbToUse = startInfo.Verbs(Convert.ToInt32(index))

    startInfo.Verb = verbToUse
    If verbToUse.ToLower().IndexOf("printto") >= 0 Then
        ' printto implies a specific printer.  Ask for the network address.
        ' The address must be in the form \\server\printer.
        Console.Write("Enter the network address of the target printer: ")
        Dim arguments = Console.ReadLine()
        startInfo.Arguments = arguments
    End If

注解

每个文件扩展名都有自己的谓词集,可以使用该 Verbs 属性获取。 例如,“print”谓词打印通过使用 FileName指定的文档。 可以使用空字符串(“”)指定默认谓词。 谓词的示例包括“Edit”、“Open”、“OpenAsReadOnly”、“Print”和“Printto”。 应仅使用显示在属性返回的动词集中的 Verbs 谓词。

使用该 Verb 属性时,必须在设置属性的值 FileName 时包含文件扩展名。 如果手动输入属性的值 Verb ,则文件名不需要扩展名。

适用于

另请参阅