发布网友 发布时间:2022-04-25 12:52
共1个回答
热心网友 时间:9分钟前
不好意思因为最近没有登录,现在才看到你的信息,不知道你解决了没有。
设置关联后一般文件路径会作为第一个命令行参数传递给程序,可以这样得到它:
My.Application.CommandLineArgs(0)
要用代码设置关联需要操作注册表。比如.xd关联到E:\SSY\Test.exe,先创建HKEY_CLASSES_ROOT\SSY\shell\open\command子键(SSY最好换成你程序的名称),将command的默认值设为“E:\SSY\Test.exe %1”(打开文件时"%1"会被换成文件路径);然后创建HKEY_CLASSES_ROOT\.xd子键(xd前面的个点),将其默认值改成SSY(上面创建的HKEY_CLASSES_ROOT下的子键名)就行了。代码可以这样(为了方便你测试我把它关联到记事本notepad.exe,你把它改成你的程序路径就行了):
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
My.Computer.Registry.ClassesRoot.CreateSubKey(".xd").SetValue(Nothing, "SSY")
My.Computer.Registry.ClassesRoot.CreateSubKey("SSY").CreateSubKey("shell").CreateSubKey("open").CreateSubKey("command").SetValue(Nothing, "notepad %1")
End Sub
注意这个操作要管理员权限,如果你开了UAC的话要“以管理员身份运行”
注册表的操作方法:http://msdn.microsoft.com/zh-cn/library/x61a1z4s(VS.100).aspx
关于命令行参数:http://msdn.microsoft.com/zh-cn/library/microsoft.visualbasic.applicationservices.consoleapplicationbase.commandlineargs.aspx?queryresult=true