gpt4 book ai didi

javascript - 以编程方式更改默认 PDF 阅读器?

转载 作者:太空宇宙 更新时间:2023-11-04 15:48:47 28 4
gpt4 key购买 nike

是否可以通过编程方式更改 Windows 中的默认 PDF 阅读器。

例如

如果我的机器中的默认阅读器是“Foxit”,但我需要在 C# 或 javascript 中将默认阅读器应用程序更改为“Adobe”。我通过多种方式进行搜索。但我没有得到解决方案。

这可能吗。请提出您的答案。

最佳答案

如果您的应用程序具有管理员权限,您可以使用如下内容:

public enum Readers
{
AdobeReader = 0,
FoxitReader = 1
}

Dictionary<int, string> _PDFReaders = new Dictionary<int, string>()
{
{ 0,"AcroExch.Document.DC" },
{ 1, "FoxitReader.Document" }
};

public void SetPDFDefault(Readers program)
{
string nVal = _PDFReaders[(int)program];
Registry.SetValue(@"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pdf\UserChoice",
"ProgId", nVal,RegistryValueKind.String);
}

然后您可以使用 SetPDFDefault(Readers.AdobeReader); 更改默认值。

编辑:

您可能需要更改注册表值的权限 - 为此,请运行 regedit,导航至“HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts.pdf\UserChoice”,按“编辑 --> 权限”,并将所有应用程序包更改为“完全控制”。

捕获:

从 Windows 10 开始,执行此操作时您可能会收到一条通知:“某个应用导致 .pdf 文件的默认应用设置出现问题,因此已重置为 Microsoft Edge”。 Microsoft 试图阻止应用程序像这样以编程方式修改默认值。

解决方法在这里:http://www.winhelponline.com/blog/windows-10-resetting-file-associations/

从该页面下载 REG 文件并首先将其与注册表合并 - 它可以防止 Microsoft 的应用程序重置默认值。 (在进行重大更改之前备份注册表!!)

请注意,这相当麻烦,最好直接将用户引导至默认程序对话框。

要执行此操作:

public void ShowDefaultDialog(string path)
{
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.EnableRaisingEvents = false;
proc.StartInfo.FileName = "rundll32.exe";
proc.StartInfo.Arguments = "shell32,OpenAs_RunDLL " + path;
proc.Start();
}

其中“path”是要打开的 PDF 文件的完整路径。

关于javascript - 以编程方式更改默认 PDF 阅读器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43322661/

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