2008-11-03 20 views
45

Estoy buscando la forma preferida de .NET de realizar el mismo tipo de cosas que ShellExecute en Win32 (apertura, impresión, etc. para tipos de archivos arbitrarios).ShellExecute equivalente en .NET

He estado programando Windows por más de 20 años, pero soy un completo novato en .NET, así que tal vez estoy buscando en los lugares equivocados. Actualmente estoy usando .NET 2.0 (VS C# 2005), pero podría usar VS 2008 si fuera necesario.

Si la única respuesta es usar P/Invoke, entonces sería mejor escribir mi pequeña utilidad usando Win32 de todos modos.

Respuesta

61

Process.Start.

Tenga en cuenta que los usos avanzados (impresión, etc.) requieren el uso de un ProcessStartInfo y la configuración de la propiedad Verb.

+12

(Hay una propiedad bool 'UseShellExecute' en él.) –

36

System.Diagnostics.Process.Start.

Apuesto a que tuvo problemas para encontrarlo porque está en el espacio de nombres System.Diagnostics. "Diagnóstico"? Por lo general, con 20 años de experiencia, una cosa en la que te sientes bien es adivinar qué se llamará algo en una nueva API/lenguaje, pero esta me engañó.

+2

+1 para el espacio de nombre completo. – D3vtr0n

3

¿Ha probado la función System.Diagnostics.Process.Start() ... Es más o menos similar a ShellExecute. Puede abrir exes, documentos. Todavía no he marcado la impresión, Marc ya te ha dicho cómo.