測試篇 c 檔案型別關聯啟動程式

2022-04-08 13:17:37 字數 1718 閱讀 7915

我的應用場景是windows服務掛載了我的程式之後,按啟動,它就修改登錄檔...

但是,原本就是一件很簡單的事情,貌似出現了不可思議的事情....

我的許可權已經是系統級別的,因為是服務程式嘛~

我在修改登錄檔上面cad的.vlx字尾名時,想在"預設"的新增"關聯的程式",結果死都新增不上.....

最後手動刪除一次,就可以了.....

所以用**的時候主要不要在服務程式上面呼叫了噢!

**在這裡:

/// /// 使檔案型別與對應的圖示及應用程式關聯起來

///

public void registerfiletype()

登錄檔,

//那麼以下**將會有很奇怪的表現,

//你通過這裡的**無法刪除.vlx登錄檔項.

//你新增在setvalue("",relationname)預設項的在程式結束後也不會呈現,但立即getvalue("")卻可以獲取值..

//手工刪除一次,即可解決所有的問題..

//計算機\hkey_classes_root\.vlx 上面寫引用的註冊程式vlxproject

var filetypekey = registry.classesroot.createsubkey(this.extendname);

filetypekey.setvalue("", relationname);//預設位置就是""

filetypekey.setvalue("jservice", relationname);//為了保證不手工刪除,依然能處理...

"").tostring();

filetypekey.close();

//計算機\hkey_classes_root\vlxproject 註冊了乙個開啟程式,這個程式內寫開啟的資訊

registrykey relationkey = registry.classesroot.createsubkey(relationname);

relationkey.setvalue("", this.description);

registrykey iconkey = relationkey.createsubkey("defaulticon");

iconkey.setvalue("", this.iconpath.replace("\\", "/"));

registrykey shellkey = relationkey.createsubkey("shell");

registrykey openkey = shellkey.createsubkey("open");

registrykey commandkey = openkey.createsubkey("command");

commandkey.setvalue("", $"\"\" \"%1\""); // " %1"表示將被雙擊的檔案的路徑傳給目標應用程式

relationkey.close();

}

(完)

C 使檔案型別與程式關聯

要註冊 自定義檔案型別,包括檔案關聯圖示,檔案關聯應用程式等,這些操作都是通過修改登錄檔來完成.1.為便程式碼清晰,首先將註冊需要的資訊封裝到filetypereginfo類中.public class filetypereginfo public filetypereginfo string ex...

註冊檔案型別,關聯檔案

bool function registerfiletype lpctstr houzhui,lpctstr fmiaoshu,lpctstr wmiaoshu,lpctstr filepath hkey hkey null dword dwdip 0 lptstr newreg new tchar...

註冊檔案型別,並關聯程式(三)

雙擊乙個txt檔案,就能用記事本開啟,因為txt檔案關聯了記事本程式。想讓你自定義的檔案型別也通過雙擊就能直接呼叫你的程式並開啟?ok,首先我們找到第一期,看到其中的這行 registry.setvalue hkey classes root myguo shell open command d b...