Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Browser Helper Object (BHO): Menu im InternetExplorer (https://www.delphipraxis.net/77697-browser-helper-object-bho-menu-im-internetexplorer.html)

hawe 23. Sep 2006 13:28


Browser Helper Object (BHO): Menu im InternetExplorer
 
Hi!

Ich habe ein Programm gesehen, dass in jeder Instanz des IE ein Menu direkt rechts neben dem "?" (also auf oberster Menuebene) einfügt und über die Untereinträge bestimmte Webseiten aufruft. Das wurde mit einem BHO erreicht, und ich habe hier herausgefunden, wie man ein solches in Delphi schreibt:
http://www.bsalsa.com/ie_tools_bho.html

Wie ich nun aber ein Menu hinzufügen könnte bzw. auf deren Klicks reagieren könnte, weiß ich noch nicht. Ich habe einen kleinen Hinweis gefunden, das ich evtl. das IDocHostUIHandler Interface implementieren muß:
http://www.experts-exchange.com/Prog..._20304590.html

Oder kann ich etwas mit dem Handle (HWND) des Browserfensters anfangen?

Besten Dank für eure Hilfe.

hawe 25. Sep 2006 20:58

Re: Browser Helper Object (BHO): Menu im InternetExplorer
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

mittlerweile habe ich das Interface IDocHostUIHandler implementiert und unter ShowUI es sogar geschafft an den Menus rumzuspielen. Wie aber kann ich die alten Menupunkte behalten und einfach was neues hinzufügen? Vllt. könnt ihr es mal ausprobieren, Anhang liegt bei.

Delphi-Quellcode:
   
var mgw: tagOleMenuGroupWidths;
  li: TMenuItem;
  mdesc: HMENU;
begin
  pframe.InsertMenus(HelperForm.MainMenu1.Handle, mgw);

  mdesc := OleCreateMenuDescriptor(HelperForm.MainMenu1.Handle, mgw);
  pFrame.SetMenu(HelperForm.MainMenu1.Handle, mdesc, HelperForm.Handle);


  Result := S_OK;
Nach dem Kompilieren die CLSID registrieren, z.B. Registry-Einträge hinzufügen:

Zitat:

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{FCADDC1 4-BD46-408A-9842-CDBE1C6D37EB}]

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curr entVersion\explorer\Browser Helper Objects\{FCADDC14-BD46-408A-9842-CDBE1C6D37EB}

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{FCADDC1 4-BD46-408A-9842-CDBE1C6D37EB}\InprocServer32]
@="pfad\zur\DLL"
"ThreadingModel"="Apartment"
Besten Dank.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:16 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