From the MSDN documentation: http://msdn.microsoft.com/en-us/library/h6ak8zt5.aspx
// Opens urls and .html documents using Internet Explorer. void OpenWithArguments() { // url are not considered documents. They can only be opened // by passing them as arguments. Process.Start("IExplore.exe", "www.northwindtraders.com"); // Start a Web page using a browser associated with .html and .asp files. Process.Start("IExplore.exe", "C:\\myPath\\myFile.htm"); Process.Start("IExplore.exe", "C:\\myPath\\myFile.asp"); }
Edit: AaronLS clarified a bit what you are trying to accomplish. to pass multiple arguments
Process myProcess = new Process(); string arg = String.Format("{0} {1}{2}{1} {1}{3}{1}", dr["rec"], '"',htmlVar); myProcess.StartInfo.FileName = @"E:\Program Files\MyApp.exe"; myProcess.StartInfo.Arguments = ArgvToCommandLine(new string[] { arg }); myProcess.Start();
The following methods were taken for the ProcessStartInfo arguments on the MSDN page: http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.arguments.aspx
public static string ArgvToCommandLine(IEnumerable<string> args) { StringBuilder sb = new StringBuilder(); foreach (string s in args) { sb.Append('"'); // Escape double quotes (") and backslashes (\). int searchIndex = 0; while (true) { // Put this test first to support zero length strings. if (searchIndex >= s.Length) { break; } int quoteIndex = s.IndexOf('"', searchIndex); if (quoteIndex < 0) { break; } sb.Append(s, searchIndex, quoteIndex - searchIndex); EscapeBackslashes(sb, s, quoteIndex - 1); sb.Append('\\'); sb.Append('"'); searchIndex = quoteIndex + 1; } sb.Append(s, searchIndex, s.Length - searchIndex); EscapeBackslashes(sb, s, s.Length - 1); sb.Append(@""" "); } return sb.ToString(0, Math.Max(0, sb.Length - 1)); } private static void EscapeBackslashes(StringBuilder sb, string s, int lastSearchIndex) { // Backslashes must be escaped if and only if they precede a double quote. for (int i = lastSearchIndex; i >= 0; i--) { if (s[i] != '\\') { break; } sb.Append('\\'); } }
This is not the most effective solution to your problem, but I just copied the code so that you can see how to correctly avoid the characters that may be present in your htmlvars variable.
source share