none
c#如何指定某类型文件的默认打开方式只能用某软件打开以及设置某类型文件的默认图标?

    问题

  • c#指定某类型文件的默认打开方式只能用某软件打开以及设置某类型文件的默认图标?虽然可以在桌面上手动设置文件默认打开方式,但是我还是想在我编写的应用程序被安装后,自动修改某格式文件的默认打开方式。另外怎么设置某格式文件的默认文件图标?

    比如说用c#代码令扩展名为doc类型的文件指定用某个软件打开,指定doc类型的文件的默认图标,要如何做到?


    2016年11月15日 9:50

答案

  • Hi 轮回的齿轮,

    win8之前你可以尝试修改shell来修改文件默认的打开方式.

    1.       首先你需要找出文件的类型.

    var imgKey = Registry.ClassesRoot.OpenSubKey(".jpg")

    var imgType = key.GetValue("");

     

    2.       然后找出可执行文件的路径,修改command 字符串

    String myExecutable = Assembly.GetEntryAssembly().Location;

    String command = "\"" + myExecutable + "\"" + " \"%1\"";

     

    3.       然后注册你的可执行文件.

    String keyName = imgType + @"\shell\Open\command";

    using (var key = Registry.ClassesRoot.CreateSubKey(keyName)) {

        key.SetValue("", command);

    }

    希望这些能帮助到你.

    Best Regards,

    Hart


    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2016年11月17日 1:29
    版主