process.start启动exe,程序中会调用配置文件的路径是相对路径,产生启动错误,怎么办?

 我来答
牛永安0HQ
2018-02-24 · 知道合伙人互联网行家
牛永安0HQ
知道合伙人互联网行家
采纳数:1224 获赞数:3261
启明教育老师

向TA提问 私信TA
展开全部
  比如打开文件对话框等操作会改变系统的当前路径,当前路径就是使用函数GetCurrentDirectory获得的路径

  由于当前路径可能已经改变了,不再是你文件所在的路径,在使用相对路径,就找不到文件了,就失败了
  比如你的文件在d:\word.doc,如果当前路径是d:\,那么使用相对路径打开"word.doc"是可以成功的
  但是如果当前路径被更改了,比如当前是c:\或者e:\123,那么使用相对路径"word.doc"的话,系统会试着打开在c:\word.doc或者e:\123\word.doc
而你的文件实际存放在d:\word.doc,所以打开就失败了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱吃猫的__鱼__
高粉答主

2018-05-29 · 醉心答题,欢迎关注
知道小有建树答主
回答量:238
采纳率:98%
帮助的人:22.5万
展开全部

首先我们得有一个被调用的程序,新建一个简单的WPF程序,命名为:argTest。里面加一个label,用来显示接收到的参数。

新建一个WPF程序用来启动我们的argTest.exe程序,命名为call。添加窗体load事件,在load里调用Process.Start()方法。

运行call程序,会弹出两个窗口,当然现在我们没有传递任何参数。其实要传参数很简单,只需要调用 Process Start(string fileName, string arguments)这函数即可,难就难在怎么去接收参数。网上百度一番基本做法是修改被调用程序(argTest.exe)的入口函数:

1、 添加新建类Program

2、添加全局变量,重载MainWindow的构造函数,以便传递参数

现在直接运行  你会发现不会执行默认构造函数。  现在删除所有打印代码运行call程序就没有问题了。




已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式