中易网

VB调用exe文件和直接运行该exe文件结果不一样

答案:5  悬赏:0  
解决时间 2021-03-24 16:53
在D:\work文件夹下有一个1.exe程序,该exe运行时需要调用该目录下(D:\work)下面的arj.dat文件。直接运行该exe时正常。现在我用VB调用这个exe可执行文件。VB工程放在E:\VB目录下,调用语句为:shell "D:\work",1 运行VB后,虽然这个1.exe被执行了。但是出现了“arj.dat文件不存在”。请哪位高手指导一下
最佳答案
结果不一样,主要原因应该是运行环境问题。
直接运行EXE文件时,程序会自动搜索当然目录下的资源文件(如:DLL文件,DAT文件)。
用VB调用EXE文件时,你查看一下,是否更改了EXE文件的位置和环境。

建议这样调用:

Private Sub Form_Load()
ShellExecute Me.hWnd, "Open", "D:\目录\1.exe", "", "D:\目录\", 1
End Sub
全部回答
程序运行时,有个 workingdirectory 的概念。 你的form调用别的exe时,如果exe和你的form程序,不在一个目录,那么,那个exe默认是认为你的目录是它的所在目录,这样的情况下,如果那个exe有配置文件需要读取的话,就读取不到了。 所以,在你调用那个exe时,指定好那个exe的workingdirectory为 该exe所在目录,即可解决问题。
arj.dat放到vb工程目录下 或者 1.exe中用arj.dat的绝对路径 Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long Private Sub Form_Load() ShellExecute Me.hWnd, "Open", "D:\work\1.exe", "", "D:\work\", 1 End Sub
你的那个调用语句 应该是: shell "D:\work\1.exe",1 没有指定文件名 如果不是这个问题的话,你试一下这段代码Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long ShellExecute Me.hwnd, "open", "D:\work\1.exe", "", "", SW_SHOW 这是ShellExecute API函数,这个函数可以将任何文件打开 还不行的话,你+QQ304728539,把代码,源文件,相关文件发给我,我做好了再发给你 然后不明白的地方解释一下
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long Private Sub Form_Load() ShellExecute Me.hWnd, "Open", "D:\work\1.exe", "", "D:\work\", 1 End Sub
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
西北大学软件职业技术学院到底咋样?
隆化职中上2015次运动会,100米多少秒?
吃蛋奶饼会胖嘛?脂肪只有10%
用金属擦亮膏擦Itouch的背面,出现了许多密集
襄樊到谷城做车要多长时间,汽车,的士,多少钱
急求用STC89C52RC单片机测量两点DHT11温湿度
从二道区和顺街阜丰路交汇去湖西路与开运街交
武汉哪家牛排好吃
关于对公交驾驶员十三五规划改革和指导思想的
你好,我们办公室用的利达信TK832(SD)2外线
某校学生志愿服务小组在“学雷锋”活动中购买
办理澳大利亚探亲签证需要准备哪些材料
破案电视剧有个男的叫志杰
北京有没有好心人收养被遗弃的狗狗
宝宝补钙要补多久合适呢?有的姐妹们说4个多
推荐资讯
画个淡妆一般买什么,大概多少钱可以买一套,
请问斗门汽车站去珠海港打的,要多少钱,几分
老板她妹娃娃一岁,她先结婚我送400,我结婚
想在瑞金开一家面包店,请问应该去哪进原料呢
兴业银行金卡年费
东莞石碣台达电子厂怎么样?
三星e7000怎么换电池
个人资产100万人民BI 能排名全国富翁100强吗?
合肥高新区人事局在哪?档案到底是存高新区人
在法院开庭之后认为有错误或出遗漏的地方怎么
笔记本电脑散热器的价格?
新提的车有需要去镀晶吗
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?