从浏览器打开文件时是否使用命令行?

时间:2014-10-14 22:13:04

标签: internet-explorer browser command-line vb6

当我使用Internet Explorer(或任何其他浏览器)并尝试下载文件时,我可以获得一个小菜单,询问我是否愿意打开或保存"文件。如果我点击"打开,"什么命令行运行,有没有办法在VB6应用程序中查看或捕获该命令行提示符?

例如,Internet Explorer会询问我是否要打开或保存.abc文件。我点击打开。我想要MyProject1.exe(用VB6编写)来读取用于打开该.abc文件的命令行。 (假设MyProject1.exe和.abc扩展名之间已经存在文件关联)

这可能吗?

2 个答案:

答案 0 :(得分:0)

这不是一个简单的主题。

服务器说它是什么,然后是它的扩展,然后它的模式匹配以找出它是什么。在本地文件上,它是扩展名,然后是模式匹配。

有多种方法可以打开文件。命令行是最常见的,但有更新的方法使用COM。如果同时使用指定的COM。

如果您只是想知道打开文件的可能是什么。

assoc .txt

然后说什么呢

ftype txtfile

EG

C:\Users\User>assoc .txt
.txt=txtfile

C:\Users\User>ftype txtfile
txtfile=c:\windows\system32\notepad.exe "%1"

%1将替换为相关文件名。

答案 1 :(得分:0)

您可以通过Command()函数

读取命令行参数

尝试以下测试项目:

'1 project with:
'  0 forms
'  1 module
'  Startup Object in Project properties should be set to Sub Main
Option Explicit

Public Sub Main()
  Dim intArg As Integer
  Dim strCmd As String
  Dim strArg() As String
  Dim strShow As String
  'read the command line
  strCmd = Command
  If Len(strCmd) > 0 Then
    'split the command line over its arguments
    strArg = Split(strCmd, " ")
    'show the commandline arguments
    strShow = CStr(UBound(strArg) + 1) & " command line arguments :"
    For intArg = 0 To UBound(strArg)
      strShow = strShow & vbCrLf & "Argument " & CStr(intArg) & " : " & strArg(intArg)
    Next intArg
    MsgBox strShow
  Else
    MsgBox "No command line arguments"
  End If
End Sub

将此项目编译为exe并使用各种命令行参数调用它

在没有任何命令行参数的情况下调用.exe时,它将显示一个带有文本"没有命令行参数的消息框"

当您使用某些命令行参数调用.exe时,它将显示一个消息框,告诉您有多少参数,以及它们是什么

现在从webbrowser打开一个文件时选择这个exe,看看它的参数