![]() |
Wie spricht man ShellExtentions an
Ich habe in den Delphi-Demos (Delphi5) ein Beispiel gefunden, wie man eine DLL erzeugt, die sich in die Windowskontextmenüs einhängt. Wenn ich jezt auf ein Verzeichnis rechts klicke, erscheint mein PRogramm (die DLL) mit im Kontextmenü und lässt sich auch öffnen. Die DLL listet mir alle Dateien aus dem Verzeichnis auf. Soweit so gut. Jetzt möchte ich eine Anbindung an diese DLL schreiben. Also ich habe ein eigenen kleinen Dateibrowser geschrieben und ich möchte, dass man da auch diese DLL ansprechen kann. Ich mein, ein Popupmenü mit der DirectoryListBox zu verbinden, ist kein Ackt, aber wie rufe ich jetzt die DLL auf und wie übergebe ich ihr den Verzeichnispfad?
Das Demo ist zu finden unter <DELPHIPROGRAMMDIR>\Demos\ActivX\shellext\contmenu .dpr Ich muss auch dazu sagen, dass ich kaum bis keine Kenntnisse über ActivX und COM-Objecten habe. Wenn jemand ein gut verstänndliches Tutorial kennt, wäre ich ihm sehr verbunden, wenn er die URL posten könnte. |
Re: Wie spricht man ShellExtentions an
Zwar hab ich nicht ganz kapiert, was dein Problem ist, aber ich schätze
dieser ![]() |
Re: Wie spricht man ShellExtentions an
Hey, danke für das Tutorial. Genau das habe ich gesucht.
Ich habe das jetzt überarbeitet und es funktioniert schon ganz gut, nur dass ich ne Exception beim Programmende bekomme (EInvalidPointer). Jetzt stellt sich die Frage, woher kommt dieser Fehler und noch besser, wie bekommt man ihn weg? Hier mal nen Auszu auf meinen Quelltexten:
Delphi-Quellcode:
und jetzt mein Hauptprogramm, was den Fehler am Ende bringt:
library DirListor;
uses ShareMem, Windows, ComServ, untMain in 'untMain.pas', DirlistorDlg in 'DirlistorDlg.pas' {Form_Dirlistor}; {$R DIRLISTOR.res} procedure StartDirListor(APath : string); var Dialog : TForm_DirListor; begin try Dialog := TForm_DirListor.Create(nil); Dialog.FileName := APath; Dialog.ShowModal; finally Dialog.Free; end; // of try end; exports DllGetClassObject, DllCanUnloadNow, DllRegisterServer, DllUnregisterServer, StartDirListor; begin end.
Delphi-Quellcode:
unit AnbindungsDlg;
interface uses ShareMem, Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DirListorDlg; procedure StartDirListor(APath : string); type TForm_Anbindung = class(TForm) Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); end; var Form_Anbindung: TForm_Anbindung; implementation {$R *.DFM} procedure StartDirListor(APath : string); external 'DirListor.dll'; procedure TForm_Anbindung.Button1Click(Sender: TObject); begin StartDirListor('C:\Windows\'); end; procedure TForm_Anbindung.Button2Click(Sender: TObject); begin Self.Close; end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:26 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