VB如何调用指定目录下的程序打开一个文件
我想用软件调用一个程序打开某个文件,程序和文件在同一目录下比如我有个程序是a.exe,有个文件是b.kkukku文件只能用a.exe才能打开代码如下shell"app.P...
我想用软件调用一个程序打开某个文件,程序和文件在同一目录下
比如我有个程序是a.exe,有个文件是b.kku
kku文件只能用a.exe才能打开
代码如下
shell "app.Path &"\a.exe" app.path &"\b.kku"" ,vbNormalFocus
我觉得应该是这样写,因为a.exe和b.kku是在同一目录下的(因为是随时移动的,所以用app.path指定
但是老是编译错误,不知道是哪错了
1楼不行,还是错,光标指向第2个app
2楼也不行中间有空格,也能接受参数
我试了下把指定路径写进去却可以
Shell "e:\1\a.exe e:\1\b.kku", vbNormalFocus
这样可以,但是APP却不行
3楼也不行,第1,你给的Function过程提示子函数或过程未定义
第2,我照你那样把路径写进去老是提示语法错误
文件是在一个文件夹没错,都确认好了 展开
比如我有个程序是a.exe,有个文件是b.kku
kku文件只能用a.exe才能打开
代码如下
shell "app.Path &"\a.exe" app.path &"\b.kku"" ,vbNormalFocus
我觉得应该是这样写,因为a.exe和b.kku是在同一目录下的(因为是随时移动的,所以用app.path指定
但是老是编译错误,不知道是哪错了
1楼不行,还是错,光标指向第2个app
2楼也不行中间有空格,也能接受参数
我试了下把指定路径写进去却可以
Shell "e:\1\a.exe e:\1\b.kku", vbNormalFocus
这样可以,但是APP却不行
3楼也不行,第1,你给的Function过程提示子函数或过程未定义
第2,我照你那样把路径写进去老是提示语法错误
文件是在一个文件夹没错,都确认好了 展开
展开全部
第1,你的a.exe要能接受参数!
然后将要打开的文件b.kku作为a.exe的运行参数启动
你上面的语句基本上是正确的,但可能是由于书写错误:
a.exe后面要跟一个空格,整句不要包含在""中
所以应该是:
shell app.Path & "\a.exe " & app.path & "\b.kku" ,vbNormalFocus
“但是APP却不行”——说明你的当前程序和a.exe不在同文件夹下呗
然后将要打开的文件b.kku作为a.exe的运行参数启动
你上面的语句基本上是正确的,但可能是由于书写错误:
a.exe后面要跟一个空格,整句不要包含在""中
所以应该是:
shell app.Path & "\a.exe " & app.path & "\b.kku" ,vbNormalFocus
“但是APP却不行”——说明你的当前程序和a.exe不在同文件夹下呗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、你的语法错误,app.path不能在引号内
2、无法识别长文件路径,造成的错误
你需要先将路径转成短路径。
函数中的GetShortPathName需要先声明才可以
Private Declare Function GetShortPathName Lib "KERNEL32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long
shell CWJM(app.Path &"\a.exe")&" "&CWJM(app.path &"\b.kku") ,vbNormalFocus
Function CWJM(filepath)
Dim strShort As String, fname$, L&, fname2$
fname = filepath
strShort = String(LenB(fname), Chr(0))
L& = GetShortPathName(ByVal fname, ByVal strShort, ByVal Len(strShort))
fname2$ = Left(strShort, InStr(strShort, Chr(0)) - 1)
If fname2 = "" Then
CWJM = fname
Else
CWJM = fname2
End If
End Function
2、无法识别长文件路径,造成的错误
你需要先将路径转成短路径。
函数中的GetShortPathName需要先声明才可以
Private Declare Function GetShortPathName Lib "KERNEL32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long
shell CWJM(app.Path &"\a.exe")&" "&CWJM(app.path &"\b.kku") ,vbNormalFocus
Function CWJM(filepath)
Dim strShort As String, fname$, L&, fname2$
fname = filepath
strShort = String(LenB(fname), Chr(0))
L& = GetShortPathName(ByVal fname, ByVal strShort, ByVal Len(strShort))
fname2$ = Left(strShort, InStr(strShort, Chr(0)) - 1)
If fname2 = "" Then
CWJM = fname
Else
CWJM = fname2
End If
End Function
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的代码执行不了,是因为少了一个空格,再就是引号加错位置了,按照你指定的路径格式,用app。path写出来应该是这样的:
正确写法:
shell app.Path & "\a.exe " & app.path & "\b.kku" ,vbNormalFocus
正确写法:
shell app.Path & "\a.exe " & app.path & "\b.kku" ,vbNormalFocus
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
shell app.Path &"\a.exe" app.path &"\b.kku" ,vbNormalFocus
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询