Autor Beitrag
hawe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Sa 23.09.06 14:32 
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:
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ß:
www.experts-exchange...plus/Q_20304590.html

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

Besten Dank für eure Hilfe.
hawe Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 17



BeitragVerfasst: Mo 25.09.06 21:36 
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.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
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:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{FCADDC14-BD46-408A-9842-CDBE1C6D37EB}] 

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

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


Besten Dank.
Einloggen, um Attachments anzusehen!