我的程序有两个不同的主要功能。 默认情况下 - 使用.appref-ms(桌面快捷方式)打开程序本身会以正常模式打开程序。
我还创建了.TRA扩展名。使用我的程序打开.TRA文件时,它应该以辅助模式打开程序。 我可以看到我的程序已经注册了.tra扩展名,图标都已更改。 如果我将带有.TRA扩展名的文件拖到调试箱中的.exe文件上,它将在第二种模式下按预期打开。但是,只需双击.TRA文件,它仍然以默认模式打开。
代码设置为查看为.TRA扩展名传递的所有命令行:
For i = 0 To System.Environment.GetCommandLineArgs.Length
Dim _file = System.Environment.GetCommandLineArgs(i)
Dim format As String = IO.Path.GetExtension(_file)
If format = ".TRA" Then
file = System.Environment.GetCommandLineArgs(i)
openedwithext = True
Exit For
End If
Next i
我错过了什么? 双击我的.TRA文件没有向我的应用程序发送命令行参数,因为我认为它呢? 怎么可以这样做?
提前致谢。
答案 0 :(得分:0)
因为.appref-ms的工作方式类似于快捷方式,所以命令行参数的使用方式不同。 我通过添加System.Deployment命名空间并在.loaded事件上使用以下代码解决了问题。
'Are we launching as a click-once?
If (IsNetworkDeployed) Then
Try
Dim urifile As New Uri(AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData(0))
Dim uristring As String = urifile.ToString
If uristring.Contains(".TRA") Then
file = uristring.Substring(8) 'Substring removes the - file:///
openedwithext = True
End If
Catch ex As Exception
End Try
End If