【发布时间】:2016-11-30 13:33:10
【问题描述】:
在网上搜索了很多都没有成功,我在这里寻求帮助。
这个问题似乎很简单,但不幸的是我无法解决它。
我想更改默认应用程序以打开 .txt 文件。例如,我不想使用记事本,而是使用位于C:\Program Files\Windows NT\Accessories\wordpad.exe的写字板
所以我尝试更改注册表:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.txt\OpenWithProgids,但没有成功。
我还找到了一个尝试更改组策略的解决方案。此代码如下所示:
string tempFile = Path.GetTempFileName();
string xmlFile = tempFile.Replace(".tmp", ".xml");
File.Move(tempFile, xmlFile);
XDocument document = new XDocument(new XElement("DefaultAssociations",
new XElement("Association",
new XAttribute("Identifier", ".txt"),
new XAttribute("ProgId", "txtFile"),
new XAttribute("ApplicationName", "Editor"))));
document.Save(xmlFile);
ComputerGroupPolicyObject.SetPolicySetting(@"HKLM\Software\Policies\Microsoft\Windows\System!DefaultAssociationsConfiguration",
xmlFile, RegistryValueKind.String);
但这也行不通。
我也尝试使用带有ftype 的命令行,但这也没有用。
谁能告诉我如何更改给定文件类型的关联应用程序?
【问题讨论】:
-
不工作是什么意思?
-
想要以编程方式执行这是一件相当奇怪的事情。唯一应该更改其默认应用程序的人是用户,而不是您的程序。这有点像“我的应用程序太棒了,它应该是你默认的一切!”情况。
-
@CodyGray -- 嗯,我使用过的大量商业软件产品让您可以选择设置某些文件扩展名以使用它们的应用程序。我看不出有什么问题,只要应用程序在不告诉用户的情况下不这样做。
-
not work表示默认应用没有改变 -
奇怪的是我的电脑没有 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer ...所以这可以解释为什么它不起作用..它在 HKEY_LOCAL_MACHINE....