gpt4 book ai didi

windows - 如何以编程方式删除以前的扩展<->程序附属关系?

转载 作者:可可西里 更新时间:2023-11-01 10:24:04 25 4
gpt4 key购买 nike

我想编写一个批处理文件,以确保当用户单击 .JNLP 文件时,它会使用 javaws.exe 打开(位于 program files/java/... 你懂的)

我编写了以下批处理文件:

ASSOC .jnlp=JNLPFILE
IF EXIST "%ProgramFiles% (x86)" (GOTO x86) ELSE (GOTO x64)
:x86
FTYPE JNLPFILE="%ProgramFiles% (x86)\Java\jre7\bin\javaws.exe" "%1"
goto:eof
:x64
FTYPE JNLPFILE="%ProgramFiles%\Java\jre7\bin\javaws.exe" "%1"

我正在 64 位 Windows 7 中测试这一切。

这...行不通。嗯,这并不完全准确。它会正确修改注册表,并将 .jnlp 添加到建议运行的 Windows 程序列表中。它做的正是它应该做的。

但这并没有解决我的问题。请参阅,为了进行测试,我使用记事本转到默认程序和关联的 .jnlp 文件。当我尝试打开 .Jnlp 文件时,IT 尝试在记事本中打开,即使我的代码已经运行。

如果我在 .jnlp 上使用打开方式,它会让我选择使用记事本或 javaws.exe 打开如果我使用 ASSOC 运行我的代码,它会添加 javaws.exe 的第二个选项

我试过 ASSOC .jnlp=""和 FTYPE JNLPFILE=""来尝试清除记事本,但没有成功。

如何让我的批处理文件取消之前的设置并在机器上确立其主导地位?

编辑:使用下面的答案,我在批处理文件的开头添加了一个命令,它应该可以解决我的问题并使事情正常进行。

REG DELETE HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jnlp /f

最佳答案

Windows 资源管理器为用户保留自己的文件扩展名列表。

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts

要从此列表中删除程序,请从

中删除程序条目
  • HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.‌​jnlp\OpenWithList
  • HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jnlp\OpenWithProgIDs

并在

中设置所需的UserChoice Progid
  • HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.jnlp\UserChoice

另请注意,OpenWithList 和 OpenWithProgids 可以设置为多个级别。

  • HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.xyz\OpenWithList
  • HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.xyz\OpenWithProgIDs
  • HKCR\.xyz\OpenWithList
  • HKCR\.xyz\OpenWithProgIDs
  • HKCR\SystemFileAssociations\FileType\OpenWithList

关于windows - 如何以编程方式删除以前的扩展<->程序附属关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22792650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com