Richard Morgan
Richard Morgan

Reputation: 7691

Launch a file with command line arguments without knowing location of exe?

Here's the situation: I am trying to launch an application, but the location of the .exe isn't known to me. Now, if the file extension is registered (in Windows), I can do something like:

Process.Start("Sample.xls");

However, I need to pass some command line arguments as well. I couldn't get this to work

   Process p = new Process();
   p.StartInfo.FileName = "Sample.xls";
   p.StartInfo.Arguments = "/r";  // open in read-only mode
   p.Start();

Any suggestions on a mechanism to solve this?

Edit @ aku

My StackOverflow search skills are weak; I did not find that post. Though I generally dislike peering into the registry, that's a great solution. Thanks!

Upvotes: 5

Views: 1265

Answers (2)

aku
aku

Reputation: 123994

Using my code from this answer you can get command associated with xls extension. Then you can pass this command to Process.Start method.

Upvotes: 4

Palgar
Palgar

Reputation: 176

If you query the registry, you can retrieve the data about the registered file type and then call the app directly passing the command line arguments. See Programmatically Checking and Setting File Types for an example of retrieving shell information for a file type.

Upvotes: 2

Related Questions