无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 3826|回复: 40
打印 上一主题 下一主题

[讨论] 讨论用SetUserFTA命令行更改默认应用程序效果?

    [复制链接]
跳转到指定楼层
1#
发表于 2023-8-21 11:33:15 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 9zhmke 于 2023-8-21 11:35 编辑

从这个网页看到关于ProgID的传说:
https://www.winhelponline.com/blog/set-default-browser-file-associations-command-line-windows-10/
通过命令行更改默认应用程序和文件关联,有没人试用过这个效果?兼容性如何?以下,上述网址机翻结果:

通过命令行更改默认应用程序和文件关联[color=var(--contrast-2)]最后更新日期:2023 年 7 月 31 日
摘要:本文介绍了如何在 Windows 10 中使用命令行更改默认应用程序或文件关联。这可以通过名为 SetUserFTA 的命令行工具来完成。

在 Windows 10 中,只能使用默认应用程序或手动打开方式对话框来为登录用户帐户设置每用户文件关联。如果您尝试使用脚本或批处理文件更改用户默认注册表项,Windows 10 会将[color=var(--accent)]文件关联重置为 Windows 默认值;您会看到烦人的[color=var(--accent)]应用程序默认值已重置通知。
微软表示,[color=var(--accent)]应用程序不得写入存储UserChoice用户默认关联设置的注册表项。这是因为必须由用户而不是程序来控制。程序之间相互竞争并任意改变特定于用户的关联将不会是良好的用户体验。该UserChoice密钥是受保护的位置,ProgID 值通过哈希值进行验证。
当您使用“默认应用程序”或“打开方式”设置关联时,Windows 10 会为每个文件类型关联生成哈希值。生成的哈希值基于许多输入,例如用户帐户 SID、ProgId、注册时间等,或许还有其他参数。
用户有时可能需要一种快捷方式来为其帐户设置文件关联,而无需每次都通过“[color=var(--accent)]打开方式”对话框或默认应用程序。一些用于更改浏览器或文件关联默认值的切换开关或快捷方式将有很大帮助。
幸运的是,我们有 SetUserFTA 工具来做到这一点。
(上次于 2021 年 5 月 21 日在 Windows 10 v21H1 上使用 SetUserFTA 版本 1.7.1 进行测试。工作完美。)
通过命令行设置默认应用程序、浏览器或关联
要通过命令行设置文件关联和默认浏览器,请使用Christoph Kolbicz 编写的[color=var(--accent)]SetUserFTA实用程序。Kolbicz 有效地对哈希算法进行了逆向工程。该实用程序会自动生成哈希值并为您设置默认值。
要使用命令行更改默认浏览器,请使用以下语法:
SetUserFTA.exe 扩展 progid
它还支持 URL 协议(例如http,https、mailto、 等)
谷歌浏览器
要将 Chrome 设置为默认浏览器,请运行以下命令:
SetUserFTA http ChromeHTMLSetUserFTA https ChromeHTMLSetUserFTA .htm ChromeHTMLSetUserFTA .html ChromeHTML火狐浏览器SetUserFTA http FirefoxHTMLSetUserFTA https FirefoxHTMLSetUserFTA .htm FirefoxHTMLSetUserFTA .html FirefoxHTML歌剧SetUserFTA http OperaStableSetUserFTA htts OperaStableSetUserFTA .htm OperaStableSetUserFTA .html OperaStable微软边缘(铬)SetUserFTA http MSEdgeHTMSetUserFTA https MSEdgeHTMSetUserFTA 微软边缘 MSEdgeHTMSetUserFTA .htm MSEdgeHTMSetUserFTA .html MSEdgeHTMMicrosoft Edge(旧版)SetUserFTA http AppXq0fevzme2pys62n3e0fbqa7peapykr8vSetUserFTA https AppX90nv6nhay5n6a98fnetv7tpk64pp35esSetUserFTA 微软边缘 AppX7rm9drdg8sk7vqndwj3sdjw11x96jc0ySetUserFTA .htm AppX4hxtad77fbk3jkkeerkrm0ze94wjf3s9SetUserFTA .html AppX4hxtad77fbk3jkkeerkrm0ze94wjf3s9
相关:有关文件扩展名 → ProgID 映射的更多信息,请参阅[color=var(--accent)]如何使用注册表编辑器删除文件类型关联一文。

默认图像查看器
要将 Windows 照片查看器设置为 .png 和 .jpg 文件的默认处理程序,请运行:
SetUserFTA .jpg PhotoViewer.FileAssoc.JpegSetUserFTA .png PhotoViewer.FileAssoc.Png
[color=var(--accent)]请注意,您将按照在 Windows 10 中恢复丢失的 Windows照片查看器一文中应用 Windows 照片查看器注册表编辑,以使上述命令正常工作。如果没有必要的 ProgId 注册,您的文件将显示为未知文件类型。
要恢复为默认的Microsoft 照片,请使用以下命令行:
SetUserFTA .jpg AppX43hnxtbyyps62jhe9sqpdzxn1790zetc设置用户FTA .png AppX43hnxtbyyps62jhe9sqpdzxn1790zetcProgID 与“Applications\program.exe”
如果应用程序没有定义文件类或 Progid,您也可以提及该程序的 exe,就像Applications\program.exe类型一样。如果程序是在HKCR\Applications注册表项下注册的,则此方法有效。
例如,要将 Notepad++ 设置为 .txt 文件的默认编辑器,请运行:
SetUserFTA .txt 应用程序\notepad++.exe
要恢复为默认值 ( notepad.exe),请使用:
SetUserFTA .txt txt文件或者SetUserFTA .txt 应用程序\notepad.exe
您可以为所需命令创建桌面快捷方式,只需单击一下即可快速切换默认值!
查看所有文件类型的当前用户默认值
要获取所有文件类型和 URL 协议的用户默认值,请运行以下命令:
SetUserFTA 获取
SetUserFTA 使设置文件关联的工作变得简单!Danysys.com 有一个类似的实用程序,但我尚未测试过。如果您想查看它,请访问[color=var(--accent)]设置文件类型关联默认应用程序命令行 Windows 10 UserChoice 哈希内部方法


评分

参与人数 1无忧币 +5 收起 理由
ppll2030 + 5 很给力!

查看全部评分

2#
 楼主| 发表于 2023-8-21 18:30:45 | 显示全部楼层
hlowld 发表于 2023-8-21 15:40
最新版Win10和Win11中,通过修改注册表来关联文件类型的方法已失效,详情可参考www。cnblogs.com/h2zZhou/p ...

https://github.com/DanysysTeam/SFTA/ 居然没找到下载的,百度不出来,必应下载了一个SFTA:
https://danysys.com/set-file-typ ... sh-internal-method/
回复

使用道具 举报

3#
 楼主| 发表于 2023-8-21 21:53:08 | 显示全部楼层
本帖最后由 9zhmke 于 2023-8-21 21:54 编辑

重写了个图片关联,果然成功了:
  1. @echo off
  2. pushd "%~dp0"
  3. setlocal enabledelayedexpansion
  4. del tmp.reg >nul 2>nul
  5. set p=%cd:\=\\%
  6. set "exe=xnviewmp.exe"
  7. set "pid=XnViewMP"

  8. :Copy configuration
  9. md "%APPDATA%\%pid%"
  10. copy /y xnview.ini "%APPDATA%\%pid%"

  11. for %%i in (raw,crw,cr2,raf,dcr,mrw,nef,orf,pef,srf,x3f,iff,sgi,xbm,xpm,emf,pcx,tga,png,bmp,jpg,jpeg,gif,ico,psd,tif,tiff,ais,ani,cur,emf,eps,lwf,webp,wmf,heic) do SFTA.exe --reg "%cd%\%exe%" ".%%i" "%pid%"
复制代码

点评

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=436205&extra= 9zhmke 大大,能帮我关联一下这个应用吗?我没有看懂你们写的。  详情 回复 发表于 2023-8-21 22:46
回复

使用道具 举报

4#
 楼主| 发表于 2023-8-21 23:49:27 | 显示全部楼层
本帖最后由 9zhmke 于 2023-8-22 00:20 编辑

没试你那个软件,你可以参照这个PDF关联的写法:
SFTA.exe --reg "%cd%\PDFXEdit.exe" ".pdf" "PDF-XChangeViewer"
把上面这段加到你之前的绿化批处理末尾就可以了,记着把软件名和软件识别名改成你的,把SFTA.exe放在同一目录下面。比如,用稻壳阅读器时,程序名是DocBox.exe,软件识别名是DocBox,就可以在末尾添加:
  1. set "exe=DocBox.exe"
  2. set "pid=DocBox"
  3. for %%i in (caj,pdf,chm,xdf,epub,mobi,azw,azw3,ofd,xps,md,djvu,cbz,cb7,cbr,umd,pdb,palm) do SFTA.exe --reg "%cd%\%exe%" ".%%i" "%pid%"
复制代码
又比如说Mplayer,可以用以下代码:
  1. set movies=3gp,3gp2,asf,avi,avs,divx,evo,flv,m1v,m2v,m4b,m4p,m4v,mkva,mp4a,rmvba,mkv,mov,mp4,mpeg,mpg,ogm,pmp,pss,pva,tpr,qt,rm,rmvb,tp,ts,vob,vp6,wmv,webm,pls
  2. cd /d "%~dp0%"
  3. set "exe=PotPlayerMini64.exe"
  4. set "pid=PotPlayer"
  5. for %%i in (%movies%) do SFTA.exe --reg "%cd%\%exe%" ".%%i" "%pid%"
复制代码



点评

非常感谢大大,我去试一下。  详情 回复 发表于 2023-8-23 12:08
回复

使用道具 举报

5#
 楼主| 发表于 2023-8-23 22:35:12 | 显示全部楼层
wjgyz740526 发表于 2023-8-23 17:30
win11试了下,360极速浏览器,文件关联全部成功,但默认浏览器还是不正确,不知道是哪儿的注册表没打上

浏览器估计你要按四楼的方法修改

点评

是的,主要是手头没有360极速浏览器设置为默认浏览器的注册表,明天虚拟机装个win7导出来试试  详情 回复 发表于 2023-8-23 22:44
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-5-15 03:02

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表