Lancer un fichier avec des arguments de ligne de commande sans connaître l'emplacement de l'exe ?
Question
Voici la situation :J'essaie de lancer une application, mais je ne connais pas l'emplacement du .exe.Maintenant, si l'extension de fichier est enregistrée (sous Windows), je peux faire quelque chose comme :
Process.Start("Sample.xls");
Cependant, je dois également transmettre certains arguments de ligne de commande.Je n'arrivais pas à faire fonctionner ça
Process p = new Process();
p.StartInfo.FileName = "Sample.xls";
p.StartInfo.Arguments = "/r"; // open in read-only mode
p.Start();
Des suggestions sur un mécanisme pour résoudre ce problème ?
Modifier @aku
Mes compétences de recherche StackOverflow sont faibles ;Je n'ai pas trouvé ce message.Bien que je n'aime généralement pas consulter le registre, c'est une excellente solution.Merci!
La solution
En utilisant mon code de ce réponse, vous pouvez obtenir la commande associée à l'extension xls.Ensuite, vous pouvez passer cette commande à Process.Start
méthode.
Autres conseils
Si vous interrogez le registre, vous pouvez récupérer les données sur le type de fichier enregistré, puis appeler l'application en passant directement les arguments de ligne de commande.Voir Vérification et définition par programme des types de fichiers pour un exemple de récupération d’informations shell pour un type de fichier.