Aracılığıyla paylaş


ProcessStartInfo.Verbs Özellik

Tanım

özelliği tarafından FileName belirtilen dosya türüyle ilişkili fiil kümesini alır.

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()

Özellik Değeri

String[]

Sistemin özelliği tarafından FileName belirtilen dosyaya uygulayabileceği eylemler.

Öznitelikler

Örnekler

Aşağıdaki kod örneği, seçilen dosya adı için tanımlı fiilleri görüntüler. Kullanıcı tanımlı fiillerden birini seçerse, örnek seçilen fiil ve giriş dosyası adını kullanarak yeni bir işlem başlatır.

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

Açıklamalar

özelliği, Verbs özelliği tarafından belirtilen dosyayla kullanılabilecek fiilleri belirlemenizi FileName sağlar. özelliğini kümedeki Verb herhangi bir fiilin değerine ayarlayabilirsiniz. Fiillere örnek olarak "Edit", "Open", "OpenAsReadOnly", "Print" ve "Printto" verilebilir.

Sonuçta elde edilen fiil listesinin olası tüm değerleri içeremediğini unutmayın; örneğin,"Yeni" tasarım gereği listeye eklenmez ve sistem kurulumunuz bağlı olarak diğer olası fiiller her zaman algılanmaz.

özelliğini kullandığınızda Verbs , özelliğin değerini ayarlarken dosya adı uzantısını FileName eklemeniz gerekir. Dosya adı uzantısı olası fiil kümesini belirler.

Şunlara uygulanır

Ayrıca bkz.