欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#設(shè)置自定義文件圖標(biāo)實(shí)現(xiàn)雙擊啟動(修改注冊表)

 更新時間:2016年08月29日 15:48:55   投稿:daisy  
這篇文章介紹的是利用C#設(shè)置自定義文件圖標(biāo),然后實(shí)現(xiàn)雙擊啟動的功能,文章給出了示例代碼,介紹的很詳細(xì),有需要的可以參考借鑒。

程序生成的自定義文件,比如后綴是.test

這種文件怎么直接啟動打開程序,并打開本文件呢

     1、雙擊打開

     2、自定義的文件,有圖標(biāo)顯示

     3、自定義的文件,點(diǎn)擊右鍵有相應(yīng)的屬性

后臺代碼:(如何在注冊表中修改信息)

  //工具啟動路徑
  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);
  //設(shè)置默認(rèn)圖標(biāo)
  Microsoft.Win32.RegistryKey iconKey = registryKey.CreateSubKey("DefaultIcon");
  iconKey.SetValue("", System.Windows.Forms.Application.StartupPath + "\\logo.ico");
  //設(shè)置默認(rèn)打開程序路徑
  registryKey = registryKey.CreateSubKey("shell\\open\\command");
  registryKey.SetValue("", toolPath + " %1");
  //關(guān)閉
  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 是否有值,如果有,則獲取路徑下的文件,繼續(xù)操作。

以上就是小編為大家整理的C#設(shè)置自定義文件圖標(biāo)實(shí)現(xiàn)雙擊啟動的全部內(nèi)容,希望這篇文章的內(nèi)容對大家的學(xué)習(xí)或者工作能有一定的幫助,如果有疑問可以留言交流。

相關(guān)文章

  • 詳解C#借助.NET框架中的XmlTextReader類讀取XML的方法

    詳解C#借助.NET框架中的XmlTextReader類讀取XML的方法

    這篇文章主要介紹了詳解借助.NET框架中的XmlTextReader類讀取XML的方法,這種方式的執(zhí)行效率還是比較令人滿意的,需要的朋友可以參考下
    2016-04-04
  • List轉(zhuǎn)換成DataSet實(shí)現(xiàn)代碼

    List轉(zhuǎn)換成DataSet實(shí)現(xiàn)代碼

    怎樣把List轉(zhuǎn)換成DataSet本人很是疑惑,于是搜集整理一番,需要的朋友可以參考下
    2012-12-12
  • 基于Unity Line Renderer組件的常用屬性說明

    基于Unity Line Renderer組件的常用屬性說明

    這篇文章主要介紹了基于Unity Line Renderer組件的常用屬性說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • C#寫入XML文檔

    C#寫入XML文檔

    這篇文章介紹了C#寫入XML文檔的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • C#中的timer與線程使用

    C#中的timer與線程使用

    這篇文章主要介紹了C#中的timer與線程使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Unity編輯器選擇器工具類Selection常用函數(shù)示例詳解

    Unity編輯器選擇器工具類Selection常用函數(shù)示例詳解

    這篇文章主要為大家介紹了Unity編輯器選擇器工具類Selection常用函數(shù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • C# SQLite執(zhí)行效率的優(yōu)化教程

    C# SQLite執(zhí)行效率的優(yōu)化教程

    這篇文章主要給大家介紹了關(guān)于C# SQLite執(zhí)行效率優(yōu)化的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用C# SQLite具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-06-06
  • C# 使用 log4net 日志組件的方法

    C# 使用 log4net 日志組件的方法

    這篇文章主要介紹了C# 使用 log4net 日志組件的方法,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2020-12-12
  • C#實(shí)現(xiàn)利用反射簡化給類字段賦值的方法

    C#實(shí)現(xiàn)利用反射簡化給類字段賦值的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)利用反射簡化給類字段賦值的方法,涉及C#操作反射的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • C#生成帶注釋的dll并引用實(shí)現(xiàn)

    C#生成帶注釋的dll并引用實(shí)現(xiàn)

    本文主要介紹了C#生成帶注釋的dll并引用實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04

最新評論