我的客户正在某些工作站中用OpenOffice替换MS Office.我的程序使用.xml扩展名(使用开放格式)将文件导出到Excel,并使用当前关联的程序打开它(使用ShellExecute)
问题是OpenOffice没有注册与之关联的.xml扩展名.
手动关联工作正常,但我想制作一个.reg或其他东西来轻松更改设置.
我正在PC中查看已经进行了更改的注册表,但是
"HKEY_CLASSES_ROOT\.xml"
Run Code Online (Sandbox Code Playgroud)
key没有引用OpenOffice的任何内容.
协会存储在哪里?如何制作脚本来完成工作?
我有几个相关的问题:
1)是否可以使我的程序更改文件类型关联,但仅在运行时?你觉得这个行为有什么问题吗?
2)我看到的另一个选项是让用户决定使用我的应用程序打开或恢复默认关联...类似于:"捕获所有.lala文件"或"恢复.lala关联".我怎样才能做到这一点?你认为这是最好的方法是什么?
我用C#写了一个文字处理器.当用户右键单击文件并选择"打开方式"并选择我的程序时,我想允许我的程序打开文件.如何在程序中实现这样的功能?目前,用户打开文件的唯一方法是使用OpenFileDialog.
截至目前,如果用户选择"打开方式"并选择我的程序,它不会打开他们选择的文件.
实现此功能的最佳方法是什么?
可能重复:
C#Windows'打开方式>'上下文菜单行为
我该怎么做呢?就像我右键单击一个文件并单击打开一样,然后我的程序如何对该文件执行操作:/.
我正在按照本教程关于如何允许我的程序使用Windows中的"打开方式"方法打开文件.但是,一旦程序加载,它就会以错误"IndexOutOfRangeException"崩溃.
我的代码如下.
public static void Main(string[] args)
{
if(args[0] != null)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Basic_Word_Processor());
Basic_Word_Processor.Instance.richTextBoxPrintCtrl1.LoadFile(@args.ToString());
}
else
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Basic_Word_Processor());
}
Run Code Online (Sandbox Code Playgroud)
导致此异常的原因是什么?