將文件擴(kuò)展與應(yīng)用程序相關(guān)聯(lián)我編寫了一個(gè)編輯特定文件類型的程序,我想讓用戶在啟動(dòng)時(shí)將我的應(yīng)用程序設(shè)置為這個(gè)文件類型的默認(rèn)編輯器(因?yàn)槲也幌胍惭b程序)。我試圖通過(guò)向HKEY_CLASS_ROOT添加一個(gè)鍵來(lái)為我編寫一個(gè)可重用的方法來(lái)關(guān)聯(lián)一個(gè)文件(最好是在任何操作系統(tǒng)上,盡管我正在運(yùn)行Vista),并將其用于我的應(yīng)用程序,但它似乎不起作用。public static void SetAssociation(string Extension, string KeyName, string OpenWith, string FileDescription){
RegistryKey BaseKey;
RegistryKey OpenMethod;
RegistryKey Shell;
RegistryKey CurrentUser;
BaseKey = Registry.ClassesRoot.CreateSubKey(Extension);
BaseKey.SetValue("", KeyName);
OpenMethod = Registry.ClassesRoot.CreateSubKey(KeyName);
OpenMethod.SetValue("", FileDescription);
OpenMethod.CreateSubKey("DefaultIcon").SetValue("", "\"" + OpenWith + "\",0");
Shell = OpenMethod.CreateSubKey("Shell");
Shell.CreateSubKey("edit").CreateSubKey("command").SetValue("", "\"" + OpenWith + "\"" + " \"%1\"");
Shell.CreateSubKey("open").CreateSubKey("command").SetValue("", "\"" + OpenWith + "\"" + " \"%1\"");
BaseKey.Close();
OpenMethod.Close();
Shell.Close();
CurrentUser = Registry.CurrentUser.CreateSubKey(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\"
+ Extension);
CurrentUser = CurrentUser.OpenSubKey("UserChoice", RegistryKeyPermissionCheck.ReadWriteSubTree, System.Security.AccessControl.Regi
stryRights.FullControl);
CurrentUser.SetValue("Progid", KeyName, RegistryValueKind.String);
CurrentUser.Close();}知道為什么不行嗎?一個(gè)例子可能是SetAssociation(".ucs", "UCS_Editor_File", Application.ExecutablePath, "UCS File");方法中使用“CurrentUser”的部分,如果我使用Regedit進(jìn)行同樣的操作,它似乎也能工作,但是使用我的應(yīng)用程序卻不能。
- 3 回答
- 0 關(guān)注
- 394 瀏覽
添加回答
舉報(bào)
0/150
提交
取消