微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 使用System.Diagnostics.Process.Start运行程序会导致应用程序错误

在我的电脑上打开DWG文件

"C:\Program Files\AutoCAD LT 2007\acadlt.exe" "%1"

如果我从命令行运行它:

"C:\Program Files\AutoCAD LT 2007\acadlt.exe" "C:\Some Path\Test.dwg"

AutoCAD Lite打开DWG文件.

类似地,如果我打开命令提示符并使用参数运行相同的exe,它可以正常工作.

但是,如果我使用

var proc = new System.Diagnostics.Process();
var info = new System.Diagnostics.processstartinfo();

然后

info.FileName = "C:\Some Path\Test.dwg";
proc.StartInfo = info;
proc.Start();

要么

info.FileName = "C:\Program Files\AutoCAD LT 2007\acadlt.exe";
info.Arguments= "C:\Some Path\Test.dwg"
proc.StartInfo = info;
proc.Start();

要么

info.FileName = "cmd.exe";
info.Arguments= "C:\Program Files\AutoCAD LT 2007\acadlt.exe" "C:\Some Path\Test.dwg"
proc.StartInfo = info;
proc.Start();

我收到以下错误

acadlt.exe – 应用程序错误

“0x01317c8c”处的指令引用“0x01317c8c”处的存储器.内存无法“读取”.

单击“确定”以终止该程序
单击CANCEL以调试程序

确定取消

顺便提一下,如果我使用调试器逐步执行代码,代码就可以了.

有谁知道如何使用Process.Start打开这个DWG?

解决方法

确保指定了正确的工作文件夹:

info.WorkingDirectory = "same path as current directory in cmd.exe";

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐