如何将自己的程序名加到资源管理器中的右键菜单中(200分)

  • 主题发起人 主题发起人 akzo
  • 开始时间 开始时间
A

akzo

Unregistered / Unconfirmed
GUEST, unregistred user!
如何将自己的程序名加到资源管理器中的右键菜单中,选择一个文件即可执行自己的程序,<br>并将这个文件名传到我的程序的edit.text中去?这可能是个老掉牙的问题,但我还不知.多谢!
 
写一个注册表值<br>[HKEY_CLASSES_ROOT/你的程序打开的文件的扩展名(如.txt)/shell/右键中的显示菜单名/command]<br>@="你的执行文件路径及名字 /"%1/""<br><br>你可以自己查注册表看看<br>例如我的机器中readbook.exe<br>[HKEY_CLASSES_ROOT/.Gb/shell/用&amp;ReadBOOK阅读/command]<br>@="d://Program Files//ReadBOOK//readbook.exe /"%1/""
 
谢谢您的这么快答复!<br>我还是有几个问题:<br>1 这个键值是不是在制作安装程序时作的,让用户安装时写入的?<br>2 用户安装时的路径未知,这程序的路径如何定?<br>3 &nbsp;它能把文件名传到程序中去吗?
 
1、可以在安装程序时做,也可以在第一次运行程序时写入注册表,随你了<br>2、用户安装时的路径?你用什么安装程序?如果是installshield,可以用&lt;INSTALLDIR&gt;表示<br>安装目录<br>3、如果是delphi, &nbsp;ParamCount表示你参数的个数,ParamStr(I)表示参数,ParamStr(0)是<br>是你的程序的名字本身
 
我现在右键出现了我的程序名,但找不到我的程序,可能是路径没有设好,你知不知道那个取得<br>当前程序运行时的路径的过程?多谢
 
extractfilepath(application.exename)
 
这个路径也要写进command键值里吗?
 
系统扩展问题
 
有没有给个完整的例子,最好啦!<br>加到右键菜单后,选择一个文件即可执行自己的程序,<br>并将这个文件名传到我的程序的edit.text中去。。。。。<br>看样子,我只好求老外了
 
路径也需要,用extractfilepath或extractfiledirectory都可以获得路径,extractfilepath<br>带"/",<br>你也太懒了吧?自己写吧,别人写出来给你用,那有什么意思啊?
 
算了,给你随便写点吧,你试试<br>uses registry;<br>var<br>&nbsp; reg: Tregistry;<br>&nbsp; s,f:string;<br><br>begin<br>&nbsp; reg := TRegistry.create;<br>&nbsp; try<br>&nbsp; &nbsp; s:='/.GB/Shell/我的程序/command';//可以改成你想要的文件扩展名<br>&nbsp; &nbsp; f:='d:/abc/abc.exe "%1"';<br>&nbsp; &nbsp; reg.rootkey := HKEY_CLASSES_ROOT;<br>&nbsp; &nbsp; if not reg.KeyExists(s) then<br>&nbsp; &nbsp; begin<br>&nbsp; &nbsp; &nbsp; reg.CreateKey(s);<br>&nbsp; &nbsp; &nbsp; reg.OpenKey(s,true);<br>&nbsp; &nbsp; &nbsp; reg.WriteString('',f);<br>&nbsp; &nbsp; end;<br><br>&nbsp; finally<br>&nbsp; &nbsp; reg.CloseKey;<br>&nbsp; &nbsp; reg.Destroy;<br>&nbsp; end;
 
总算搞定了,你知道问题出在哪里吗?原来是程序名与%1之前有个空格,应是sExename+' %1';<br>不然它找不到我的程序.
 
是你自己的问题,我的程序中本来就有空格啊, :P
 
后退
顶部