好吧,一个Unity应用并不常见的需求。。
两个步骤
1.关联注册表
2.把自定义后缀文件作为启动参数传给Unity做处理
1.关联注册表 (.XXXX是自定义后缀)
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Classes\.XXXX] //首先为希望注册的扩展名,新建一个Key
[HKEY_CURRENT_USER\Software\Classes\.XXXX\shell] //然后再新建一个shell的Key
[HKEY_CURRENT_USER\Software\Classes\.XXXX\shell\open] //然后再新建一个open的Key(open对应了打开操作)
[HKEY_CURRENT_USER\Software\Classes\.XXXX\shell\open\command] //然后再新建一个command的Key
@="D:\\XX\\XXX.exe %1" //为command这个Key默认设置为你的自定义应用程序,其中的%1是一个占位符,表示当前的文件路径。
通过代码修改:
using Microsoft.Win32; namespace ConsoleApplication1 { class Program { static void Main(string[] args) {
string str = this.GetType().Assembly.Location;//通过这个方法获取当前exe的路径 Registry.SetValue(@"HKEY_CURRENT_USER\Software\Classes\.XXXX\shell\open\command", "", str+" %1"); } } }
感谢:https://www.cnblogs.com/chenxizhang/p/3256692.html
2.获取启动参数,数组里第二个参数是启动传入参数
string[] CommandLineArgs = Environment.GetCommandLineArgs(); string arg = CommandLineArgs[1];