无忧启动论坛

标题: 前几日有个Win10关联命令行工具的帖子谁知道在哪? [打印本页]

作者: nttwqz    时间: 2023-9-12 10:25
标题: 前几日有个Win10关联命令行工具的帖子谁知道在哪?
本帖最后由 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"
复制代码





作者: hua_wuxin    时间: 2023-9-12 11:04
SetUserFTA   ?
作者: dnine999    时间: 2023-9-12 23:28
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=436996
作者: nttwqz    时间: 2023-9-12 23:56
dnine999 发表于 2023-9-12 23:28
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=436996

我发现,好东西总是被挡在墙外,SFTA的官方danysys.com在我这儿无法访问。。。
作者: wjgyz740526    时间: 2023-9-13 06:44
nttwqz 发表于 2023-9-12 23:56
我发现,好东西总是被挡在墙外,SFTA的官方danysys.com在我这儿无法访问。。。

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

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

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




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