![]() |
pdf aus TWebbrowser speichern - Dialog hinter dem Programm
Hallo zusammen,
wir verwenden TWebbrowser in unserem Programm um pdfs anzuzeigen. Klickt nun der Benutzer auf "Kopie speichern unter" wird der "Speichern unter"-Dialog hinter der Anwendung. Was kann ich tun, damit der Dialog vor der Anwendung erscheint? Wir verwenden Delphi 2006. Der Acrobat Reader hat die Versionnummer X 10.1.1 Vielen Dank und Grüsse Stefan |
AW: pdf aus TWebbrowser speichern - Dialog hinter dem Programm
Ich nehme an, der Dialog ist modal? Dafür habe ich mir mal eine Unit geschrieben, da mir ein solches Verhalten auch auf den Keks ging. Bei Bedarf kann ich die mal raussuchen.
|
AW: pdf aus TWebbrowser speichern - Dialog hinter dem Programm
Zitat:
Und ihr verwendet nicht irgendwo StayOnTop oder sowas? |
AW: pdf aus TWebbrowser speichern - Dialog hinter dem Programm
Ist ein Bug vom Adobe Reader.
Tritt soweit wir es gesehen habe nur unter XP mit der 10.1er Version auf. Die 10.0er und ältere Versionen gehen. W2k und Win7 geht auch. Kannst du das mit XP bestätigen oder hast du das Problem auch unter W2k/Win7? kannst du es auch mal mit der brandneuen 10.1.2er Version probieren? |
AW: pdf aus TWebbrowser speichern - Dialog hinter dem Programm
Liste der Anhänge anzeigen (Anzahl: 1)
Es passiert mit Windows Vista und 7. Andere Versionen konnte ich nicht testen.
Der Benutzer klickt in der Webbrowser-Komponente auf den Button von Adobe. Da ein Bild mehr sagt als 1000 Worte, hänge ich einen Screenshot an. Ist das Programm im Vollbildmodus ist der "Speichern unter"-Dialog natürlich völlig unsichtbar. |
AW: pdf aus TWebbrowser speichern - Dialog hinter dem Programm
Vielleicht hilft es, das Form auf den Desktop zu "kleben"?
Beispiel-Code:
Delphi-Quellcode:
Dann kann eigentlich nichts mehr dahinter sein ;-)
type
TfrmMain = class(TForm) ... private // public // protected procedure CreateParams(var Params: TCreateParams); override; end; var frmMain: TfrmMain; implementation {$R *.dfm} procedure TfrmMain.CreateParams(var Params: TCreateParams); begin inherited CreateParams(Params); if Assigned(Application.MainForm) then begin Params.WndParent := GetDesktopWindow; Params.Style := WS_CHILD; end; end; |
AW: pdf aus TWebbrowser speichern - Dialog hinter dem Programm
Danke Progman,
ich habe deinen Code ausprobiert. Leider funktioniert es immer noch nicht. Als ich Test halber den Acrobat Reader 9 installiert habe, funktioniert es perfekt. Mir ist aufgefallen dass der Speichern-Dialog das Icon unserer Anwendung hatte. Mit aktuellen Acrobat Reader (10.1.2) hat der Dialog das normale Windows-Speichern-Icon. Es scheint das Adobe da etwas grundlegendes geändert hat. |
AW: pdf aus TWebbrowser speichern - Dialog hinter dem Programm
Hab gerade gesehen das die die aktuelle 10er Version immer noch den gleichen Fehler hat :-(
Lösung wäre ein Hooking der entsprechenden Win32-API-Funktion um dieser einen korrekten Fensterhandle zu geben |
AW: pdf aus TWebbrowser speichern - Dialog hinter dem Programm
Mit dem Umstellen des folgenden Registry-Keys kann man das unerwünschte Verhalten des Acrobat Readers ändern:
[HKEY_CURRENT_USER\Software\Adobe\Acrobat Reader\10.0\Privileged] "bProtectedMode"=dword:00000000 |
AW: pdf aus TWebbrowser speichern - Dialog hinter dem Programm
Danke für den Tipp :thumb:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz