2013-10-12 40 views
0

我在vb.net中构建了一个可以在其中绘制的软件,并将您的图形保存在 a .GFrame文件中。制作我自己的文件扩展名(该开始是我的程序)

我的软件工作很好,它保存文件并成功打开文件。

但我有一个问题,我希望当我尝试打开.GFrame文件时,它会自动打开我的软件并加载该文件 。

例如:

如果你试图打开一个文件.btm的它会自动打开“画图”程序和文件加载到屏幕上。

那么我怎么能在我的软件中做同样的事情呢?

+1

[这有帮助吗?](http://social.msdn.microsoft.com/Forums/vstudio/en-US/d89af73d-3ad7-485a-b6c4-94dadf13659e/how-do-i-associate-a-文件扩展名与我的应用程序?论坛= vbgeneral) – TEK

+0

它帮助了我一下,但我仍然不知道如何获取已打开的文件名。我需要该软件的文件名,以知道软件将从哪个文件加载(数据)。 –

+2

您需要创建一个[文件关联](http://technet.microsoft.com/en-us/library/cc749986.aspx)。这是由安装程序完成的,任何安装程序创建实用程序都支持这一点。您可以从命令行Environment.CommandLine或Sub Main()参数获取文件名。 –

回答

3

有3个步骤:

1 - 正如上面提到的,你需要更新你的程序来处理传递给它的命令行parm;命令行parm当然是您希望程序处理的文件名(包括其扩展名)。

2 - 此外,如上所述,您需要将此内置到您的安装文件中。 这里是我是如何做到的,使用创新安装(免费),具有扩展名结尾的皮肤文件(.ar4w),我有我的计划(A标尺适用于Windows)相关联:

[注册]

根:HKCR; SubKey:.ar4w; ValueType:string; ValueData:窗口皮肤的标尺;标志:uninsdeletekey;语言:;任务:Associate_ar4w_files

Root:HKCR; SubKey:窗口外观的标尺; ValueType:string; ValueData:窗口皮肤的标尺;标志:uninsdeletekey;任务:Associate_ar4w_files

Root:HKCR; SubKey:窗口皮肤的标尺\ Shell \ Open \ Command; ValueType:string; ValueData:“”“{app} \ aruler.exe”“”“%1”“”;标志:uninsdeletevalue;任务:Associate_ar4w_files

Root:HKCR;子项:窗口皮肤的标尺\ DefaultIcon; ValueType:string; ValueData:{app} \ arulerlowres.ico,0;标志:uninsdeletevalue;任务:Associate_ar4w_files代码在这里

3 - 上面没有提到,如果你想从你的网站打开这些文件,你必须添加一行到你的.htaccess文件,以及 - 这里是我使用的一个:

AddType应用程序/ x-arulerforwindows ar4w

希望这有助于。

3

这里,子主要方法......另一种是当你的应用程序有MainForm的开始非常相似:

Public Sub Main(ByVal args() As String) 

    ' multiple files might be passed, decide whether to work with them all: 
     For n As Integer = 0 To args.Length - 1 
      ' do something 
     Next 

     ' or just the first one: 
     mFileName = args(0) 
    End Sub 
相关问题