C# 自訂檔案表徵圖 雙擊啟動 (修改註冊表)

來源:互聯網
上載者:User

標籤:

程式產生的自訂檔案,比如尾碼是.test

這種檔案怎麼直接啟動開啟程式,並開啟本檔案呢

1、雙擊開啟

2、自訂的檔案,有表徵圖顯示

3、自訂的檔案,點擊右鍵有相應的屬性

後台代碼:(如何在註冊表中修改資訊)

    //工具啟動路徑    string toolPath = System.Windows.Forms.Application.StartupPath + "\\郵件小工具.exe";    string extension = SptdConst.FileExtension;    string fileType = "Email File";    string fileContent = "text/plain";    //擷取資訊    Microsoft.Win32.RegistryKey registryKey = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(extension);    if (registryKey != null && registryKey.OpenSubKey("shell") != null && registryKey.OpenSubKey("shell").OpenSubKey("open") != null &&        registryKey.OpenSubKey("shell").OpenSubKey("open").OpenSubKey("command") != null)    {        var varSub = registryKey.OpenSubKey("shell").OpenSubKey("open").OpenSubKey("command");        var varValue = varSub.GetValue("");        if (Object.Equals(varValue, toolPath + " %1"))        {            return;        }    }    //刪除    Microsoft.Win32.Registry.ClassesRoot.DeleteSubKeyTree(extension, false);    //檔案註冊    registryKey = Microsoft.Win32.Registry.ClassesRoot.CreateSubKey(extension);    registryKey.SetValue("檔案類型", fileType);    registryKey.SetValue("Content Type", fileContent);    //設定預設表徵圖    Microsoft.Win32.RegistryKey iconKey = registryKey.CreateSubKey("DefaultIcon");    iconKey.SetValue("", System.Windows.Forms.Application.StartupPath + "\\logo.ico");    //設定預設開啟程式路徑    registryKey = registryKey.CreateSubKey("shell\\open\\command");    registryKey.SetValue("", toolPath + " %1");    //關閉    registryKey.Close();

 

在修改了註冊表資訊後,雙擊檔案是啟動了軟體,之後怎麼在代碼中操作?

//雙擊啟動開啟 //如果原有路徑中存在空格,則會分解成多個元素if (e.Args.Length > 0){      string filePath = String.Join(" ", e.Args.ToArray());      FileInfo file = new FileInfo(filePath);      if (file.Exists)       {           EmailToolConst.DoubleClickSptdFilePath = file.FullName;       }  }

然後可以在主程式loaded方法中,判斷DoubleClickSptdFilePath 是否有值,如果有,則擷取路徑下的檔案,繼續操作。

C# 自訂檔案表徵圖 雙擊啟動 (修改註冊表)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.