AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi "Die Beschreibung der Ereigniskennung" unterdrücken?
Thema durchsuchen
Ansicht
Themen-Optionen

"Die Beschreibung der Ereigniskennung" unterdrücken?

Ein Thema von pduck · begonnen am 2. Mär 2006 · letzter Beitrag vom 7. Nov 2017
Antwort Antwort
pduck

Registriert seit: 2. Mär 2006
11 Beiträge
 
Delphi 2006 Professional
 
#1

Re: "Die Beschreibung der Ereigniskennung" unterdr

  Alt 10. Mär 2006, 15:02
So mittlerweile habe ich mich durch verschiedene Antwortschnippsel gearbeitet. Es führt wohl kein Weg um das Einbinden einer Ressourcen-DLL herum.

Der einfachste Weg (meiner Ansicht nach) sei hier beschrieben:

1. Erstellen einer Ressourcendatei mit dem XN Ressource Editor:
-> AddRessource vom type MessageTable
-> AddString mit ID=0 und String=%1 (%1 reicht den Ereignisstring durch!)
-> Speichern als .res Datei

2. Erstellen eines DLL Projekts und Einbinden der Ressource {$R XYZ.res}. Als DLL kompilieren.

3. In der TService-Unit im ServiceAfterInstall-Trigger sicherstellen, dass ein entsprechender Registry Schlüssel mit Verweis auf die DLL erstellt wird.

Z.B. so:
Delphi-Quellcode:
procedure TNASWatchdog.ServiceAfterInstall(Sender: TService);
const STR_REGKEY_SVC = '\SYSTEM\CurrentControlSet\Services\';
      STR_REGKEY_EVENTMSG = '\SYSTEM\CurrentControlSet\Services\Eventlog\Application\';
      STR_REGVAL_EVENTMESSAGEFILE = 'EventMessageFile';
      STR_REGVAL_TYPESSUPPORTED = 'TypesSupported';
      STR_REGVAL_CONFIGFILE = 'ConfigurationFile';
      STR_REGVAL_IMAGEPATH = 'ImagePath';
      NWDServiceEventDLLName = 'WDEventLogMsg.dll';

var Reg : TRegistry;
    ImagePath : string;

begin
  try
    Reg:=TRegistry.Create;
    Reg.RootKey:=HKEY_LOCAL_MACHINE;

    if Reg.OpenKey(STR_REGKEY_SVC + self.Name,False) then
      begin
        ImagePath:=Reg.ReadString(STR_REGVAL_IMAGEPATH);
        Reg.WriteString(STR_REGVAL_CONFIGFILE,ExtractfilePath(ImagePath) + TWD_Config.GetDefaultConfigFileName());
        Reg.CloseKey;
      end;

    if Reg.OpenKey(STR_REGKEY_EVENTMSG + self.Name,True) then
      begin
        Reg.WriteString(STR_REGVAL_EVENTMESSAGEFILE,ExtractfilePath(ImagePath) + NWDServiceEventDLLName);
        Reg.WriteInteger(STR_REGVAL_TYPESSUPPORTED,7);
        Reg.CloseKey;
      end;

    FreeAndNil(Reg);

  except
   if Assigned(Reg) then
     FreeAndNil(Reg);
  end;
end;
4. Dienst installieren und testen.
  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 00:46 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