J JohnSun2002 Unregistered / Unconfirmed GUEST, unregistred user! 2005-06-26 #3 这个应该可以做到,象winrar软件等就是修改了右键菜单,<br>研究一下Windows优化大师、超级兔子等软件,看他们是怎么修改右键菜单的,<br>应该是修改注册表的某个键值吧。
H hljde Unregistered / Unconfirmed GUEST, unregistred user! 2005-06-26 #4 要搞清楚,我是指桌面右键菜单,不是什么文件、文件夹右键菜单。
H hzxhzx123 Unregistered / Unconfirmed GUEST, unregistred user! 2005-08-08 #5 先加入注册表单元<br>uses registry<br>添加:<br>procedure TForm1.Button1Click(Sender: TObject);<br>var reg:tregistry;<br> Filename:String;<br>begin<br> //Project1是我的EXE文件名,你的你要改<br> Filename:=Trim(ExtractFileDir(Application.Exename)+'/Project1.exe');<br> reg:=tregistry.create ;<br> reg.rootkey:=hkey_classes_root;<br> if reg.OpenKey('/folder/shell',true) then<br> if not Reg.KeyExists('Project1') then<br> reg.createkey ('Project1');<br><br> if reg.OpenKey('/folder/shell/Project1',true) then<br> if not Reg.KeyExists('command') then<br> reg.createkey ('command');<br><br> if reg.openkey ('/folder/shell/Project1/command',true) then<br> reg.writestring('',Filename); //''连一起,不要按空格,默认值<br> SHOWMESSAGE('已加入WINDOWS右键快捷方式');<br> reg.CloseKey;<br> reg.free<br>end;<br>删除:<br>procedure TForm1.Button2Click(Sender: TObject);<br>var reg:tregistry;<br>begin<br> reg:=tregistry.create ;<br> reg.rootkey:=hkey_classes_root;<br> if reg.OpenKey('/folder/shell',true) then<br> if Reg.KeyExists('Project1') then<br> reg.DeleteKey('Project1');<br> reg.CloseKey;<br> reg.free ;<br> SHOWMESSAGE('已从WINDOWS右键快捷方式中删除');<br>end;
先加入注册表单元<br>uses registry<br>添加:<br>procedure TForm1.Button1Click(Sender: TObject);<br>var reg:tregistry;<br> Filename:String;<br>begin<br> //Project1是我的EXE文件名,你的你要改<br> Filename:=Trim(ExtractFileDir(Application.Exename)+'/Project1.exe');<br> reg:=tregistry.create ;<br> reg.rootkey:=hkey_classes_root;<br> if reg.OpenKey('/folder/shell',true) then<br> if not Reg.KeyExists('Project1') then<br> reg.createkey ('Project1');<br><br> if reg.OpenKey('/folder/shell/Project1',true) then<br> if not Reg.KeyExists('command') then<br> reg.createkey ('command');<br><br> if reg.openkey ('/folder/shell/Project1/command',true) then<br> reg.writestring('',Filename); //''连一起,不要按空格,默认值<br> SHOWMESSAGE('已加入WINDOWS右键快捷方式');<br> reg.CloseKey;<br> reg.free<br>end;<br>删除:<br>procedure TForm1.Button2Click(Sender: TObject);<br>var reg:tregistry;<br>begin<br> reg:=tregistry.create ;<br> reg.rootkey:=hkey_classes_root;<br> if reg.OpenKey('/folder/shell',true) then<br> if Reg.KeyExists('Project1') then<br> reg.DeleteKey('Project1');<br> reg.CloseKey;<br> reg.free ;<br> SHOWMESSAGE('已从WINDOWS右键快捷方式中删除');<br>end;
L LovingTse Unregistered / Unconfirmed GUEST, unregistred user! 2005-08-12 #6 我装的江民杀毒软件就可以,应该只是做个外壳扩展吧
H hljde Unregistered / Unconfirmed GUEST, unregistred user! 2005-08-13 #8 [red]LovingTse[/red][black]说得对,江民杀毒软件是可以,还有英特尔的815/845G/GV等等主板自带的显卡驱动程序及一些NVIDIA的显卡驱动程序安装以后也可以,不知大家理解了没有,如果有哪位高手懂得这方面的编程请告诉我,必有重谢, hzxhzx123还是没有理解是什么意思,我要说的是[/black] [red]“桌面右键菜单”[/red] [black]也就是能调出“显示 属性”的菜单,不是什么文件、文件夹右键菜单。[/black][]
[red]LovingTse[/red][black]说得对,江民杀毒软件是可以,还有英特尔的815/845G/GV等等主板自带的显卡驱动程序及一些NVIDIA的显卡驱动程序安装以后也可以,不知大家理解了没有,如果有哪位高手懂得这方面的编程请告诉我,必有重谢, hzxhzx123还是没有理解是什么意思,我要说的是[/black] [red]“桌面右键菜单”[/red] [black]也就是能调出“显示 属性”的菜单,不是什么文件、文件夹右键菜单。[/black][]
H hzxhzx123 Unregistered / Unconfirmed GUEST, unregistred user! 2005-08-13 #9 对不起,我没实验这个代码,是在网上找到的,据说可以……。可以肯定就是一个外壳扩展而已。
H hljde Unregistered / Unconfirmed GUEST, unregistred user! 2005-08-15 #11 这段代码我已经测试过了,他只是在文件夹等右键菜单上显示,不是我想要的效果,请知道你高手赐教。
X xianguo Unregistered / Unconfirmed GUEST, unregistred user! 2005-08-15 #13 关于多种环境注册右键弹出事件的方法,请<br>按照以下对应关系:<br>/HKEY_CLASSES_ROOT/Folder/Shell 任意文件夹<br>/HKEY_CLASSES_ROOT/Directory/Shell 任意目录<br>/HKEY_CLASSES_ROOT/Drive/Shell 任意驱动器<br>/HKEY_CLASSES_ROOT/*/Shell 任意文件<br>新建一个主键,并在主键下添加一个特定主键(command),修改command的键值指到你的应用程序。<br><br>例如:<br>建立/HKEY_CLASSES_ROOT/Folder/Shell/AimTest,将在Folder上按下右键时出现"AimTest"菜单<br>建立/HKEY_CLASSES_ROOT/Folder/Shell/AimTest,并设定该主键的缺省值为"我的测试菜单",则将在Folder上按下右键时出现"我的测试菜单"菜单钮。<br>建立/HKEY_CLASSES_ROOT/Folder/Shell/AimTest/command,并设定command"缺省"键值为"c:/tools/pse.exe" "%1",则将以Folder名为第一参数启动pse.exe。<br> * 注意command键值的双引号不可缺省<br><br>另外:<br>/HKEY_CLASSES_ROOT/Folder/Shellex<br>/HKEY_CLASSES_ROOT/Directory/Shellex<br>/HKEY_CLASSES_ROOT/Drive/Shellex<br>/HKEY_CLASSES_ROOT/*/Shellex<br>可以按应用程序在Registroy中的注册ID调用。这样可以调用.DLL和钩子函数。<br>但建议按第一种方法调用应用程序,因为注册一个ID实在麻烦。<br><br>如果你的应用程序支持DDE,你可以参考<br>/HKEY_CLASSES_ROOT/Directory/Shell/Find键的设定来进行DDE设置。<br><br>///<br>Windows Registry Editor Version 5.00<br><br>[HKEY_CLASSES_ROOT/Folder/shell/Test]<br>@="测试"<br><br>[HKEY_CLASSES_ROOT/Folder/shell/Test/command]<br>@="Calc.exe %1"
关于多种环境注册右键弹出事件的方法,请<br>按照以下对应关系:<br>/HKEY_CLASSES_ROOT/Folder/Shell 任意文件夹<br>/HKEY_CLASSES_ROOT/Directory/Shell 任意目录<br>/HKEY_CLASSES_ROOT/Drive/Shell 任意驱动器<br>/HKEY_CLASSES_ROOT/*/Shell 任意文件<br>新建一个主键,并在主键下添加一个特定主键(command),修改command的键值指到你的应用程序。<br><br>例如:<br>建立/HKEY_CLASSES_ROOT/Folder/Shell/AimTest,将在Folder上按下右键时出现"AimTest"菜单<br>建立/HKEY_CLASSES_ROOT/Folder/Shell/AimTest,并设定该主键的缺省值为"我的测试菜单",则将在Folder上按下右键时出现"我的测试菜单"菜单钮。<br>建立/HKEY_CLASSES_ROOT/Folder/Shell/AimTest/command,并设定command"缺省"键值为"c:/tools/pse.exe" "%1",则将以Folder名为第一参数启动pse.exe。<br> * 注意command键值的双引号不可缺省<br><br>另外:<br>/HKEY_CLASSES_ROOT/Folder/Shellex<br>/HKEY_CLASSES_ROOT/Directory/Shellex<br>/HKEY_CLASSES_ROOT/Drive/Shellex<br>/HKEY_CLASSES_ROOT/*/Shellex<br>可以按应用程序在Registroy中的注册ID调用。这样可以调用.DLL和钩子函数。<br>但建议按第一种方法调用应用程序,因为注册一个ID实在麻烦。<br><br>如果你的应用程序支持DDE,你可以参考<br>/HKEY_CLASSES_ROOT/Directory/Shell/Find键的设定来进行DDE设置。<br><br>///<br>Windows Registry Editor Version 5.00<br><br>[HKEY_CLASSES_ROOT/Folder/shell/Test]<br>@="测试"<br><br>[HKEY_CLASSES_ROOT/Folder/shell/Test/command]<br>@="Calc.exe %1"
A app2001 Unregistered / Unconfirmed GUEST, unregistred user! 2005-08-15 #14 你可去网上搜一下一篇叫“Windows外壳扩展编程入门实例”的文章。说得很详细的,用DELPHI来开发右键菜单的一个详细的示例和说明
H hljde Unregistered / Unconfirmed GUEST, unregistred user! 2005-08-17 #15 下载看过了,那是对“资源管理器”编程的介绍,不是对“桌面右键菜单”的介绍,问题解决不了,不知还有没有人知道?????????????????????????????
H hljde Unregistered / Unconfirmed GUEST, unregistred user! 2005-08-17 #16 其实我知道桌面的句柄是"SysListView32",不知有没有办法通过句柄加上右键菜单?
A app2001 Unregistered / Unconfirmed GUEST, unregistred user! 2005-08-17 #17 http://hubdog.csdn.net/UpdateList/ulIndex.htm<br>这个高手对这方面有很深的研究,你找找他呗<br>另外,我认为你可以在程序里面判断的,桌面也无非是资源管理器中的一个目录,你可先判断是否你要生成右键菜单的地点,是就生成,不是就不干,不就行了吗?
http://hubdog.csdn.net/UpdateList/ulIndex.htm<br>这个高手对这方面有很深的研究,你找找他呗<br>另外,我认为你可以在程序里面判断的,桌面也无非是资源管理器中的一个目录,你可先判断是否你要生成右键菜单的地点,是就生成,不是就不干,不就行了吗?
R rocyang Unregistered / Unconfirmed GUEST, unregistred user! 2005-08-29 #18 跟我碰到的问题一样,正在想办法,估计和注册表无关
H hljde Unregistered / Unconfirmed GUEST, unregistred user! 2005-08-30 #19 是吗?如果想到了办法或者找到了解决方法请告诉我一下,先在这里谢谢了。不知道江民公司的人有没有会上大富翁的,希望有上来或者有人认识,帮帮忙解决一下这个问题。