当前离线UID52959帖子24精华0积分516魅力60阅读权限50注册时间2008-12-18
头衔:高级会员
帖子24精华0积分516威望0金钱112魅力601#字体大小:tT发表于2009-4-2209:36AM|启动cad同时加载脚本文件我把开发程序做了一个安装包,安装成功之后,启动程序,出现“找不到指定图形文件,请确认其存在”“program.scr未找到文件”。我要求系统启动的脚本文件是acad1.scr,出现这些错误之后,acad1.scr也加载不了。我在VS里调试成功,加载也正常。有没有哪位高人知道这是为什么啊?
部分代码:
stringsScriptFile=acad1.scr;
stringsparam=/b+sScriptFile;
System.Diagnostics.Process.Start(sAcadLocation,sparam);
当前离线UID87帖子50精华2积分1202魅力20阅读权限100注册时间2005-7-24
头衔:贵宾
帖子50精华2积分1202威望2金钱374魅力20
2#发表于2009-4-2201:50PM|本帖最后由雪山飞狐于2009-4-2203:04PM编辑
我的办法是在程序导入时,获取程序集的路径,不知道有没更好的办法?
假设你的文件在Bin文件目录下,而acad1.scr文件在Scr目录下
首先获取上一级目录作为静态变量保存
然后调用:
当前离线UID52959帖子24精华0积分516魅力60阅读权限50注册时间2008-12-18
头衔:高级会员
帖子24精华0积分516威望0金钱112魅力603#发表于2009-4-2209:48PM|雪山飞狐
我就是通过获取安装路径做的。只是我的启动是在main里做的。因为我一个解决方案里有很多项目,我就做了个添加了个windows,让它生成exe运行。调试的时候是完全正确,只是安装之后就出问题了。调试运行也很成功。
当前离线UID87帖子50精华2积分1202魅力20阅读权限100注册时间2005-7-24
头衔:贵宾
帖子50精华2积分1202威望2金钱374魅力20
4#发表于2009-4-2312:41PM|不太明白你的做法,用程序启动Cad?试着把scr路径名给全
当前离线UID52959帖子24精华0积分516魅力60阅读权限50注册时间2008-12-18
头衔:高级会员
帖子24精华0积分516威望0金钱112魅力605#发表于2009-4-2307:55PM|雪山飞狐
我是用程序启动cad的,脚本文件是路径全称。
[STAThread]
staticvoidMain()
{
//检测环境
if(DetectRunContext()!=true)
{
return;
}
AppWin.EnableVisualStyles();
AppWin.SetCompatibleTextRenderingDefault(false);
StartupAutoCAD();
}
publicstaticvoidStartupAutoCAD()
{
stringsScriptFile=Common.PathService.InstallPath+acad1.scr;
stringsparam=/b+sScriptFile;
System.Diagnostics.Process.Start(sAcadLocation,sparam);//sAcadLocation是通过读注册表获取acad.exe的路径
}
当前离线UID52959帖子24精华0积分516魅力60阅读权限50注册时间2008-12-18
头衔:高级会员
帖子24精华0积分516威望0金钱112魅力606#发表于2009-4-2311:12PM|雪山飞狐
呵呵,现在加载正常了。不是代码的问题,是我安装程序目录问题。谢谢你解答啊,
我还有一个问题啊,望你赐教。
PromptDistanceOptionspdisOpt=newPromptDistanceOptions(\n输入最小距离);
PromptDoubleResultptdRes=ed.GetDistance(pdisOpt);
if(ptdRes.Status!=PromptStatus.OK)
return;
PromptSelectionOptionsptSopt=newPromptSelectionOptions();
ptSopt.MessageForAdding=\n选择实体;
PromptSelectionResultptSRes=ed.GetSelection(ptSopt);
SelectionSetss;
if(ptSRes.Status!=PromptStatus.OK)
return;
像上面的类似代码,有两次命令提示和用户交互的,当运行完这个命令的时候,它会再跳到第二个交互上“选择实体”,按esc键也取消不了,我在代码里没有让它循环执行命令,知不知道这是什么原因啊?(在调试模式下,是完全正常的)
没有评论:
发表评论