2011-12-19 79 views
0

我想擴展sdf數據庫文件的上下文菜單。 我的電流源註冊表 - .sdf文件的ContextMenu擴展

public static void Create() 
    { 
     string keyName = ".sdf"; 
     string contextName = "Das ist ein SDF Test"; 
     string exe = @"C:\Users\........exe"; 

     bool isWritable = true; 

     try 
     { 
      RegistryKey classesRoot = Registry.ClassesRoot; 
      RegistryKey parentKey = classesRoot.OpenSubKey(keyName, isWritable); 

      parentKey.CreateSubKey("shell"); 

      RegistryKey shell = parentKey.OpenSubKey("shell", isWritable); 
      RegistryKey context = shell.CreateSubKey(contextName); 
      RegistryKey command = context.CreateSubKey("command"); 
      command.SetValue("", exe); 
      classesRoot.Flush(); 
      classesRoot.Close(); 
     } 
     catch (Exception) 
     { 
      throw; 
     } 
    } 

現在,當我打開的ContextMenu任何反應...... 什麼不順心?

+0

我需要類似的東西,並不真正瞭解如何解決下面的問題。你能提供工作功能嗎?非常感謝 – Jerome 2012-02-13 13:08:00

回答

1

根據你所說的,上下文菜單打開但沒有任何反應,對吧?

如果是這種情況,它看起來像你需要將.sdf文件的完整路徑傳遞到你的exe的命令行。

所以更新您的EXE字符串變量是這樣的:

string exe = @"\"C:\Users\........exe\" \"%1\""; 

將在完整路徑SDF到你的EXE通過。

UPDATE:

再次研究後,你實際上需要閱讀HKCR .sdk的(默認)值。在我的機器上它是「Microsoft SQL Server精簡版數據庫文件」。所以你需要在HKCR正下方創建一個新的子項,並將你的shell和命令子項放在那裏。查看.txt.doc查看示例。

+0

我沒有看到menuItem「Das ist ein SDF Test」。是否有權在文件擴展名.sdf下創建shell密鑰? – Gepro 2011-12-19 22:15:10

+0

實際上不是,我更新以顯示要做什麼。 – 2011-12-20 13:20:27

+0

是的,就是這樣!它工作正常,thx。 – Gepro 2011-12-21 18:19:44