다음과 같은 것을 사용할 수 있습니다
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 \ 소프트웨어 마이크로 소프트 \ 윈도우 \ CurrentVersion \ Explorer \ FileExts.pdf \ UserChoice \", 편집 -> 권한을 누르고 모든 응용 프로그램 패키지를 "모든 권한"으로 변경하십시오.
캐치 : 것을이 일을 할 때 "앱은 .PDF 파일의 기본 응용 프로그램 설정에 문제가 발생이 마이크로 소프트 가장자리에 다시 그래서,"
윈도우 10로, 당신은 알림을받을 수 있습니다. 이것은 Microsoft에서 앱이 프로그래밍 방식으로 기본값을 수정하지 못하도록하려는 것입니다.
해결
은 여기에 있습니다 :
http://www.winhelponline.com/blog/windows-10-resetting-file-associations/
해당 페이지에서 REG 파일을 다운로드 먼저 레지스트리와 병합 -이 기본값을 재설정에서 마이크로 소프트의 응용 프로그램을 방지 할 수 있습니다. (큰 변화를주기 전에 레지스트리를 백업해라!)
이것은 아주 해킹 된 것이므로 사용자를 기본 프로그램 대화 상자로 안내하는 것이 훨씬 낫다는 것을 유의하십시오.
대신이 작업을 수행하려면
"경로"열 수있는 PDF 파일의 전체 경로입니다
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();
}
.
이 작업을 수행 할 수는 있지만 설정을 잘못 사용하면 사용자를 괴롭 히게됩니다. – DavidG
기본 프로그램 설정이 컴퓨터 레지스트리에 저장됩니다 ... 이것은 프로그램이 레지스트리를 편집해야한다는 것을 의미합니다 :) [도움이 될만한 것] (https://superuser.com/questions/436939/) where-is-the-default-program-associations-in-the-registry) –
위의 링크에서 삭제할 수 없습니다. 레지스트리 키를 사용하여 시스템의 기본 PDF 리더를 변경할 수 있는지 여부를 알려주십시오. 그렇다면 코드로 설명하십시오. 업데이트 주셔서 감사합니다. –