找回密码
 加入
搜索
查看: 7861|回复: 13

[系统综合] 如何通过注册表将程序添加到桌面右键菜单

  [复制链接]
发表于 2011-2-21 16:18:06 | 显示全部楼层 |阅读模式
想要把一个程序添加到桌面右键菜单,网上搜集了一下资料也没有解决,知道的朋友说一下!
 楼主| 发表于 2011-2-21 16:20:04 | 显示全部楼层
本帖最后由 卫和谐 于 2011-2-21 18:03 编辑

这是我找的注册表文件,大家测试下是否能够添加!
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{00000000-0000-0000-0000-000000000012}]

[HKEY_CLASSES_ROOT\CLSID\{00000000-0000-0000-0000-000000000012}\InProcServer32]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,00,68,00,\
  64,00,6f,00,63,00,76,00,77,00,2e,00,64,00,6c,00,6c,00,00,00
"ThreadingModel"="Apartment"

[HKEY_CLASSES_ROOT\CLSID\{00000000-0000-0000-0000-000000000012}\Instance]
"CLSID"="{3f454f0e-42ae-4d7c-8ea3-328250d6e272}"

[HKEY_CLASSES_ROOT\CLSID\{00000000-0000-0000-0000-000000000012}\Instance\InitPropertyBag]
"method"="ShellExecute"
"Param1"="ShowHidden.exe"
"command"="隐藏系统文件+扩展名"
"CLSID"="{13709620-C279-11CE-A49E-444553540000}"

[HKEY_CLASSES_ROOT\CLSID\{00000000-0000-0000-0000-000000000012}\Instance\InitPropertyBag1]
"method"="ShellExecute"
"Param1"="ShowHidden.exe"
"command"="显示系统文件+扩展名"
"CLSID"="{13709620-C279-11CE-A49E-444553540000}"

[HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers\SuperHidden]
@="{00000000-0000-0000-0000-000000000012}"
发表于 2011-2-21 17:41:35 | 显示全部楼层
回复 2# 卫和谐

你这个注册表文件没问题吧,主要把EXE文件放到C:\Windows文件夹就可以了.
但是这个方法似乎只能添加一个程序.

win7的话我以前写过“Win7桌面右键中添加菜单”
可以添加多个程序.
http://www.autoitx.com/thread-20923-1-1.html
 楼主| 发表于 2011-2-21 18:05:03 | 显示全部楼层
回复 3# lixiaolong

你这个刚才测试了下,没有效果!
 楼主| 发表于 2011-2-21 18:26:30 | 显示全部楼层
回复 2# 卫和谐

在WIN7、XP下都测试了,有效,只是好像只能添加一个右键菜单(带分栏的)!
发表于 2011-2-21 19:09:44 | 显示全部楼层
修改右键菜单应该在注册表中,具体的说,是在HKEY_CLASSES_ROOT根键下(这里可是右键菜单中所有命令的根源哦!)。展开该根键,其下的子键主要有两种:扩展名键(.+扩展名)和类定义键(如图1)。一般地说,只要是在windows系统中已注册过的扩展名,在HKEY_CLASSES_ROOT下均有“·该扩展名”子键 ,记录该扩展名的一些信息,对某种特定类型的文件的右键菜单的修改,便是在该键或“扩展名file”键下的操作。




一、在所有的文件右键菜单中加入命令

如果你的系统上安装有Winzip、UltraEdit等,当你对任一文件点右键时,都会有“Add to zip”、“UltraEdit-32”等命令(当然,Winzip稍有不同,我将在后面讲到)。它的添加方法是:




1.打开“HKEY_CLASSES_ROOT\*”;




2.在其下新建“shell\命令\command”分支,再将command的键值设为执行该命令时所用的可执行程序的绝对路径,并在其后加“%1”即可。

例:在“HKEY_CLASSES_R

OOT\*”下新建“shell\用写字板打开\command”子键,将command的键值设为“c:\windows\notepad.exe %1”,就会在右键菜单中出现“用写字板打开”的命令了(如图2)。

说明:

1. 要删除该类命令,只需将“命令”子键删除即可;

2. 有的人或许会问他按我写的去做,但是得到的为何与我的有一些不同,这就是我的命令里有快捷键(N),只要在“用写字板打开”后加入“(&N)”即可。




二、在特定文件类型的右键菜单中加入命令

刚才说到了Winzip这个软件,对普通的文件类型,它的右键菜单中有“Add to zip”,但是对它所支持的压缩文件类型,如*.zip、*.cab、*.rar在其右键菜单中有“Open with Winzip”、“Extract to”、“Extract to folder”、“Create Self-Extractor(.EXE)” 等命令,对于自解压性安装文件(如OICQ99b),其右键菜单中有“Run with Winzip”命令。下面是特定文件类型的右键菜单的命令添加方法(以在mp3文件的右键菜单中加入Play with winamp为例):




1.打开“HKEY_CLASSES_ROOT\mp3_auto_file”主键;




2.在其下新建“shell\Play with Winamp(&P)\command”,将command的键值设为“C:\Program files\winamp\winamp.exe %1” 。

说明:当有多个软件可以播放mp3文件时,我们可以在右键菜单中添加多条命令,如加入“Play with Unreal”等命令,但是我们如何将某一条命令定义为默认操作(即右键菜单中的黑体命令)呢?

你一定会说,很简单的事情吗!将mouse移向一mp3文件,在按右键的同时按shift,在右键菜单中选“打开方式“便可更改,但是这是错误的,不信你试试看,这样只有在右键菜单中选“打开”时才会用你所选择的程序来打开它,否则,它仍旧一如继往。因为它的默认操作不是“打开“这条命令。真正的方法是将shell的默认键值改为你所想执行的命令,例如将shell的键值改为“Winamp”,
 楼主| 发表于 2011-3-15 09:36:45 | 显示全部楼层
回复 6# gzh888666

谢谢,可是说的都不是桌面菜单右键!
发表于 2011-3-16 11:12:52 | 显示全部楼层
回复 7# 卫和谐

这样的吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2011-3-16 12:03:50 | 显示全部楼层
回复 8# shenrenba


    对,就是这样的,请帮助解答一下!
发表于 2011-3-16 12:24:19 | 显示全部楼层
本帖最后由 3mile 于 2011-3-16 12:38 编辑

HKEY_CLASSES_ROOT\DesktopBackground\Shell
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\3mile]
@="千千静听"
"Icon"="C:\\Program Files\\TTPlayer\\TTPlayer.exe,-1"
"Position"="Bottom"
"MUIVerb"=hex(2):43,53,43,53,59,97,2c,54,00,00

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\3mile\command]
@=""C:\\Program Files\\TTPlayer\\TTPlayer.exe""

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2011-3-16 12:38:45 | 显示全部楼层
本帖最后由 shenrenba 于 2011-3-16 12:47 编辑

回复 9# 卫和谐


    通过调用SuperMenu.dll 实现的  附件 我现在没办法上传 电脑出问题了 你百度找下就知道了

用的注册表项 DLL文件你百度找下吧 我上传不了附件
$reg = "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{79856088-C829-11D1-8233-0020AF3E97A0}"
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved", "{79856088-C829-11D1-8233-0020AF3E97A0}", "REG_SZ", "SuperMenu")
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Classes\SuperMenu\Clsid", "", "REG_SZ", "{79856088-C829-11D1-8233-0020AF3E97A0}")
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Background\shellex\ContextMenuHandlers\SuperMenu", "", "REG_SZ", "{79856088-C829-11D1-8233-0020AF3E97A0}")
RegWrite($reg & "ProgID", "", "REG_SZ", "SuperMenu")
RegWrite($reg & "InprocServer32", "", "REG_SZ", @ScriptDir & "\SuperMenu.dll")
RegWrite($reg & "InprocServer32", "ThreadingModel", "REG_SZ", "Apartment")
 楼主| 发表于 2011-3-16 12:51:55 | 显示全部楼层
回复 11# shenrenba

哦,我需要地是通过注册表实现,我现在使用的方法觉得不太好!
发表于 2011-3-16 13:02:26 | 显示全部楼层
回复 12# 卫和谐


    通过注册表的就像3mile发的那样 不能实现多级目录
 楼主| 发表于 2011-3-16 13:16:03 | 显示全部楼层
回复 10# 3mile


    这个在WIN7下面测试过,不好用!谢谢
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-15 12:11 , Processed in 0.082150 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表