繁体   English   中英

如何从窗体的命令提示符中使用Outlook Switch?

[英]How to use Outlook Switch in Command Prompt from Form?

我正在尝试创建一个程序,该程序将使用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.

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

对于这两种情况的建议,我们深表感谢。

您还需要将/ 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");

关于您的以@字符为前缀的字符串的问题,这些字符串称为逐字字符串文字。 可以像我在代码片段中一样,通过将两个双引号一起使用,在其中一个中添加双引号。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM