如何在窗体的命令提示符中使用Outlook切换?

时间:2013-01-16 20:08:07

标签: c# string command-line outlook switch-statement

我正在尝试创建一个程序,该程序将使用Outlook开关创建一个预先填充详细信息的新Outlook消息。

如果我在命令提示符下,则以下内容将成功创建新的空白消息。

"C:\Program Files (x86)\Microsoft Office\Office14\OUTLOOK.EXE" /c ipm.note

我在这里找到了几个关于如何在c#中使用命令提示符的帖子,并尝试从c#运行相同的switch命令,但它在命令提示框中出现错误:ipm.note is not recognized as an internal or external command, operable program or batch file. < / p>

我知道ipm.note对于交换机是正确的,但显然当它在C#代码中传递时它会丢失一些东西吗?可能是逃脱角色?这是我正在使用的代码。

System.Diagnostics.Process.Start("CMD.exe", "\"C:\\Program Files (x86)\\Microsoft Office\\Office14\\OUTLOOK.EXE\" /c ipm.note");

另外关于这一点,我希望能够使用@符号,所以我不必转义每个特殊字符,但我不知道你是否可以使用它并在字符串中添加引号,例如:

string temp = @""C:\Program Files (x86)\Microsoft Office\Office14\OUTLOOK.EXE" /c ipm.note" 在上面,第一组引号打开和关闭然后一切,直到下一组引号不被视为字符串的一部分。

非常感谢有关这两种情况的建议。

1 个答案:

答案 0 :(得分:1)

您还需要将/ c开关传递给cmd.exe。试试这个:

Process.Start("cmd.exe", @"/c """"C:\Program Files (x86)\Microsoft Office\Office14\OUTLOOK.EXE"" /c ipm.note""");

然而,直接运行outlook.exe并避免很多争论问题实际上要好得多:

Process.Start(@"C:\Program Files (x86)\Microsoft Office\Office14\OUTLOOK.EXE", "/c ipm.note");

关于以@字符为前缀的字符串的问题,这些字符串称为逐字字符串文字。您可以在我的代码片段中使用两个双引号,在其中一个中包含双引号。