无忧启动论坛

标题: 哪位高手写个vbs或者批处理查看浏览器插件信息(找到替代方案) [打印本页]

作者: 窄口牛    时间: 2024-2-4 17:07
标题: 哪位高手写个vbs或者批处理查看浏览器插件信息(找到替代方案)
本帖最后由 窄口牛 于 2024-2-6 09:02 编辑

查看插件名称,安装路径以及目前的版本。

作者: chishingchan    时间: 2024-2-4 18:18
查看 IE 的还好说!如果不是,浏览器太多了,脚本可能也不胜任!
但 IE 也过时了,查看也没意义!
作者: nttwqz    时间: 2024-2-4 18:43
楼主研究研究写一个,造福坛友
作者: junyee    时间: 2024-2-4 19:35
本帖最后由 junyee 于 2024-2-4 19:40 编辑

试试,



作者: yyz2191958    时间: 2024-2-4 20:29
junyee 发表于 2024-2-4 19:35
试试,

高手哦
作者: 窄口牛    时间: 2024-2-4 21:17
本帖最后由 窄口牛 于 2024-2-5 11:35 编辑

回二楼:加个选择default目录
回三楼:我会写还用发帖?
回四楼:我这里失败了,我的插件比较多,搜文件那步就很费劲了。有的插件搜索这行还名字对不上,尴尬。
不过我看到了找答案的地方,用个文本内容搜索工具也行了。
作者: nttwqz    时间: 2024-2-4 21:55
不知道楼主用的什么浏览器?
作者: 窄口牛    时间: 2024-2-5 04:54
nttwqz 发表于 2024-2-4 21:55
不知道楼主用的什么浏览器?

加个选择浏览器default目录就可以了啊。我用的好几个呢。
作者: tanchenglong    时间: 2024-2-5 08:14
留名,顶一下
作者: 窄口牛    时间: 2024-2-5 11:36
不太容易,有点难
作者: nttwqz    时间: 2024-2-5 23:55
  1. !include "MUI2.nsh"
  2. !include "LogicLib.nsh"
  3. !include "FileFunc.nsh"
  4. !define PRODUCT_NAME "获取Chrome已安装插件信息"

  5. Name "${PRODUCT_NAME}"
  6. Caption "${PRODUCT_NAME}"
  7. OutFile "${PRODUCT_NAME}.exe"

  8. BrandingText " "
  9. ManifestDPIAware true
  10. XPStyle on
  11. ShowInstDetails show
  12. SetFont "Microsoft YaHei" 9
  13. RequestExecutionLevel user
  14. ; InstallDir "D:\Chrome109\UserData\Default"
  15. SpaceTexts 'none' 'none'
  16. InstallButtonText "查找"

  17. ; 程序图标
  18. !define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\info.ico"

  19. !define MUI_PAGE_CUSTOMFUNCTION_SHOW "func_hide"
  20. !define MUI_DIRECTORYPAGE_TEXT_TOP " "
  21. !define MUI_DIRECTORYPAGE_TEXT_DESTINATION "选择 Default 路径:"
  22. !insertmacro MUI_PAGE_DIRECTORY
  23. !insertmacro MUI_PAGE_INSTFILES

  24. !insertmacro MUI_LANGUAGE "SimpChinese"

  25. Var out

  26. Section
  27.     SetDetailsPrint none
  28.     SetOutPath "$INSTDIR\Extensions"
  29.     FileOpen $out "$EXEDIR\已安装插件信息.txt" w
  30.     FileWrite $out "目录:$INSTDIR$\r$\n$\r$\n"
  31.     FileWrite $out "版本$\t$\t名称$\t$\t路径$\r$\n"
  32.     ${Locate} "$OUTDIR" "/M=manifest.json" "func_findjson"
  33.     FileClose $out
  34.     SetDetailsPrint both
  35.     DetailPrint "文件已保存到程序所在目录:已安装插件信息.txt"
  36. SectionEnd

  37. Function func_findjson
  38.     ; $R9    "path\name"
  39.     ; $R8    "path"
  40.     ; $R7    "name"
  41.     ; $R6    "size"  ($R6="" 如果是文件夹,$R6="0" 如果是文件 (带 /S= 参数时))

  42.     ; $R0-$R5 未使用,可用于保存数据
  43.     ; ...

  44.     ; Push $var    ; 如果 $var="StopLocate" 则退出函数

  45.     nsJSON::Set /file "$R9"
  46.     nsJSON::Get "name" /end
  47.     Pop $R0
  48.     nsJSON::Get "version" /end
  49.     Pop $R1
  50.     ${GetParent} "$R8" $R5
  51.     FileWrite $out "$R1$\t$\t$R0$\t$\t$R5$\r$\n"
  52.    
  53.     Push $1
  54. FunctionEnd

  55. Function func_hide
  56.     ; 隐藏一些界面元素
  57.     GetDlgItem $0 $HWNDPARENT 1034
  58.     ShowWindow $0 0
  59.     GetDlgItem $0 $HWNDPARENT 1036
  60.     ShowWindow $0 0
  61.     GetDlgItem $0 $HWNDPARENT 1037
  62.     ShowWindow $0 0
  63.     GetDlgItem $0 $HWNDPARENT 1038
  64.     ShowWindow $0 0
  65.     GetDlgItem $0 $HWNDPARENT 1039
  66.     ShowWindow $0 0
  67.     GetDlgItem $0 $HWNDPARENT 1006
  68.     ShowWindow $0 0
  69. FunctionEnd
复制代码

nsis 3.*需要NsJSON插件


获取Chrome已安装插件信息.7z

61.9 KB, 下载次数: 9, 下载积分: 无忧币 -2


作者: nttwqz    时间: 2024-2-5 23:57
我这只有一个偶然得到的插件,不知道其它插件的信息是否一致。
作者: 窄口牛    时间: 2024-2-6 08:17
nttwqz 发表于 2024-2-5 23:55
nsis 3.*需要NsJSON插件

效果不好,我装了18个插件,它只找到三个。和上面的批处理找到一样的位置,我这里是name加short-name获取名称更准确。
作者: nttwqz    时间: 2024-2-6 08:46
窄口牛 发表于 2024-2-6 08:17
效果不好,我装了18个插件,它只找到三个。和上面的批处理找到一样的位置,我这里是name加short-name获取 ...

试试。

获取Chrome已安装插件信息.7z

57.17 KB, 下载次数: 6, 下载积分: 无忧币 -2


作者: 窄口牛    时间: 2024-2-6 09:01
nttwqz 发表于 2024-2-6 08:46
试试。

还是只找到三个。
我的解决办法:
我加了个自定义搜索引擎,扩展程序管理里可以看到版本,然后直接到微软插件商店搜索,对比就可以知道更新不更新。
作者: nttwqz    时间: 2024-2-6 09:29
窄口牛 发表于 2024-2-6 09:01
还是只找到三个。
我的解决办法:
我加了个自定义搜索引擎,扩展程序管理里可以看到版本,然后直接到微 ...

会不会是json的文件名不一样?
作者: 窄口牛    时间: 2024-2-6 09:44
nttwqz 发表于 2024-2-6 09:29
会不会是json的文件名不一样?

不是。
作者: nttwqz    时间: 2024-2-6 09:59
窄口牛 发表于 2024-2-6 09:44
不是。

你发个json我看看
作者: 窄口牛    时间: 2024-2-6 10:03
Default.rar (20.65 KB, 下载次数: 8)

作者: nttwqz    时间: 2024-2-6 14:20
窄口牛 发表于 2024-2-6 10:03

已查明原因,应该是NSIS的bug引起,并非代码写法有问题,只能换个方式查找了
作者: nttwqz    时间: 2024-2-6 20:40
本帖最后由 nttwqz 于 2024-2-6 20:50 编辑

nsis作为脚本语言来用,还是有太多不足,重写文件查找功能之后,倒是能找到所有文件了,但是json插件又出现变量不更新造成名称重复和中文名称乱码问题,单次读取倒是不重复。

于是干脆用python重写,简单强大,问题迎刃而解。

  1. # python 3.*

  2. import os
  3. import json
  4. from tkinter.filedialog import askdirectory


  5. opendir = askdirectory(title='选择 Default 目录', mustexist=True)

  6. list = []
  7. for root,dirs,files in os.walk(opendir, r'manifest.json'):
  8.     for i in files:
  9.         list.append(os.path.join(root, i))
  10.         with open(os.path.join(root, i), 'r', encoding='utf-8') as f:
  11.             dict = json.load(f)
  12.             if 'short_name' in dict.keys():
  13.                 name = dict['short_name']
  14.             else:
  15.                 name = dict['name']
  16.             print(os.path.abspath(os.path.dirname(root)), '  {: <10}'.format(dict['version']), name)
  17.             del name


  18. print('\n\n')
  19. os.system('pause')
复制代码


鉴于python对齐有严格要求,上传附件,注意,需要安装python 3。已上传编译好的到lanzou

获取Chrome已安装插件信息.7z (552 Bytes, 下载次数: 7)




作者: tilltotell007    时间: 2024-2-19 08:11
感谢分享
作者: wang1126    时间: 2024-2-28 05:51
感谢分享
作者: tanchenglong    时间: 2024-2-28 08:19
楼主写的真棒,我只是挽尊的
作者: 紧急追踪    时间: 2024-3-9 22:47
junyee 发表于 2024-2-4 19:35
试试,

感谢分享




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3