通过自定义程序VB打开自定义文件

时间:2016-09-14 09:46:55

标签: vb.net

如何制作文件(例如.jkl扩展名),当您打开它时,系统会弹出您的自定义程序。

例如:
我有一个test.jkl档案 如果我双击它,我的程序将是读它的人 就像.jpg文件扩展名一样,双击文件时,会弹出绘画并显示图像。

更改文件ext时的代码很简单

File.Copy(origFile, origFile.Replace("txt", "jkl")
File.Delete(origFile)

所以现在我有一个.jkl文件,现在我需要做的是当用户双击.jkl文件时,该程序将自动打开,询问保存位置,并更改它返回.txt到用户想要的路径。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

将表单加载事件。它会一次又一次地写。它不会破坏你的电脑。如果你想更仔细。读取注册表检查它是否存在然后再次跳过写入。

代码:

My.Computer.Registry.ClassesRoot.CreateSubKey(".jkl").SetValue_
    ("", "jkl", Microsoft.Win32.RegistryValueKind.String)
My.Computer.Registry.ClassesRoot.CreateSubKey_
    ("jkl\shell\open\command").SetValue("", Application.ExecutablePath & _
    " ""%l"" ", Microsoft.Win32.RegistryValueKind.String)

演示项目的链接:http://www.codeproject.com/Articles/18594/File-Association-in-VB-NET

答案 1 :(得分:0)

我不认为代码是必需的。将文件保存为.jkl后,右键单击该文件并选择"打开" - > "选择默认程序" - >然后浏览到您编写的exe文件以将文件另存为.txt文件。 如果打开选项不可用,请双击该文件并选择选项以选择默认程序。现在浏览你的exe。

命令行参数args [0]是文件全名。

我尝试使用C#代码可以用VB代码完成。

Private Shared Sub Main(args As String())
    Console.WriteLine("0: " + args(0))
    'Code to rename the file
    Console.WriteLine("Done. Press enter")
    Console.ReadKey()
End Sub

使用在线转换器的VB代码

{{1}}