本帖最后由 527104427 于 2022-11-30 21:07 编辑 窄口牛 发表于 2022-11-30 20:59 再试一下: set^ EnviMode=1 set^ ForceLocal=1 //多开 REGI $HKCR\*\shell\Locate\\=定位 REGI $HKCR\*\shell\Locate\\Icon=explorer.exe,0 REGI $HKCR\*\shell\Locate\Command\\=explorer.exe /n,/select,"%%1" REGI $HKCR\Directory\shell\Locate\\=定位 REGI $HKCR\Directory\shell\Locate\\Icon=explorer.exe REGI $HKCR\Directory\shell\Locate\command\\=explorer.exe "%%1" //复制路径 set commandline="%MyName%" team set^ EnviMode=1| set^ ForceLocal=1 | set$ nl=0d 0a| fdir --fullfile --long a="%%1"| fdir --fullfile --short b="%%1"| fdir --fullfile --volume c="%%1"| fdir --fullfile --part d="%%1"| fdrv e=%%%%d%%%%| sed -ex f=0,[^0-9], ,e| mstr * g,h=<1*>f| sed -ex i=1,\\Harddisk%%%%g%%%%Partition%%%%h%%%%\\,\\GLOBALROOT\\device\\harddisk%%%%g%%%%\\partition%%%%h%%%%\\,d| find *<>a, set< a=%%%%nl%%%%| find *<>b, set< b=%%%%nl%%%%| find *<>c, set< c=%%%%nl%%%%| find *<>d, set< d=%%%%nl%%%%| find *<>i, set< i=%%%%nl%%%%| set^ Clipboard=%%%%a%%%%%%%%b%%%%%%%%c%%%%%%%%d%%%%%%%%i%%%% REGI $HKCR\*\shell\CopyPaths\\=复制路径(多行) REGI $HKCR\*\shell\CopyPaths\\Icon=explorer.exe,0 REGI $HKCR\*\shell\CopyPaths\Command\\=%commandline% REGI $HKCR\Directory\shell\CopyPaths\\=复制路径(多行) REGI $HKCR\Directory\shell\CopyPaths\\Icon=explorer.exe,0 REGI $HKCR\Directory\shell\CopyPaths\command\\=%commandline% //结束进程 set commandline="%MyName%" team set^ EnviMode=1| set^ ForceLocal=1| find --pid*@ a,| set b=%%1| lpos* * * ,*c=b,,a| ifex $%%%%c%%%%>0, forx *v c,d, team~ read -*,%%%%d%%%%,e,a~ mstr* * f=<1>e~ kill *force *%%%%f%%%% REGI $HKCR\*\shell\KillApps\\=结束进程(多个) REGI $HKCR\*\shell\KillApps\\Icon=taskmgr.exe,0 REGI $HKCR\*\shell\KillApps\Command\\=%commandline% //关闭所在目录 set commandline="%MyName%" team set^ EnviMode=1| set^ ForceLocal=1| set$ nl=0d 0a| fdir --full a="%%1"| mstr * -delims:\ b=<-1>a| find --class:CabinetWClass --wid@ c,%%%%b%%%%| find --class:CabinetWClass --wid@ d,%%%%a%%%%| set< c=%%%%nl%%%%%%%%d%%%%| forx *nl c,e, team~ mstr* * f=<2>e~ ifex $%%%%f%%%%>0, set @@postmsg=%%%%f%%%%;0x0010;0;0 REGI $HKCR\*\shell\CloseWindow\\=关闭所在目录(多个) REGI $HKCR\*\shell\CloseWindow\\Icon=taskmgr.exe,0 REGI $HKCR\*\shell\CloseWindow\Command\\=%commandline% REGI $HKCR\Directory\shell\CloseWindow\\=关闭所在目录(多个) REGI $HKCR\Directory\shell\CloseWindow\\Icon=taskmgr.exe,0 REGI $HKCR\Directory\shell\CloseWindow\command\\=%commandline% //打开后关闭所在目录 set commandline="%MyName%" team set^ EnviMode=1| set^ ForceLocal=1| set$ nl=0d 0a| exec $"%%1"| fdir --full a="%%1"| mstr * -delims:\ b=<-1>a| find --class:CabinetWClass --wid@ c,%%%%b%%%%| find --class:CabinetWClass --wid@ d,%%%%a%%%%| set< c=%%%%nl%%%%%%%%d%%%%| forx *nl c,e, team~ mstr* * f=<2>e~ ifex $%%%%f%%%%>0, set @@postmsg=%%%%f%%%%;0x0010;0;0 REGI $HKCR\*\shell\RunCloseWindow\\=打开后关闭所在目录(多个) REGI $HKCR\*\shell\RunCloseWindow\\Icon=taskmgr.exe,0 REGI $HKCR\*\shell\RunCloseWindow\Command\\=%commandline% REGI $HKCR\Directory\shell\RunCloseWindow\\=打开后关闭所在目录(多个) REGI $HKCR\Directory\shell\RunCloseWindow\\Icon=taskmgr.exe,0 REGI $HKCR\Directory\shell\RunCloseWindow\command\\=%commandline% |
本帖最后由 dos时代菜鸟 于 2022-12-4 23:42 编辑 窄口牛 发表于 2022-12-1 17:51 需要事先 设定 已单独进程运行 ,win7 下可能需要注销一下,或者手动设置一下。 ============================================
|
支持楼主分享 |
cmd 改进了一下,发现 调用 根目录下的文件 以及 带空格目录下的文件,有问题, 增加了一个用 tasklist 精准定位窗口名称对应的 pid 的思路。应该可以了。 |
dos时代菜鸟 发表于 2022-12-1 16:21 win7上无效。 |
本帖最后由 dos时代菜鸟 于 2022-12-1 17:39 编辑 一个批处理也能搞定。 用 taskkill 就可以,把这个批处理放到桌面上,把资源管理器 里的某个EXE文件拖放到这个批处理上, 会打开那个 exe 文件并关闭 浏览 exe 文件的那个 资源管理器。 仅在 win10 x64 下测试 成功 如果可行,就可以把这个批处理 添加到注册表 指定位置了。 前提是 需要设置好 explorer.exe 的 设置 “在单独的进程中打开文件夹窗口” |
527104427 发表于 2022-11-30 22:31 这比喻好像和楼主需求没什么关系啊?菜和面都要上桌,吃到嘴里的过程一样,即打开方式相同,但是楼主的食物因为种类繁多却不在桌上,楼主又觉得到各个房间找到食物吃关门太麻烦,让你们给他装个自动门…… |
看天书,顶一下。 |
527104427 发表于 2022-11-30 21:50 那就 窗口 id 呗 |
nttwqz 发表于 2022-11-30 22:13 别人的要求不是这样的。这就好比去饭店吃饭,别人想炒个菜,有人却极力反对,炒什么菜啊,吃煮面多快啊,又快又滑溜,几分钟解决。 |
dos时代菜鸟 发表于 2022-11-30 21:14 定位pid其实并不可取,结束pid就直接把explorer干掉了,见图: |
本帖最后由 窄口牛 于 2022-11-30 21:35 编辑 vbs应该也简单,不过确实拼凑不来,不像批处理。隔壁论坛就有个按顺序关闭相同文件夹窗口的vbs。关闭重复的文件夹窗口 |
最后再搞个双击双键的接口吧,比单击右键再选择更便捷 |
dos时代菜鸟 发表于 2022-11-30 21:14 我楼上的代码被楼主置顶了,标题也改了,说明已解决问题。 |
dos时代菜鸟 发表于 2022-11-30 20:51 哈哈,这个效果不是楼主想要的,他就是想右键打开程序,自动关窗口 |
2008r2下没问题,win7不行。 |
窄口牛 发表于 2022-11-30 19:14 你这个系统很奇怪,此命令找不到任何东西:find --class:CabinetWClass --wid@ c,窗口标题 没啥办法了。 |
本帖最后由 527104427 于 2022-11-30 19:13 编辑 还真邪门,再手动试一下呗: team set^ EnviMode=1| set^ ForceLocal=1| exec $"%WinDir%\System32"| wait 2000| fdir --full a="%WinDir%\System32\cmd.exe"| mstr * -delims:\ b=<-1>a| find --class:CabinetWClass --wid@ c,%b%| mess. [%b%][%a%][%c%] 看弹窗是啥。再不行就没办法了。 |
你手动试试看: 先多打开几个文件夹,再输入命令 find --class:CabinetWClass --wid*@ c, mess. [%c%] 看一下有没有弹窗 有的话,再 set @@postmsg=792014;0x0010;0;0 792014要换成你那边实际的数字,就是第2列的,看有没有关闭对应的窗口 |
用 pecmd ,可以考虑 用鼠标捕获当前窗口 pid ,然后 关闭窗口。 |
看注册表的内容是正确的,那就只有换PECMD了,换最新的试试吧 |
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.