2017-11-27 7 views
1

Ich habe ein Problem beim Öffnen einer PDF-Datei mit Process.Start(). Das Programm führt den Prozess als Hintergrundprozess aus, aber es wird kein Adobe Reader-Fenster angezeigt. Eine Lösung, die ich gefunden habe, war chrome.exe, aber mein Client möchte auf Adobe-Reader öffnen, da es das Standard-Windows-Programm ist.Diagnostics.Process öffnet keine PDF-Datei mit Adobe Reader

(Ich habe auch versucht, ohne "AcroRd32.exe" zu zwingen und den vollständigen Pfad von "AcroRd32.exe" übergeben. Das gleiche Problem).

Wer hat das gelöst?

Mein Code:

var p = new Process 
{ 
    StartInfo = new ProcessStartInfo(@"AcroRd32.exe", @"D:\Tests\81803130000326__.pdf") 
}; 
p.Start(); 

Hintergrundprozesse:

Background Process image

Ich habe auch diese Frage geprüft: Process.Start(/* path to pdf */) doesn't work with Adobe Reader on Windows 8

Edits

EDIT INFO: Vergessen zu sagen, dass ich von Windows 10 mit Adobe Reader DC renne 2018.009.20044

EDIT 2: Fand ein "Problem" von Adobe Reader DC. Es gibt ein Sicherheitsniveau, das mich nicht als Administrator laufen lässt (frag mich nicht warum). Überprüfen Sie diesen Link für weitere Informationen: https://forums.adobe.com/thread/1955530

Jetzt werde ich versuchen, eine Lösung zu finden, es ohne Administratorrechte ausgeführt werden, oder fragen Sie meinen Klienten das Kontrollkästchen

Lösung

So zu deaktivieren, ich habe eine Lösung für mein Problem gefunden. Der Adobe Reader hat seit der Version 10.0 eine "Protected Mode" Einstellung. Ich habe einen Code geschrieben, um diese Einstellung in der Registrierung zu ändern, damit der Benutzer dies nicht tun muss. Link: https://www.adobe.com/devnet-docs/acrobatetk/tools/AppSec/protectedmode.html

Ich hoffe, es hilft anderen in der Zukunft!

Lösungscode:

var registroAdobe = Registry.LocalMachine.OpenSubKey(@"Software\Policies\Adobe\Acrobat Reader\DC\", true); 
registroAdobe.SetValue("bProtectedMode", 0); 

Dies funktioniert für Acrobat Reader DC. Sie können "Software \ Policies \ Adobe \" Produkte und Versionen ausführen, wenn Sie sie benötigen.

+1

Versuchen Sie, den vollständigen Pfad zu AcroRd32.exe zu übergeben. – Botonomous

+0

Ich öffne direkt die PDF-Datei 'System.Diagnostics.Process.Start (" output.pdf ");', verwenden Sie den Standard-PDF-Viewer, den Sie auf Ihrem Computer installiert haben. –

+0

@Botonomous Wie ich schon sagte, ich habe das gleiche Problem :( – Wesley

Antwort

0

Sie können direkt System.Diagnostics.Process.Start ("") verwenden, um mit dem Standard-PDFreader-Programm auf dem jeweiligen Client-System zu öffnen.

Verwandte Themen