0

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

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

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

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

我知道 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" 在上面,第一组引号打开和关闭,然后直到下一组引号不被视为字符串的一部分。

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

4

2 回答 2

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");

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

于 2013-01-16T20:42:23.780 回答
-2
System.Diagnostics.Process.Start(@"C:\Program Files (x86)\Microsoft Office\Office15\OUTLOOK.EXE", @"/a C:\Users\Abu18saud.Abu18saud-PC.001\Documents\file_hml.pdf /m username@gmail.com /c ipm.note");
于 2015-09-11T08:48:50.337 回答