2008-11-03 13 views
45

Je suis à la recherche de la façon .NET-préférée d'effectuer le même type de chose que ShellExecute fait dans Win32 (ouverture, impression, etc. pour les types de fichiers arbitraires).Equivalent ShellExecute dans .NET

J'ai programmé Windows depuis plus de 20 ans, mais je suis un débutant complet à .NET, alors peut-être que je cherche juste dans les mauvais endroits. J'utilise actuellement .NET 2.0 (VS C# 2005), mais je pourrais utiliser VS 2008 si besoin est. Si la seule réponse est d'utiliser P/Invoke, alors je ferais mieux d'écrire simplement mon petit utilitaire en utilisant Win32.

Répondre

61

Process.Start.

Notez que les utilisations avancées (impression, etc.) nécessitent l'utilisation d'un ProcessStartInfo et la définition de la propriété Verb.

+12

(Il existe une propriété booléenne 'UseShellExecute'.) –

36

System.Diagnostics.Process.Start.

Je parie que vous avez eu du mal à le trouver car il se trouve dans l'espace de noms System.Diagnostics. "Diagnostic"? Habituellement, avec 20 ans d'expérience, une chose que vous obtenez bien est de deviner ce que quelque chose sera appelé dans une nouvelle API/langue, mais celui-ci m'a trompé.

+2

+1 pour l'espace de noms complet. – D3vtr0n

3

Avez-vous essayé la fonction System.Diagnostics.Process.Start() ... Elle est plus ou moins similaire à ShellExecute. Vous pouvez ouvrir exes, documents. Je n'ai pas encore vérifié l'impression, Marc vous l'a déjà dit.