自定义文件类型以及参数传递的实现(VB.NET)
2024-07-10 13:00:50
供稿:网友
自定义文件类型以及参数传递的实现(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()
来检测和保存打开程序传进来的参数。
菜鸟学堂: