VB调用exe文件和直接运行该exe文件结果不一样
在D:\work文件夹下有一个1.exe程序,该exe运行时需要调用该目录下(D:\work)下面的arj.dat文件。直接运行该exe时正常。现在我用VB调用这个exe...
在D:\work文件夹下有一个1.exe程序,该exe运行时需要调用该目录下(D:\work)下面的arj.dat文件。直接运行该exe时正常。现在我用VB调用这个exe可执行文件。VB工程放在E:\VB目录下,调用语句为:shell "D:\work",1 运行VB后,虽然这个1.exe被执行了。但是出现了“arj.dat文件不存在”。请哪位高手指导一下
谢谢icp9的回答。问题是1.exe是用Fortran编写的,别人提供的,用于载荷提取。我不能随便修改1.exe程序。还有arj.dat我不想放到VB目录下。这样会占用很大空间(ARJ.dat为2GB)。我发现用VB调用其他目录下的exe文件。这个exe是以VB工程所在的目录执行的。并不是在exe所在的目录。 展开
谢谢icp9的回答。问题是1.exe是用Fortran编写的,别人提供的,用于载荷提取。我不能随便修改1.exe程序。还有arj.dat我不想放到VB目录下。这样会占用很大空间(ARJ.dat为2GB)。我发现用VB调用其他目录下的exe文件。这个exe是以VB工程所在的目录执行的。并不是在exe所在的目录。 展开
推荐于2018-03-29 · 知道合伙人教育行家
关注
展开全部
结果不一样,主要原因应该是运行环境问题。
直接运行EXE文件时,程序会自动搜索当然目录下的资源文件(如:DLL文件,DAT文件)。
用VB调用EXE文件时,你查看一下,是否更改了EXE文件的位置和环境。
建议这样调用:
Private Sub Form_Load()
ShellExecute Me.hWnd, "Open", "D:\目录\1.exe", "", "D:\目录\", 1
End Sub
直接运行EXE文件时,程序会自动搜索当然目录下的资源文件(如:DLL文件,DAT文件)。
用VB调用EXE文件时,你查看一下,是否更改了EXE文件的位置和环境。
建议这样调用:
Private Sub Form_Load()
ShellExecute Me.hWnd, "Open", "D:\目录\1.exe", "", "D:\目录\", 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,把代码,源文件,相关文件发给我,我做好了再发给你
然后不明白的地方解释一下
应该是:
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,把代码,源文件,相关文件发给我,我做好了再发给你
然后不明白的地方解释一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
arj.dat放到vb工程目录下 或者 1.exe中用arj.dat的绝对路径
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
Private Sub Form_Load()
ShellExecute Me.hWnd, "Open", "D:\work\1.exe", "", "D:\work\", 1
End Sub
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询