AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Installationspfad einer DLL herausfinden?
Thema durchsuchen
Ansicht
Themen-Optionen

Installationspfad einer DLL herausfinden?

Ein Thema von mjenke · begonnen am 14. Dez 2006 · letzter Beitrag vom 14. Dez 2006
Antwort Antwort
mjenke

Registriert seit: 28. Mär 2003
Ort: Bonn
131 Beiträge
 
#1

Installationspfad einer DLL herausfinden?

  Alt 14. Dez 2006, 08:29
Guten Morgen, alle miteinander!


Weiß jemand, wie ich in einer DLL ihren Installations-Pfad herausfinden kann?

Hintergrund ist folgender. Ich schreibe gerade eine Word-AddIn. Dieses wird als DLL realisiert und von Word beim Start automatisch geladen. Diese DLL soll nun aber eine Xml-Datei auslesen, die sich standardmäßig im gleichen Verzeichnis befinden soll, in dem auch die DLL liegt.

Auf meinem Rechner wäre das alles kein Problem, da ich natürlich weiß, wo die DLL liegt, ich könnte also den Pfad fest angeben. Da es sich um eine DLL handelt, die aber auf unterschiedlichen Rechnern installiert werden soll, und ich nicht verlangen kann (kann ich leider wirklich nicht), dass diese DLL immer im gleichen Verzeichnis installiert wird, muss die aus der DLL benutzte Klasse bei der Initialisierung selbst herausfinden können, wo sie liegt.

Um diese DLL nutzen zu können, muss sie zunächst als ActiveX-Server registriert werden (das ist ein weiteres Problem, das bei der Installation gelöst werden muss, aber dazu ein andern mal). Die Schlüsselnummern werden - wenn ich das richtig sehe - vom System dynamisch vergeben und können (und werden) auf jedem Rechner unterschiedlich aussehen. Also kann ich auch nicht einfach nach einer festen Schlüsselnummer in der Registry suchen.

Eine weitere Alternative wäre, bei der Installation einen festen Schlüssel in die Registry einzutragen, in welchen der Installationspfad eingetragen wird (so nach dem Motto HKEY_LOCAL_MACHINE/Firmenname/Produkname/InstallPath... diese Alternative bevorzugt ein Kollege von mir). Das läßt mich aber ein wenig unbefriedigt...

Ich hoffe, dass meine Beschreibung oben jetzt nicht zu sehr Kraut-und-Rüben war... Mein Problem ist also: Weiß eine DLL, wenn sie geladen wird, wo sie liegt? Und wenn ja, wie bringe ich sie dazu, es mir mitzuteilen?


Falls mir jemand weiterhelfen könnte wäre das super!



Matthias
Matthias Jenke
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Installationspfad einer DLL herausfinden?

  Alt 14. Dez 2006, 08:34
Hallo Matthias,

ich mache es so:

Delphi-Quellcode:
function GetModuleFileName(h: HMODULE): String;
var
  modName: array [0 .. MAX_PATH] of Char;
begin
  SetString(Result, modName, Windows.GetModuleFileName (h, modName, SizeOf (modName)));
end;

function GetModuleName: String;
begin
  if IsLibrary
    then Result := GetModuleFileName(HInstance)
    else Result := ParamStr (0);
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
mjenke

Registriert seit: 28. Mär 2003
Ort: Bonn
131 Beiträge
 
#3

Re: Installationspfad einer DLL herausfinden?

  Alt 14. Dez 2006, 08:45
Super!!! Klappt astrein!!!

Vielen Dank!

Matthias Jenke
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:08 Uhr.
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