2008-11-03 26 views
45

Poszukuję .NET-preferowanego sposobu wykonywania tego samego typu rzeczy, które wykonuje ShellExecute w Win32 (otwieranie, drukowanie itp. Dla dowolnych typów plików).Ekwiwalent ShellExecute w .NET

Programowałem system Windows od ponad 20 lat, ale jestem początkującym programistą w .NET, więc może po prostu szukam w niewłaściwych miejscach. Obecnie używam .NET 2.0 (VS C# 2005), ale w razie potrzeby można użyć VS 2008.

Jeśli jedyną odpowiedzią jest użycie P/Invoke, to może lepiej byłoby napisać moje małe narzędzie używając Win32.

Odpowiedz

61

Process.Start.

Należy pamiętać, że zaawansowane zastosowania (drukowanie itp.) Wymagają użycia ProcessStartInfo i ustawienia właściwości Verb.

+12

(Istnieje właściwość boolowa "UseShellExecute" na jej temat.) –

36

System.Diagnostics.Process.Start.

Założę się, że masz problem ze znalezieniem go, ponieważ znajduje się on w przestrzeni nazw System.Diagnostics. "Diagnostyka"? Zwykle z 20-letnim doświadczeniem jedną rzeczą, w której dobrze się spisujesz, jest zgadywanie, co będzie nazwane nowym API/językiem, ale ten mnie oszukał.

+2

+1 dla pełnej przestrzeni nazw. – D3vtr0n

3

Czy próbowałeś funkcji System.Diagnostics.Process.Start() ... Jest mniej więcej podobny do ShellExecute. Możesz otworzyć dokumenty exe, dokumenty. Nie sprawdziłem jeszcze drukowania, Marc powiedział ci, jak już.