无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 2050|回复: 4
打印 上一主题 下一主题

[已解决] 前几日有个Win10关联命令行工具的帖子谁知道在哪?

[复制链接]
跳转到指定楼层
1#
发表于 2023-9-12 10:25:31 来自手机 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 nttwqz 于 2023-9-13 00:10 编辑

想研究以下竟然如何斗找不到了,好几个区翻了好半天,也不知道这个帖子的标题怎么命名的。

分别尝试了以下关键字,均未找到
10
11
Win10
关联


有人

尝试


已找到
一个程序,一个PS脚本
SFTA_1.3.1.7z (74.01 KB, 下载次数: 11)
SFTA_PS.7z (4.96 KB, 下载次数: 8)
另一个作者写的PS脚本
  1. <#
  2. Set-UserFTA
  3.         Set File Type Association Default Application Command Line Windows 10
  4. Usage
  5.         .\Set-UserFTA.ps1 -Ext <extension> -ProgId <progid>
  6. Example
  7.         .\Set-UserFTA.ps1 -Ext ".txt" -ProgId "txtfile"
  8.         .\Set-UserFTA.ps1 -Ext ".pdf" -ProgId "AcroExch.Document.DC"
  9.         .\Set-UserFTA.ps1 -Ext ".htm" -ProgId "ChromeHTML"
  10. #>

  11. param([string]$Ext, [string]$ProgId)
  12. function Calc-Value($a, $b, $c){return ($a * $c + $b * ($c -shr 0x10)) -band 0xFFFFFFFFL}
  13. function Get-MSHash([byte[]]$MD5, [string]$Data)
  14. {
  15.         $MD51 = [BitConverter]::ToUInt32($MD5, 0) -bor 1
  16.         $MD52 = [BitConverter]::ToUInt32($MD5, 4) -bor 1
  17.         for ($i = 0; $i -lt [uint32][math]::Floor($Data.length / 4); $i++)
  18.         {
  19.                 $D = ([uint32]$Data[$i * 4 + 0]) + ([uint32]$Data[$i * 4 + 1] -shl 0x10)
  20.                 $X0 = ($D + $X1) -band 0xFFFFFFFFL
  21.                 $X1 = ($MD51 * $X0) -band 0xFFFFFFFFL
  22.                 $X0 = Calc-Value 0x69FB0000L 0xEF0569FBL $X0
  23.                 $X1 = ($X1 + $X0) -band 0xFFFFFFFFL
  24.                 $X1 = Calc-Value 0x79F8A395L 0x689B6B9FL $X1
  25.                 $X1 = Calc-Value 0xEA970001L 0xC3EFEA97L $X1
  26.                 $Y0 = ($D + $Y1) -band 0xFFFFFFFFL
  27.                 $Y1 = ($MD51 * $Y0) -band 0xFFFFFFFFL
  28.                 $Y1 = Calc-Value 0xB1110000L 0xCF98B111L $Y1
  29.                 $Y1 = Calc-Value 0x5B9F0000L 0x87085B9FL $Y1
  30.                 $Y1 = Calc-Value 0xB96D0000L 0x12CEB96DL $Y1
  31.                 $Y1 = Calc-Value 0x1D830000L 0x257E1D83L $Y1
  32.                 $X2 = ($X1 + $X2) -band 0xFFFFFFFFL
  33.                 $Y2 = ($Y1 + $Y2) -band 0xFFFFFFFFL
  34.                 $D = ([uint32]$Data[$i * 4 + 2]) + ([uint32]$Data[$i * 4 + 3] -shl 0x10)
  35.                 $X0 = ($D + $X1) -band 0xFFFFFFFFL
  36.                 $X1 = ($MD52 * $X0) -band 0xFFFFFFFFL
  37.                 $X0 = Calc-Value 0x13DB0000L 0xC31713DBL $X0
  38.                 $X1 = ($X1 + $X0) -band 0xFFFFFFFFL
  39.                 $X1 = Calc-Value 0x59C3AF2DL 0xDDCD1F0FL $X1
  40.                 $X1 = Calc-Value 0x1EC90001L 0x35BD1EC9L $X1
  41.                 $X2 = ($X1 + $X2) -band 0xFFFFFFFFL
  42.                 $Y0 = ($D + $Y1) -band 0xFFFFFFFFL
  43.                 $Y1 = ($MD52 * $Y0) -band 0xFFFFFFFFL
  44.                 $Y1 = Calc-Value 0x16F50000L 0xA27416F5L $Y1
  45.                 $Y1 = Calc-Value 0x96FF0000L 0xD38396FFL $Y1
  46.                 $Y1 = Calc-Value 0x2B890000L 0x7C932B89L $Y1
  47.                 $Y1 = Calc-Value 0x9F690000L 0xBFA49F69L $Y1
  48.                 $Y2 = ($Y1 + $Y2) -band 0xFFFFFFFFL
  49.         }
  50.         $H1 = [uint64]($X1 -bxor $Y1)
  51.         $H2 = [uint64]($X2 -bxor $Y2)
  52.         $H0 = [uint64](($H2 -shl 32) + $H1)
  53.         $MSHash = [BitConverter]::GetBytes($H0)
  54.         Write-Output $MSHash
  55. }

  56. $Time = ([uint64][math]::Floor((Get-Date).ToFileTime() / 600000000L) * 600000000L).ToString("X16")
  57. $SID = ([System.Security.Principal.WindowsIdentity]::GetCurrent()).User.Value
  58. $UserExp = "user choice set via windows user experience {d18b6dd5-6124-4341-9318-804003bafa0b}"
  59. $Data = (($Ext + $SID + $ProgId + $Time + $UserExp) + "`0").ToLower()
  60. $MD5 = [System.Security.Cryptography.HashAlgorithm]::Create("MD5").ComputeHash([System.Text.Encoding]::Unicode.GetBytes($Data))
  61. $MSHash = Get-MSHash $MD5 $Data
  62. $Hash = [Convert]::ToBase64String($MSHash)
  63. echo $Hash

  64. $Path = "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts" + $Ext + "\UserChoice"
  65. $Key = "HKCU:" + $Path
  66. if (-not (Test-Path $Key)) { New-Item $Key | Out-Null }
  67. $Reg = [Microsoft.Win32.Registry]::CurrentUser.OpenSubKey($Path,[Microsoft.Win32.RegistryKeyPermissionCheck]::ReadWriteSubTree,[System.Security.AccessControl.RegistryRights]::ChangePermissions)
  68. $Acl = $Reg.GetAccessControl()
  69. $Rules = $Acl.Access | ? {$_.AccessControlType -eq 'Deny' -and $_.RegistryRights -eq "SetValue"}
  70. Foreach ($Rule in $Rules) {$Acl.RemoveAccessRule($Rule) | Out-Null}
  71. $Reg.SetAccessControl($Acl)
  72. Set-ItemProperty -Path $Key -Name "ProgId" -Value $ProgId -Type "String"
  73. Set-ItemProperty -Path $Key -Name "Hash" -Value $Hash -Type "String"
复制代码




来自 2#
发表于 2023-9-12 11:04:48 | 只看该作者
SetUserFTA   ?

评分

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

查看全部评分

回复

使用道具 举报

5#
发表于 2023-9-13 06:44:04 来自手机 | 只看该作者
nttwqz 发表于 2023-9-12 23:56
我发现,好东西总是被挡在墙外,SFTA的官方danysys.com在我这儿无法访问。。。

win11试了下,360极速浏览器,文件关联全部成功,但默认浏览器还是不正确。

昨天我尝试找出关键的注册表项,突然发现,新版本的360浏览器用下面的参数又可以了
--make-default-browser

今天试试新版浏览器+这个工具
回复

使用道具 举报

4#
 楼主| 发表于 2023-9-12 23:56:32 | 只看该作者
dnine999 发表于 2023-9-12 23:28
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=436996

我发现,好东西总是被挡在墙外,SFTA的官方danysys.com在我这儿无法访问。。。

点评

win11试了下,360极速浏览器,文件关联全部成功,但默认浏览器还是不正确。 昨天我尝试找出关键的注册表项,突然发现,新版本的360浏览器用下面的参数又可以了 --make-default-browser 今天试试新版浏览器+这  详情 回复 发表于 2023-9-13 06:44
回复

使用道具 举报

3#
发表于 2023-9-12 23:28:07 | 只看该作者

点评

我发现,好东西总是被挡在墙外,SFTA的官方danysys.com在我这儿无法访问。。。  详情 回复 发表于 2023-9-12 23:56

评分

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

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-26 12:15

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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