自定义文件类型以及参数传递的实现(VB.NET) 作者:wgscd 请尊重著作权
网上很多人问关于自定义文件类型以及参数传递的问题,在.NET里 自定义文件类型很好实现,一个简单的方法就是在VS的安装发布向导---打包 里自定义文件类型,这个就不用说了,你简单设置一下就OK了(不要说你不会哦!) 接下来就是个参数传递的问题使许多人烦恼了(我就被烦过)。 话不多说,如下 在VB6.0里要获取打开程序的参数可以使用command()。 具体例子: Function GetCommandLine(Optional MaxArgs) ′声明变量。 Dim C, CmdLine, CmdLnLen, InArg, I, NumArgs ′检查是否提供了 MaxArgs 参数。 If IsMissing(MaxArgs) Then MaxArgs = 10 ′ 使数组的大小合适。 ReDim ArgArray(MaxArgs) NumArgs = 0: InArg = False ′取得命令行参数。 CmdLine = Command() CmdLnLen = Len(CmdLine) ′以一次一个字符的方式取出命令行参数。 For I = 1 To CmdLnLen C = Mid(CmdLine, I, 1) ′检测是否为 space 或 tab。 If (C <> ″ ″ And C <> vbTab) Then ′若既不是 space 键,也不是 tab 键,则检测是否为参数内含之字符。 If Not InArg Then ′新的参数。检测参数是否过多。 If NumArgs = MaxArgs Then Exit For NumArgs = NumArgs + 1 InArg = True End If ′将字符加到当前参数中。 ArgArray(NumArgs) = ArgArray(NumArgs) + C Else ′找到 space 或 tab。将 InArg 标志设置成 False。 InArg = False End If Next I ReDim Preserve ArgArray(NumArgs) ′调整数组大小使其刚好符合参数个数。 GetCommandLine = ArgArray() ′将数组返回。 End Function
---------------------------------------------------
在VB.NET里呢?其实差不多,只不过要用System.Environment.GetCommandLineArgs。
具体例子:
Sub main1() ''''检测传进来的参数
Dim cmds As String() cmds = System.Environment.GetCommandLineArgs
If cmds.Length > 0 Then Dim i As Integer For i = 0 To cmds.Length - 1
If cmds(i).ToString Like "*.abc" Then ''''其中abc为你自定义文件的扩展名 cmd = cmds(i).ToString iscaseurl = True
End If Next
End If End Sub
dim cmd as string="" ''''用来保存传入的参数 dim iscaseurl as Boolean= False''''判断是否是你需要的参数
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
main1() ''''检测参数
If iscaseurl = False Then''''不是你需要的参数
''''do your 。。。。。。。。。。。。。
Else''''是需要处理的参数
''''这里添加处理的代码,cmd 就是你要的参数
msgbox("这里添加处理的代码,cmd 就是你要的参数")
iscaseurl = False
End If
Catch ex As Exception
MsgBox("erro")
End Try
End Sub
当然如果你需要的话可以在 InitializeComponent() 调用之后调用main1() 来检测和保存打开程序传进来的参数。
没有相关教程
|