Delphi-PRAXiS
Seite 2 von 3     12 3      

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)

Luckie 24. Okt 2011 09:57

AW: AcroPdf rechtsklick verhindern
 
Zitat:

Zitat von himitsu (Beitrag 1132148)
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.

Wer macht denn so ein Blödsinn? Ich dachte das wäre ein einfaches ActiveX Objekt in seiner Anwendung.

himitsu 24. Okt 2011 10:01

AW: AcroPdf rechtsklick verhindern
 
Das kommt drauf an, z.B. das Acrobat-Plugin im FF scheint dennoch die EXE zu sein.

Eine PDF dort aufgemacht, sind sofort zwei AcroRd32.exe zu finden.


PS: Wenn die DLL ein Out-Of-Process-Server wäre, dann würde die Aussage dennoch stimmen. :angle2:

Bernhard Geyer 24. Okt 2011 10:06

AW: AcroPdf rechtsklick verhindern
 
Zitat:

Zitat von himitsu (Beitrag 1132162)
Das kommt drauf an, z.B. das Acrobat-Plugin im FF scheint dennoch die EXE zu sein.

Eine PDF dort aufgemacht, sind sofort zwei AcroRd32.exe zu finden.

Kann ich mit V10 von Acrobat nicht nachvollziehen. Evt. ohne deinstallation von älteren Versionen hochgezogen oder noch alte Version?
Bei Adobe zerschießt ein Versionsupdate ohne vorherige Deinstallation regelmäßig die Installation.

Bernhard Geyer 24. Okt 2011 10:08

AW: AcroPdf rechtsklick verhindern
 
Zitat:

Zitat von Luckie (Beitrag 1132159)
Wer macht denn so ein Blödsinn? Ich dachte das wäre ein einfaches ActiveX Objekt in seiner Anwendung.

Machen einige. Bei einer verwendeten Komponente ist das sogar von Vorteil da man damit auch eine 64-App in einer 32-Bit App einbedden kann da nur der ActiveX-Wrapper als 32-Bit Version vorliegen muss.

himitsu 24. Okt 2011 10:13

AW: AcroPdf rechtsklick verhindern
 
Keine Ahnung. Mein Reader X meint er wäre aktuell. Aber soweit ich mich erinnere, hatte ich hier den X direkt installiert. (vor paar Monaten alles neu draufgemacht)

Wobei der im Browser eh nervt, wenn er sich mal wieder die Mausereignisse (z.B. Scrollen) grabscht, obwohl er eigentlich auf dem inaktiven Tab nur rumgammeln sollte.


Zitat:

Machen einige. Bei einer verwendeten Komponente ist das sogar von Vorteil da ...
Und Probleme in der Fremdanwendung lassen nicht unbedingt gleich die eigene Anwendung mit verrecken.

omata 24. Okt 2011 18:01

AW: AcroPdf rechtsklick verhindern
 
@himitsu: Schade, dass du auf meine Frage nicht eingegangen bist.

himitsu 24. Okt 2011 21:04

AW: AcroPdf rechtsklick verhindern
 
Dafür müßte ich wissen, wie man die Beiden einbindet, um den Unterschied zu kennen. :stupid:
Ich seh halt nur öfters, daß einige Programme irgendwie die EXE nutzen.

Ich könnte ja mal nachsehn, was bei unserem Programm eingebunden wird (EXE oder DLL) ... daß wie weiß ich noch in etwa, wo das stand.

froschprinz 25. Okt 2011 15:43

AW: AcroPdf rechtsklick verhindern
 
o.k.
ich habs mit einem Moushook gelöst. Sobald die PDF aufgerufen wird starte ich den Hook und nach dem Schließen beende ich ihn wieder. Funktioniert ganz gut. Dies könnte evt. auch für andere Anwendungen brauchbar sein, wenn ich sicher(und Systhemweit) den Rechtsklick verhindern will.

Der Quelltext der Dll ist einfacher als gedacht:

Delphi-Quellcode:
library MouseHook;

uses
  Windows, Messages;

{$J+}
const
  Hook: HHook = 0;
{$J-}


{$R *.res}

function HookProc(nCode: Integer; MsgID: WParam; Data: LParam): LResult; stdcall;
begin

 if (MsgID = WM_RBUTTONDOWN) or (MsgID = WM_RBUTTONUP) then
 begin
  //tue nichts
 end else begin
   Result := CallNextHookEx(Hook,nCode,MsgID,Data);
 end;
end;

procedure HookMouse; stdcall;
begin
  if Hook = 0 then Hook:=SetWindowsHookEx(WH_MOUSE,@HookProc,HInstance,0);
end;

procedure UnHookMouse; stdcall;
begin
  UnhookWindowsHookEx(Hook);
  Hook:=0;
end;

exports
  HookMouse, UnHookMouse;
begin

end.

Luckie 25. Okt 2011 15:49

AW: AcroPdf rechtsklick verhindern
 
Kann es sein, dass du damit alle rechts Klicks in allen Anwendungen verhinderst? Ich hoffe du sagst das den Benutzern, wenn das der Fall ist. Denn ich glaube, ich würde irre werden, bis ich herausfinde, dass es an deinem Programm liegt. Und dann würdest du von mir eine ziemlich böse E-Mail bekommen. ;)

froschprinz 25. Okt 2011 16:03

AW: AcroPdf rechtsklick verhindern
 
Danke für den Hinweis.Das siehst du genau richtig!

Aber das ist ja gerade der Sinn der Sache.

Meine Anwendung ist eine, die vom Benutzer nicht verlassen werden kann(darf). Sie läuft auf öffentlichen Terminals. Darum will ich ja den Rechtsklick verhindern, da sonst der böse Benutzer des Kontextmenü aufrufen und blödes Zeug anstellen darf!


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:17 Uhr.
Seite 2 von 3     12 3      

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