ProcessStartInfo.Verbs Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft den Satz der Verben ab, der dem durch die FileName-Eigenschaft angegebenen Dateityp zugeordnet ist.
public:
property cli::array <System::String ^> ^ Verbs { cli::array <System::String ^> ^ get(); };
public string[] Verbs { get; }
[System.ComponentModel.Browsable(false)]
public string[] Verbs { get; }
member this.Verbs : string[]
[<System.ComponentModel.Browsable(false)>]
member this.Verbs : string[]
Public ReadOnly Property Verbs As String()
Eigenschaftswert
Die Aktionen, die das System auf die durch die FileName-Eigenschaft angegebene Datei anwenden kann.
- Attribute
Beispiele
Im folgenden Codebeispiel werden die definierten Verben für den ausgewählten Dateinamen angezeigt. Wenn der Benutzer eines der definierten Verben auswählt, startet das Beispiel einen neuen Prozess mit dem ausgewählten Verb und dem Namen der Eingabedatei.
using System;
using System.ComponentModel;
using System.IO;
using System.Diagnostics;
using System.Windows.Forms;
class ProcessInformation
{
[STAThread]
static void Main()
{
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.InitialDirectory = "c:\\";
openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
openFileDialog1.FilterIndex = 2;
openFileDialog1.RestoreDirectory = true;
openFileDialog1.CheckFileExists = true;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
var fileName = openFileDialog1.FileName;
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}");
}
}
}
else
{
{
Console.WriteLine("You did not enter a number.");
}
}
}
}
Imports System.ComponentModel
Imports System.IO
Imports System.Diagnostics
Imports System.Windows.Forms
Module ProcessInformation
Public Shared Sub Main()
Dim openFileDialog1 As New OpenFileDialog()
openFileDialog1.InitialDirectory = "c:\"
openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
openFileDialog1.FilterIndex = 2
openFileDialog1.RestoreDirectory = True
openFileDialog1.CheckFileExists = True
If openFileDialog1.ShowDialog() = DialogResult.OK Then
Dim fileName = openFileDialog1.FileName
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
Try
Using newProcess As New Process
newProcess.StartInfo = startInfo
newProcess.Start()
Console.WriteLine($"{newProcess.ProcessName} for file {fileName} " +
$"started successfully with verb '{startInfo.Verb}'!")
End Using
Catch e As Win32Exception
Console.WriteLine(" Win32Exception caught!")
Console.WriteLine($" Win32 error = {e.Message}")
Catch e As InvalidOperationException
Console.WriteLine($"Unable to start '{fileName}' with verb {verbToUse}")
End Try
Else
Console.WriteLine("You did not enter a number.")
End If
End If
End Sub
End Module
Hinweise
Mit Verbs der -Eigenschaft können Sie die Verben bestimmen, die mit der von der FileName -Eigenschaft angegebenen Datei verwendet werden können. Sie können die Verb -Eigenschaft auf den Wert eines beliebigen Verbs im Satz festlegen. Beispiele für Verben sind "Bearbeiten", "Open", "OpenAsReadOnly", "Print" und "Printto".
Beachten Sie, dass die resultierende Liste der Verben möglicherweise nicht alle möglichen Werte enthält, z. B. "Neu" wird der Liste von Grund auf nicht hinzugefügt und andere mögliche Verben werden je nach Systemeinrichtung nicht immer erkannt.
Wenn Sie die Verbs -Eigenschaft verwenden, müssen Sie die Dateinamenerweiterung einschließen, wenn Sie den Wert der FileName Eigenschaft festlegen. Die Dateinamenerweiterung bestimmt den Satz möglicher Verben.