Copy as path in windows context menu

隐身守侯 提交于 2019-12-04 02:57:08

问题


I'm trying to implement "Copy as path" option in windows context menu ,which copies current file or folder path to clip board instead of installing a software for this , i would like to implement it my self. Any suggestions?


回答1:


You can add a link to the context menu by fiddling with the File Types dialog, or using the registry. In the registry, the path is HKEY_CLASSES_ROOT\*\shell. Add a key under that named "Copy as path", and a key under that named "command". Change command's default string value to "c:\your-program.exe %1", and when the user selects "Copy as path" it will run your executable with that path as the argument. Now your executable just needs to write the path passed in to it to the clipboard




回答2:


You will need to write your own shell namespace extension. A sample on how to do that using C# is available here. There is many examples on how to do that in C++ on web too.

The official documentation on the topic is available at MSDN. A specific article on this topic is Creating Context Menu Handlers.




回答3:


Windows Registry Editor Version 5.00


;%%%%%%%%%%%%%%%% COPY PATH NO QUOTES %%%%%%%%%%%%%%%%

;hex(2) below deciphers as:
;cmd /c <nul (set/p var="%1")|clip
[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\Copy Path No Quotes]
"Icon"="imageres.dll,-5302"
[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\Copy Path No Quotes\command]
@=hex(2):63,00,6D,00,64,00,20,00,2F,00,63,00,20,00,\
  3C,00,6E,00,75,00,6C,00,20,00,28,00,73,00,65,00,74,00,2F,00,70,00,20,00,\
  76,00,61,00,72,00,3D,00,22,00,25,00,31,00,22,00,29,00,7C,00,63,00,6C,00,\
  69,00,70,00,00,00

;hex(2) below deciphers as:
;cmd /c <nul (set/p var="%V")| clip
[HKEY_CLASSES_ROOT\Directory\Background\shell\Copy Path No Quotes]
"Icon"="imageres.dll,-5302"
[HKEY_CLASSES_ROOT\Directory\Background\shell\Copy Path No Quotes\command]
@=hex(2):63,00,6D,00,64,00,20,00,2F,00,63,00,20,00,\
  3C,00,6E,00,75,00,6C,00,20,00,28,00,73,00,65,00,74,00,2F,00,70,00,20,00,\
  76,00,61,00,72,00,3D,00,22,00,25,00,56,00,22,00,29,00,7C,00,20,00,63,00,\
  6C,00,69,00,70,00,00,00

;%%%%%%%%%%%%%%%% COPY PATH WITH QUOTES %%%%%%%%%%%%%%%%

;hex(2) below deciphers as:
;cmd /c <nul echo|set/p var=""%1""|clip
[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\Copy Path With Quotes]
"Icon"="imageres.dll,-5302"
[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\Copy Path With Quotes\command]
@=hex(2):63,00,6D,00,64,00,20,00,2F,00,63,00,20,00,\
  3C,00,6E,00,75,00,6C,00,20,00,65,00,63,00,68,00,6F,00,7C,00,73,00,65,00,\
  74,00,2F,00,70,00,20,00,76,00,61,00,72,00,3D,00,22,00,22,00,25,00,31,00,\
  22,00,22,00,7C,00,63,00,6C,00,69,00,70,00,00,00

;hex(2) below deciphers as:
;cmd /c <nul echo|set/p var=""%V""|clip
[HKEY_CLASSES_ROOT\Directory\Background\shell\Copy Path With Quotes]
"Icon"="imageres.dll,-5302"
[HKEY_CLASSES_ROOT\Directory\Background\shell\Copy Path With Quotes\command]
@=hex(2):63,00,6D,00,64,00,20,00,2F,00,63,00,20,00,\
  3C,00,6E,00,75,00,6C,00,20,00,65,00,63,00,68,00,6F,00,7C,00,73,00,65,00,\
  74,00,2F,00,70,00,20,00,76,00,61,00,72,00,3D,00,22,00,22,00,25,00,56,00,\
  22,00,22,00,7C,00,63,00,6C,00,69,00,70,00,00,00


来源:https://stackoverflow.com/questions/2902279/copy-as-path-in-windows-context-menu

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!