好吧,一个Unity应用并不常见的需求。。
两个步骤
1.关联注册表
2.把自定义后缀文件作为启动参数传给Unity做处理
1.关联注册表 (.XXXX是自定义后缀)
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USERSoftwareClasses.XXXX] //首先为希望注册的扩展名,新建一个Key
[HKEY_CURRENT_USERSoftwareClasses.XXXXshell] //然后再新建一个shell的Key
[HKEY_CURRENT_USERSoftwareClasses.XXXXshellopen] //然后再新建一个open的Key(open对应了打开操作)
[HKEY_CURRENT_USERSoftwareClasses.XXXXshellopencommand] //然后再新建一个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_USERSoftwareClasses.XXXXshellopencommand", "", str+" %1"); } } }
感谢:https://www.cnblogs.com/chenxizhang/p/3256692.html
2.获取启动参数,数组里第二个参数是启动传入参数
string[] CommandLineArgs = Environment.GetCommandLineArgs(); string arg = CommandLineArgs[1];