Problem z otwieraniem plików pdf w Acrobat Reader

0

Witam
Mam program na Windows napisany w Lazarusie 1.6.4 (win32) FPC 3.0.2, a w nim pod OnClick buttona otwieranie konkretnego pliku pdf w domyślnej przeglądarce pdf.

var 
sciezka: string;
...
sciezka:=ExtractFilePath(Application.ExeName)+'pliki\stany_magazynowe\zestawienie_zbiorcze.pdf';
...
ShellExecute(0,'open',PChar(sciezka),nil,nil,1);

zamiennie próbowałem także użyć OpenDocument:

var 
sciezka: string;
...
sciezka:=ExtractFilePath(Application.ExeName)+'pliki\stany_magazynowe\zestawienie_zbiorcze.pdf';
...
OpenDocument(PChar(sciezka)); 

Jeśli jako domyślną przeglądarką plików pdf jest np. FoxitReader czy Firefox to po kliknięciu na przycisk w programie (niezależnie od tego czy użyłem ShellExecute czy OpenDocument) wskazany plik pdf jest otwieramy w przeglądarce, ale jeśli domyślną przeglądarką jest Adobe Reader to widać w menedżerze zadań że proces Adobe Reader się uruchamia ale nic poza tym, okno przeglądarki z dokumentem pdf się nie pokazuje i Adobe Reader przestaje się uruchamiać do kolejnego restartu. Co ciekawe jeśli Adobe Reader jest uruchomiony (otwarty jest w nim jakiś plik pdf) to plik pdf otwiera się w nim (w kolejnej zakładce) bez problemu.
Program pracuje na Windows 10/64bit i dotyczy każdego komputera na którym jest konfiguracja Windows10 + Adobe Reader.
Na komputerach z Win7 32bit + Adobe Reader wszystko działa bez problemu.
W czym może być problem?

pozdrawiam

0

sprawdzałem na windows 10 x64 i Adobe Reader i nie mogę potwierdzić takiego zachowania. Może jest coś jest nie tak u Ciebie z systemem. Jak się zachowuje po uruchomieniu pliku pdf w wierszu poleceń?

0

@Paweł Dmitruk: Gdyby to był problem na jednym komputerze to rozumiem, ale identycznie zachowuje się na wszystkich o podobnej konfiguracji.
Z poziomu wiersza poleceń pliki pdf uruchamiają się bez problemu.

1

To może rozwiąż to w inny sposób, np wbuduj w aplikację przeglądarkę pdf opartą na pdfium. Źródła komponentu oraz aplikacji przykładowej pobierzesz z: https://forum.lazarus.freepascal.org/index.php/topic,40938.msg303557.html . Musisz też pobrać plik PDFium.dll - link znajdziesz w treści posta.

0

@Paweł Dmitruk: Z tego co widzę użycie Executeprocess rozwiązuje problem i wszystko działa jak powinno. :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1