註冊表和COM編程

在註冊表中右鍵菜單的項目都包含在第一子項 HKEY_CALSS_ROOT 中。展開該項,第一個子項一般是 * ,這個統配符表示一切後綴的文件都通用。也就是說,這個子項中的一切右鍵菜單項,沒有特別說明,會出現每一個文件的右鍵菜單中。
再比如.html項,就是這個項分管以.html後綴結尾的文件的右鍵菜單。

在一個子項的其內部,所有的右鍵菜單分爲兩部分存儲
shell:可通過shell子項編輯註冊表的項值實現一些簡單的右鍵功能。
對shell項的修改:
增加子項,鍵的名字就會是右鍵菜單項的顯示名字。
在該子項中增加command項,數據中填入字符串值是cmd命令。如果是多行cmd命令的執行需要編寫一個bat腳本,然後調用此bat腳本即可。

"D:\Environment\Python36\python.exe" "%1" %*

shellex:鍵名稱是一串序列號的,序列號是COM ID,在註冊表中可以將一個COM組件的dll和一個COM ID聯繫到一起。通過COM編程實現一些複雜的右鍵功能。
編寫可以參考
https://blog.csdn.net/qq_41786318/article/details/79814986

文件夾,文件夾分爲兩類菜單,一類是鼠標指向一個文件夾圖標時,點擊右鍵出來的菜單;第二類菜單時鼠標在已經打開的文件夾窗口的空白處,點擊右鍵彈出的菜單。如下圖所示,第一類菜單的註冊表項直接在 Directory 下,shell和shellex\ContextMenuHandlers 裏面;第二類菜單則在子項 Background 裏面。

Directory:鼠標指向一個文件夾圖標時,點擊右鍵出來的菜單
–BackGround子項:在已經打開的文件夾窗口的空白處,點擊右鍵彈出的菜單

DesktopBackground:桌面空白處菜單。注意這裏的菜單項不全,因爲還包括在文件夾空白處那項的結果。

Drive:驅動器
Folder:文件夾
fontfile:字體文件

shellex項的修改:
COM是一組接口規範,儘管不是所有的dll都是COM組件,但是如果它是一個COM組件,就可以擁有一個唯一的ID。
按我的理解,COM層在.NET的下面,給.NET/C#提供了一組標準函數庫調用

製作一個摺疊的子菜單組
在這裏插入圖片描述
1.MUIVerb的值要以&開頭作爲子菜單的名字
2.需要Subcommands項

https://blog.csdn.net/CrowNAir/article/details/78128566

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章