[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] 我想在win7 x64位生成如下菜单,卡在注册表键值中,一行要写多个命令)

本帖最后由 我来了 于 2013-7-18 08:13 编辑

在任意文件上,点击鼠标右键,出现菜单项,以兼容模式运行:
内容如下,找了很多材料,弄全的。

reg add "HKCU/Software/Microsoft/Windows NT/CurrentVersion/AppCompatFlags/Layers" /f /v "D:\EditPlus 3\EditPlus.exe" /t REG_SZ /d "WIN2000" 测试通过

红字为 对应项


对应右边内容:
windows 95                                       WIN95
windows 98 or windows ME                 WIN98
Windows NT 4.0 (Service Pack 5)          NT4SP5
windows 2000                             WIN2000
windows xp sp2                           WINXPSP2
windows xp sp3                           WINXPSP3
windows server 2003 sp1                WINSRV03SP1
windows server 2008 sp1                WINSRV08SP1
windows vista                          VISTARTM
windows vista sp1                      VISTASP1     
windows vista sp2                      VISTASP2
windows 7                              WIN7RTM
为什么要做的原因:自从用上win7后,发现很多程序不能往目标程序中拖了(目标窗口的光标出现后,却未执行。比方说,把任意文件拖到winhex,拖到peid中)已解决

即使按着ctrl shift拖也不行,到底是不是管理员权限问题啊?
右键 管理员权限 运行后也不起作用呢?
原因何在? 最后得出的结论是 :兼容性 引起的!!!!!!!!!!!!!!!!!!!!!!!



最后要达到的效果是:任意文件上,点右键出来 若干个尝试的菜单项,
1.先执行得到文件完整路径
2.放到   兰字部分去
reg add "HKCU/Software/Microsoft/Windows NT/CurrentVersion/AppCompatFlags/Layers" /f /v "D:\EditPlus 3\EditPlus.exe" /t REG_SZ /d "WIN2000"
3.再运行一次 兰字部分
菜单 内容项:
1,以兼容模式尝试windows 95
2.以兼容模式尝试windows 98 or windows ME   
3.以兼容模式尝试Windows NT 4.0 (Service Pack 5)      
4,以兼容模式尝试windows 2000                        
5.以兼容模式尝试windows xp sp2                           
6.以兼容模式尝试windows xp sp3                          
7.以兼容模式尝试windows server 2003 sp1               
8.以兼容模式尝试windows server 2008 sp1               

9.以兼容模式尝试windows vista                          
10.以兼容模式尝试windows vista sp1                  
11.以兼容模式尝试windows vista sp2                      

12.以兼容模式尝试windows 7                              

先后 尝试了 Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\copypath]
@="复制文件路径"
"icon"="C:\\Windows\\system32\\SHELL32.dll,68"

[HKEY_CLASSES_ROOT\*\shell\copypath\command]
@="hideexec G:\\PowerPro_4.9n7\\配置文件夹\\nircmd.exe clipboard set \"%l\""


[HKEY_CLASSES_ROOT\Directory\shell\copypath]
@="复制文件夹路径"
"icon"="C:\\Windows\\system32\\SHELL32.dll,68"

[HKEY_CLASSES_ROOT\Directory\shell\copypath\command]
@="hideexec G:\\PowerPro_4.9n7\\配置文件夹\\nircmd.exe clipboard set \"%l\""

TOP

我想在 注册表的 @="键值后:一行加上,多个命令行,让它连续执行,可是后边的不起作用

,     ;全试过了。

nircmd.exe后跟 延迟 cmdwait 2000
也想到了,可是不行呢。

TOP

其实要的  也不过份吧,右键点选后,执行,
得到文件全路径
将全路径 导入注册表
再执行文件的全路径,此时程序以点选的兼容模式之一的菜单运行。

TOP

调试中发现,输入法问题,可能导致 得到的全路径为乱码。

TOP

我还试了 以下的 发送到的 VBS
if wscript.arguments.count=0 then
wscript.echo "请将文件拖放到本脚本上!"
wscript.quit
end if
dim fso,f
set fso = wscript.createobject("scripting.filesystemobject")
Set f = fso.GetFile(WScript.Arguments(0))
Set wsShell = CreateObject("WScript.Shell")
wsShell.Run "mshta vbscript:ClipboardData.SetData("&chr(34)&"text"&chr(34)&"," &Chr(34)& f&Chr(34)& ")(close)",0,True
set f = nothing
set fso = nothing
set wsshell = nothing


总之,最好取材越少越好,所用程序不能太多为上。

TOP

win 7蛋痛的 右键 路径 菜单 还得 按住shift,这点有点坑爹。给吧,还隐藏的,真不大方啊。

TOP

00000
G:\PowerPro_4.9n7\配置文件夹\nircmd.exe clipboard addfile "D:\中.txt"

1
G:\PowerPro_4.9n7\配置文件夹\nircmd.exe clipboard readfile "D:\前.txt"


1111
G:\PowerPro_4.9n7\配置文件夹\nircmd.exe clipboard set "reg add "HKCU/Software/Microsoft/Windows NT/CurrentVersion/AppCompatFlags/Layers" /f /v ""
===
这样搞不通,文本不要换行   到这卡住了。





G:\PowerPro_4.9n7\配置文件夹\nircmd.exe regsetval sz "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" "这里放路径" "WINXPSP2"   这行OK了,就插路径

nircmd regedit "~$clipboard$"

存个思路,给有需要的人吧。

TOP

其实我看完了所有的内容,但是没明白你要表达什么,只是觉得这头像挺可爱

TOP

本帖最后由 我来了 于 2013-7-18 18:51 编辑
其实我看完了所有的内容,但是没明白你要表达什么,只是觉得这头像挺可爱
zz100001 发表于 2013-7-18 18:16


你先下載 這個 http://www.nirsoft.net/utils/nircmd-x64.zip
然後,再把下面的註冊表文件導入,
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\copypath]
@="复制文件完整路径"
"icon"="C:\\Windows\\system32\\SHELL32.dll,68"

[HKEY_CLASSES_ROOT\*\shell\copypath\command]
@="G:\\PowerPro_4.9n7\\配置文件夹\\nircmd.exe clipboard set \"%l\""

在任意文件上點右鍵,就看到新加的這個了。
然後用regworkshop來到該键值下
现在,你听我说啊
  只复制文件完整路径。。。只是完成了一部分,还得后面跟一个运行可执行程序的部分:
就是一行必須得寫多個命令:  前面的執行後 。。。。。後面+  nircmd.exe  exec max "c:\樓上你好.exe"






现在 后面的部分 全写好了,
就差一个,萬事具備,就差東風了。 或者 把這個http://www.bathome.net/viewthread.php?tid=25400&extra=解決了也成啊,這是二號方案。

TOP

终于知道你什么意思了,并且表示很无语,你学批处理不就是为了干这个么。。。
你可以直接在注册表的command里这种样子去调用就可以连续运行了
cmd /c clip.exe xxx&sleep.exe xxx&exec.exe xxx
可以用 %L 表示那个路径。这样不需要任何外部文件。
又或者像你那样写个带参数的vbs或者bat文件把所有操作都包含在里面,然后在command里面调

TOP

回复 11# zz100001

譬如上边的注册表
键值 搞成这样:cmd /c hideexec G:\PowerPro_4.9n7\配置文件夹\nircmd.exe clipboard set "%l" &exec.exe c:\windows\notepad.exe


红字部分 根本不执行啊。

TOP

hideexec G:\PowerPro_4.9n7\配置文件夹\nircmd.exe clipboard set "%l" &hideexec c:\windows\notepad.exe
这样也不行啊。
找遍网上,好像注册表 不能连命令吧,后边的可能无法传递啊。
找不到一个案例啊。

TOP

注册表里添加for命令都行,不要说连命令了,关键用好双引号

cmd /c "hideexec G:\PowerPro_4.9n7\配置文件夹\nircmd.exe clipboard set "%l" &exec.exe c:\windows\notepad.exe"

TOP

回复 14# fastslz


    还是 没有 后一个动作啊。

楼上的朋友,您刚才在注册表中测试过了么,照着复制的,咋就不成功呢?

TOP

返回列表