使用Open With打开图片框中的图片

时间:2016-08-04 17:07:11

标签: c# windows image winforms picturebox

我正在使用WinForms。我正在尝试制作一个简单的图像查看器。在我的表格中,我有一个PictureBox。我希望能够右键单击计算机中的任何图片,单击“打开方式”,从列表中单击我的应用程序,图片将在我的应用程序中打开。

    [DllImport("Shell32.dll", CharSet = CharSet.Auto, SetLastError = true)]
    public static extern void SHChangeNotify(uint wEventId, uint uFlags, IntPtr dwItem1, IntPtr dwItem2);

    public Form1()
    {
        InitializeComponent();
    }

    public static bool IsAssociated()
    {
        return (Registry.CurrentUser.OpenSubKey("Software\\Classes\\.tif", false) == null);
    }

    public static void Associate()
    {
        RegistryKey FileReg = Registry.CurrentUser.CreateSubKey("Software\\Classes\\.tif");
        RegistryKey AppReg = Registry.CurrentUser.CreateSubKey("Software\\Classes\\Application\\How_To_Open_File_With_Associated_Applicaiton.exe");
        RegistryKey AppAssoc = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\.tif");

        FileReg.CreateSubKey("DefaultIcon").SetValue("", "C:\\Users\\Timmy\\Pictures\\Icons_Folder\\I-View-Icon_V2.ico");//Path to icon
        FileReg.CreateSubKey("PerceivedType").SetValue("", "image"); //Something that the file holds. 

        AppReg.CreateSubKey("shell\\open\\command").SetValue("", "\"" + Application.ExecutablePath + "\" %");
        AppReg.CreateSubKey("shell\\edit\\command").SetValue("", "\"" + Application.ExecutablePath + "\" %");
        AppReg.CreateSubKey("DefaultIcon").SetValue("", "C:\\Users\\Timmy\\Pictures\\Icons_Folder\\I-View-Icon_V2.ico");

        AppAssoc.CreateSubKey("UserChoice").SetValue("Progid", "Application\\How_To_Open_File_With_Associated_Applicaiton.exe");
        SHChangeNotify(0x08000000 , 0x0000, IntPtr.Zero, IntPtr.Zero); 

    }

示例: 下面我打开油漆图片进行演示。

目标: 能够在我的应用程序中将.tif图像打开到我的picturebox

参考
这些是我在网上研究的一些例子,试图完成我正在尝试的任务,但是我发现我的自我陷入了如何告诉程序,“现在拍下这张.tif图像并将其打开在图片框中:“

Associate File Extension with Application

https://www.youtube.com/watch?v=XtYobuVvcFE

http://www.codeproject.com/Articles/43675/C-FileAssociation-Class


enter image description here

1 个答案:

答案 0 :(得分:0)

您需要将可执行文件注册为该文件类型/扩展名的处理程序。

https://msdn.microsoft.com/en-us/library/windows/desktop/hh127451(v=vs.85).aspx