vb6.0,编了个程序,用command$接受命令行参数,以便关联的文件被双击时程序打开文件(类似
vb6.0,编了个程序,用command$接受命令行参数,以便关联的文件被双击时程序打开文件(类似于doc文件被双击时word会自动打开并读取文件),但有时接到的文件名参...
vb6.0,编了个程序,用command$接受命令行参数,以便关联的文件被双击时程序打开文件(类似于doc文件被双击时word会自动打开并读取文件),但有时接到的文件名参数有双引号(程序放桌面时),有时没有(F盘时),咋回事?
代码a=command$
有时a="c:\…………"
有时是a=""c:\…………"" 展开
代码a=command$
有时a="c:\…………"
有时是a=""c:\…………"" 展开
2个回答
展开全部
访问:help.loongzen.com/Main/WindowExtender/v1.0获取最新版本,里面有一个函数就是我写的处理Command$命令行参数的。
'拆分命令行文件列表
Public Function GetFilesByCommand(Optional SplitChar As String = vbNewLine) As String
Dim FilesList As String, ArrayFiles() As String, Index As Long
If Len(Command) = 0 Then Exit Function '命令行参数为空,无返回退出
If InStr(Command, Chr(34)) > 0 Then '有包含引号的文件路径
ArrayFiles = Split(Command, Chr(34)) '按引号分割
For Index = 0 To UBound(ArrayFiles) '因为引号必定为成对出现,而路径中不可包含引号,所以切割后的数组,奇数为引号中间内的的文件路径
If Index Mod 2 = 0 Then ArrayFiles(Index) = Replace(ArrayFiles(Index), Space(1), vbNullChar)
Next
FilesList = Join(ArrayFiles, vbNullChar) '用空字符连接数组
Do While InStr(FilesList, vbNullChar & vbNullChar) > 0
FilesList = Replace(FilesList, vbNullChar & vbNullChar, vbNullChar) '排除冗余的空字符
Loop
If Left(FilesList, 1) = vbNullChar Then FilesList = Mid(FilesList, 2) '排除字符串前后的空字符
If InStrRev(FilesList, vbNullChar) = Len(FilesList) Then FilesList = Mid(FilesList, 1, Len(FilesList) - 1)
GetFilesByCommand = Replace(FilesList, vbNullChar, SplitChar) '按 SplitChar 参数分割字符串并返回
Else
GetFilesByCommand = Replace(Command, Space(1), SplitChar) '按 SplitChar 参数分割字符串并返回
End If
End Function
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询