not*_*bit 6 excel powershell cmd
我正在尝试更改文件关联,以便在另一个浏览器中打开 Excel 单元格中的 URL。根据 (CMD)ftype命令的使用Excel.UriLink.16,我应该能够使用以下命令从 powershell (通过 cmd)执行此操作:
# To change it:\ncmd /c \'ftype Excel.UriLink.16=C:\\Program Files\\BraveSoftware\\Brave-Browser\\Application\\brave.exe "--single-argument" "%1"\'\n\n# The original is: \n# cmd /c ftype | findstr /i "excel.uri"\n# Excel.UriLink.16=C:\\Program Files\\Microsoft Office\\Root\\Office16\\protocolhandler.exe "%1"\nRun Code Online (Sandbox Code Playgroud)\n这似乎根本没有效果,并且总是会在默认浏览器中打开该 URL。
\n什么控制着 Excel 打开 URL 以及如何更改它?
\n更新: 2022-07-30
遵循此处的另一个 SO ,声明要检查:
\nHKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\*\\UserChoice
和:
\n(Get-ItemProperty HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts\\*\\UserChoice -Name ProgId).ProgID | Where-Object -FilterScript{ $_ -like "*HTM*"}\nRun Code Online (Sandbox Code Playgroud)\n输出:
\nFirefoxHTML-308046B0AF4A39CB\nFirefoxHTML-308046B0AF4A39CB\nMSEdgeHTM\nMSEdgeHTM\nMSEdgeHTM\nRun Code Online (Sandbox Code Playgroud)\n不幸的是没有帮助。
\n我开始更好地理解它是如何工作的,看起来它深深地隐藏在操作系统中。这个看似未记录的程序protocolhandler.exe负责处理所有 URI 的打开方式。
此外,assoc显示.URL=InternetShortcut, 链接到:
\n InternetShortcut="C:\\WINDOWS\\system32\\rundll32.exe" "C:\\WINDOWS\\system32\\ieframe.dll",OpenURL %l。
检查其他人,我们发现:
\n# (cmd /c ftype |Select-String protocol |Select-String excel ) -replace ("=","=`t")\n\nExcel.UriLink.16= C:\\Program Files\\Microsoft Office\\Root\\Office16\\protocolhandler.exe "%1"\nms-excel= C:\\Program Files\\Microsoft Office\\Root\\Office16\\protocolhandler.exe "%1"\nRun Code Online (Sandbox Code Playgroud)\nURI如 MS 文档、uri-schemes和 Excel\n 信息所示Hyperlinks,该程序需要能够处理任何事情...
更新: 2022-07-31
assoc显然,和的可见用法ftype只是确定(FTA )的烟雾弹。根据这个SU的回答、MS assoc XML和安全研究人员博客,自Win8以来,Win10+中文件的关联方式已经完全改变,阻止用户通过散列关联来控制它,以确保用户无法轻易更改它们。File Type Associations
要查询文件关联 XML,可以使用:
\n# Run as Admin\nDism.exe /online /export-defaultappassociations:.\\myCurrentFileAssoc.xml\n\n...\n<Association Identifier=".url" ProgId="IE.AssocFile.URL" />\n...\n\n# If there are any errors, you can find a LOG file in:\nC:\\WINDOWS\\Logs\\DISM\\dism.log\nRun Code Online (Sandbox Code Playgroud)\n用于查询和更改这些的非官方工具*有:
\n (*非官方,因为 MS 不希望您模拟文件关联。)
[1] SetUserFTA - 下载:SetUserFTA.zip
\n[2] SetDefaultBrowser - 下载:SetDefaultBrowser.zip
\n\n\n重要提示:
\n
\n必须在用户SetUserFTA上下文中运行,而不是使用管理或系统权限。有时,计时可能很重要,请确保它在加载用户配置文件后运行。
运行它:
\n# SetUserFTA.exe get | Select-String url\n\n.url, IE.AssocFile.URL\nhttp, FirefoxURL-308046B0AF4A39CB\nhttps, FirefoxURL-308046B0AF4A39CB\n\n# To see all installed browsers\n# SetDefaultBrowser.exe\n\n...\nHKLM Brave\n name: Brave\n path: "C:\\Program Files\\BraveSoftware\\Brave-Browser\\Application\\brave.exe"\n...\nRun Code Online (Sandbox Code Playgroud)\n您还可以按照此处的说明关联便携式浏览器。
\n\xe2\x9b\x94 处理 Excel 关联仍然没有进展...
\n这不是答案,但在类似情况下可能会有所帮助。
我设法使用不同(非默认)浏览器有条件地从 Excel 单元格打开 URL 的唯一方法是使用 VBA 代码片段并将其添加到Microsoft Excel Objects. 这有几个缺点,但也有一个惊喜。
Drawbacks:
*.xlsx为*.xlsmSurprise:
Long-Click单元格上的 可以用来分隔用于打开超链接URL 的浏览器。这与单击超链接与单元格的空白部分相结合。换句话说,短按(匹配的)超链接将打开默认浏览器,而长按将在(编码的)浏览器中打开 URL。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
Dim Link As String
Dim bravePath As String
Link = Target.Value
bravePath = """C:\Program Files\BraveSoftware\Brave-Browser\Application\brave.exe"""
SubString = "bing"
If InStr(Link, SubString) <> 0 Then
'if str contains 'bing'
'Call OpenBrave
'Application.Run "Module1.OpenBrave", Link
Shell (bravePath & " -tab " & Link)
'ElseIf InStr(Link, SubString) = 0 Then
'if str does not contain it
'Call OpenDefault
'MsgBox "That is a normal URL", , "No Party Like This"
'ActiveWorkbook.FollowHyperlink Address:=Link, NewWindow:=True, AddHistory:=True
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我注释掉了ActiveWorkbook.FollowHyperlink(默认行为),因为不需要它,并且可以用其他浏览器替换。
这就是它的样子。
再次添加 VBA 代码:
*.xlsm类型Left-click在工作表选项卡上并选择View Code完毕!
| 归档时间: |
|
| 查看次数: |
741 次 |
| 最近记录: |