我正在尝试创建一个程序,该程序将使用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"
在上面,第一组引号打开和关闭然后一切,直到下一组引号不被视为字符串的一部分。
非常感谢有关这两种情况的建议。
答案 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");
关于以@字符为前缀的字符串的问题,这些字符串称为逐字字符串文字。您可以在我的代码片段中使用两个双引号,在其中一个中包含双引号。