Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi AcroPdf rechtsklick verhindern (https://www.delphipraxis.net/163947-acropdf-rechtsklick-verhindern.html)

froschprinz 23. Okt 2011 09:50


AcroPdf rechtsklick verhindern
 
Hallo zusammen,

ich habe ein Problem. Ich habe ein Form mit der ActiveX Komponente AcroPDF. Da der Benutzer nichts machen soll auser lesen und scrollen habe ich alle Leisten erfolgreich ausgeblendet. Nur den Rechtsklick kann ich nicht verhindern.
Ich habe es bisher mit ApplicationEvents versucht:

Delphi-Quellcode:
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
  var Handled: Boolean);
begin
  if (Msg.Message = WM_RBUTTONDOWN) or (Msg.Message = WM_RBUTTONDBLCLK) then
   begin
     beep;
     Handled :=IsChild(AcroPDF1.Handle, Msg.hwnd);
   end;
end;
Aber es funktioniert so nicht - des Beep wird nicht bei einem Rechtsklick ausgeführt.

Habt ihr da 'ne Idee????

Bummi 23. Okt 2011 10:17

AW: AcroPdf rechtsklick verhindern
 
eigentlich handelt es sich um eine fremde Anwendung, die bei Dir gedockt dargestellt wird.
Es ist die Frage ob Du an das "Windowproc" der darstellenden Komponente herankommst, oder ob Du Dich relativ in die MouseEvents hooken musst. Hier bin ich aber absolut nicht firm.

froschprinz 23. Okt 2011 18:43

AW: AcroPdf rechtsklick verhindern
 
Ich denke auch, dass es über einen Moushook gehen könnte. Aber da verstehe ich leider auch nix davon.
Hat jemand den Quellcode für eine Hook dll, die einen Rechtsklick der Mouse verhindert (nicht weiterleitet)?

himitsu 23. Okt 2011 19:53

AW: AcroPdf rechtsklick verhindern
 
Wie wäre es, wenn du einfach eine transparente Komponente über das PDF-Dingens legst, alles Mausereignisse abfängst und nur die Gewollten an das PDF-Teil weiterleitest?

Man könnte auch das PDF auf ein Bitmap zeichnen lassen und zeigt Dieses dann an.

froschprinz 23. Okt 2011 20:09

AW: AcroPdf rechtsklick verhindern
 
Über ein AcroPDF kann mann leider nichts legen - Images und Co treten immer dahinter zurück.

Wie mann eine PDF auf ein Bitmap legt, weis ich nicht. Dann funktioniert das scrollen aber auch nicht mehr.

omata 23. Okt 2011 20:59

AW: AcroPdf rechtsklick verhindern
 
Zitat:

Zitat von himitsu (Beitrag 1132078)
Man könnte auch das PDF auf ein Bitmap zeichnen lassen und zeigt Dieses dann an.

Wie geht das konkret? Geht das mit der AcroPDF-Komponente? Oder meinst du das mit Ghostscript umrendern?

Wäre toll, wenn du das nochmal genauer erklären könntest.

Furtbichler 24. Okt 2011 06:44

AW: AcroPdf rechtsklick verhindern
 
Also Quelltext für Mousehooks findest Du über Googel zuhauf. Könnte aber sein, das Du einen globalen Mousehook benötigst. Und der geht nur mit einer DLL.

Luckie 24. Okt 2011 09:04

AW: AcroPdf rechtsklick verhindern
 
Wieso denn global? Er braucht es doch nur für seine Anwendung oder?

himitsu 24. Okt 2011 09:35

AW: AcroPdf rechtsklick verhindern
 
Zitat:

Zitat von Luckie (Beitrag 1132140)
Wieso denn global? Er braucht es doch nur für seine Anwendung oder?

(Nur) Für den PDF-Reader.

Wie schon erwähnt, ist das eine externe Anwendung (man schaue gerne mal in den Taskmanager) welche ihre Form "nur" bei seiner Anwendung eingebettet hat.
Die ganze Messagebehandlung dieser Form verbleibt aber dennoch in der anderen Anwendung.

Bernhard Geyer 24. Okt 2011 09:46

AW: AcroPdf rechtsklick verhindern
 
Zitat:

Zitat von himitsu (Beitrag 1132148)
Wie schon erwähnt, ist das eine externe Anwendung (man schaue gerne mal in den Taskmanager) welche ihre Form "nur" bei seiner Anwendung eingebettet hat.

Dieser blödsinn ist glücklicherweise Geschichte. Ab V9/V10 wird keine externe App mit Fenstereinbeddung gestartet sondern das ActiveX mit der Programmlogik ist komplett eingebettet.

Sieht man auch daran:

AcroRd32.dll 24 MB
AcroRd32.exe 1,5 MB

Jetzt reicht es bei einem Amoklaufenden Acrobat nur noch die Exe abzuschießen und nicht noch nach Arcobat-Exe's im Taskmanager zu suchen :-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:40 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz