Process.Start无法启动ShellExecute
之前写了一个MFC程序,放了个按钮,点按钮就调用ShellExecute打开某个程序A。现在又写了个winform程序,用Process.Start调用之前的MFC程序来...
之前写了一个MFC程序,放了个按钮,点按钮就调用ShellExecute打开某个程序A。
现在又写了个winform程序,用Process.Start调用之前的MFC程序来打开程序A。
winform可以顺利打开MFC程序,但是打开后我再点击MFC的按钮,就无法打开ShellExecute指向的程序A了。
这个肿么解决啊?
直接点击运行MFC程序,是可以通过ShellExecute打开程序A的。
用Process.Start打开MFC程序, 就打不开程序A了。
我的目的其实是想通过给定程序路径,通过winform打开该程序。
不知道除了Process.Start还有没有其它方法?
用ShellExecute也会出现上述问题。
Process p = new Process();
p.StartInfo.FileName = "你想要打开的EXE的绝对路径";
p.StartInfo.LoadUserProfile = true;
p.StartInfo.WorkingDirectory = "EXE文件所在的文件夹";
p.Start();
通过这个就成功了,主要是设置了WorkingDirectory ,因为我的MFC中用的是相对路径,之前没指定WorkingDirectory ,就导致MFC打不开指定程序。
刚才百度Hi通知我有新回答,那个回答貌似一针见血指出了我的ShellExecute是否用的相对路径。
可是我在网页上看不到你的回答啊? 展开
现在又写了个winform程序,用Process.Start调用之前的MFC程序来打开程序A。
winform可以顺利打开MFC程序,但是打开后我再点击MFC的按钮,就无法打开ShellExecute指向的程序A了。
这个肿么解决啊?
直接点击运行MFC程序,是可以通过ShellExecute打开程序A的。
用Process.Start打开MFC程序, 就打不开程序A了。
我的目的其实是想通过给定程序路径,通过winform打开该程序。
不知道除了Process.Start还有没有其它方法?
用ShellExecute也会出现上述问题。
Process p = new Process();
p.StartInfo.FileName = "你想要打开的EXE的绝对路径";
p.StartInfo.LoadUserProfile = true;
p.StartInfo.WorkingDirectory = "EXE文件所在的文件夹";
p.Start();
通过这个就成功了,主要是设置了WorkingDirectory ,因为我的MFC中用的是相对路径,之前没指定WorkingDirectory ,就导致MFC打不开指定程序。
刚才百度Hi通知我有新回答,那个回答貌似一针见血指出了我的ShellExecute是否用的相对路径。
可是我在网页上看不到你的回答啊? 展开
微测检测5.10
2023-05-10 广告
2023-05-10 广告
您好!建议咨 深圳市微测检测有限公司,已建立起十余个专业实验室,企业通过微测检测就可以获得一站式的测试与认 证解决方案;(EMC、RF、MFi、BQB、QI、USB、安全、锂电池、快充、汽车电子EMC、汽车手机互 联、语音通话质量),认证遇...
点击进入详情页
本回答由微测检测5.10提供
展开全部
Process.Start是将参数提交到Windows等Windows执行所指定的程序,完全不关.net的事。你怎么写的Process.Start?可能在Process.Start里传错参数了...
ps:不如用C#的程序代替C++的ShellExecute...
ps:不如用C#的程序代替C++的ShellExecute...
追问
System.Diagnostics.Process.Start(filePath);这个是写在winform中的,只传了MFC程序路径这个参数。
ShellExecute则是写在MFC程序中的,目的是打开最终的一个程序。
我首先要在winform中启动MFC的程序(用的Process.Start),再通过MFC的程序打开最终的一个程序(用的ShellExecute)。
MFC的程序是已存在,无法更改的,而且必须要先打开这个MFC程序,不能通过winform直接打开最终的程序。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询