Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Dienst "Wiederherstellen"-Option einstellen (https://www.delphipraxis.net/84813-dienst-wiederherstellen-option-einstellen.html)

Phoenix 25. Jan 2007 21:06

Re: Dienst "Wiederherstellen"-Option einstellen
 
Zitat:

Zitat von Olli
Zitat:

Zitat von gsh
Geh mal Systemsteuerung -> Verwaltung -> Dienste
Dort klickst du auf einen dienst rechts drauf -> Eigenschaften
Dort gibt es einen Reiter "Wiederherstellung". Genau des meine ich

Ah, gut. Danke.

Dazu benutzt du MSDN-Library durchsuchenQueryServiceConfig2 und MSDN-Library durchsuchenChangeServiceConfig2 jeweils mit SERVICE_CONFIG_FAILURE_ACTIONS und der SERVICE_FAILURE_ACTIONS-Struktur. Sollte bei JEDI-Apilib enthalten sein ...

Das bedeutet Du kennst das schon *g*
Unter welcher Bezeichnung läuft das bei Dir, Olli? ;-)

Olli 25. Jan 2007 21:08

Re: Dienst "Wiederherstellen"-Option einstellen
 
Zitat:

Zitat von Phoenix
Das bedeutet Du kennst das schon *g*
Unter welcher Bezeichnung läuft das bei Dir, Olli? ;-)

Nunja, da ich meinen Code (ja, auch den privaten) auf Englisch kommentiere tendiere ich zum englischen Begriff oder einer direkten Uebersetzung.

Nachtrag: Sagen wir mal so, die Tatsache, dass ich (als ich noch die Zeit dazu hatte) mich wild durch's PSDK gewuehlt habe, zahlt sich noch immer aus *g*

gsh 25. Jan 2007 21:23

Re: Dienst "Wiederherstellen"-Option einstellen
 
Zitat:

Zitat von Olli
Ah, gut. Danke.

Dazu benutzt du MSDN-Library durchsuchenQueryServiceConfig2 und MSDN-Library durchsuchenChangeServiceConfig2 jeweils mit SERVICE_CONFIG_FAILURE_ACTIONS und der SERVICE_FAILURE_ACTIONS-Struktur. Sollte bei JEDI-Apilib enthalten sein ...

hmm ja sagt mir nichts :mrgreen:
Ich hab mich noch nie wirklich in der msdn zurecht gefunden. Ich verstehs einfach nicht :stupid:

JEDI-Apilib? Sagt mir auch nichts

Olli 25. Jan 2007 21:50

Re: Dienst "Wiederherstellen"-Option einstellen
 
Zitat:

Zitat von gsh
Zitat:

Zitat von Olli
Ah, gut. Danke.

Dazu benutzt du MSDN-Library durchsuchenQueryServiceConfig2 und MSDN-Library durchsuchenChangeServiceConfig2 jeweils mit SERVICE_CONFIG_FAILURE_ACTIONS und der SERVICE_FAILURE_ACTIONS-Struktur. Sollte bei JEDI-Apilib enthalten sein ...

hmm ja sagt mir nichts :mrgreen:
Ich hab mich noch nie wirklich in der msdn zurecht gefunden. Ich verstehs einfach nicht :stupid:

Das waere Minimalanforderung an jeden Windowsprogrammierer :zwinker:

Zitat:

Zitat von gsh
JEDI-Apilib? Sagt mir auch nichts

http://jedi-apilib.sf.net ... moegliche Bugs darfste auch gleich an mich weiterleiten :zwinker:

gsh 26. Jan 2007 12:43

Re: Dienst "Wiederherstellen"-Option einstellen
 
Zitat:

Zitat von Olli
http://jedi-apilib.sf.net ... moegliche Bugs darfste auch gleich an mich weiterleiten :zwinker:

hmm ich hab mir des mal geholt. hab auch glaub ich die richtige datei gefunden "JwaWinSvc.pas"
Auch die Functionen hab ich gefunden
Delphi-Quellcode:
function ChangeServiceConfig(hService: SC_HANDLE; dwServiceType, dwStartType,
  dwErrorControl: DWORD; lpBinaryPathName, lpLoadOrderGroup: LPCTSTR;
  lpdwTagId: LPDWORD; lpDependencies, lpServiceStartName, lpPassword,
  lpDisplayName: LPCTSTR): BOOL; stdcall;
{$EXTERNALSYM ChangeServiceConfig}
aber da kann ich ja keine Wiederherstellungsoptionen einstellen oder?

gsh 26. Jan 2007 12:56

Re: Dienst "Wiederherstellen"-Option einstellen
 
hab was anderes gefunden:
Und zwar in der Regedit:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\{ ServiceName}
Da sind die einstellungen von einem Service. Und dort gibt es auch einen schlüssel names: FailureActions
Da sind aber leider alles nur binärdaten drinnen:

Beispiel (Ohne eine Aktion):
Code:
00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 4E 00 42 00 00 00 00 00 60 EA 00 00 00 00 00 00 60 EA 00 00 00 00 00 00 00 00 00 00
Beispiel (1. Aktion: Dienst neustarten):
Code:
00 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 4E 00 42 00 01 00 00 00 60 EA 00 00 00 00 00 00 60 EA 00 00 00 00 00 00 00 00 00 00
Aber des konnte problematisch werden wenn ich des direkt änder. Oder?

Olli 26. Jan 2007 14:08

Re: Dienst "Wiederherstellen"-Option einstellen
 
Zitat:

Zitat von gsh
hab was anderes gefunden:
Aber des konnte problematisch werden wenn ich des direkt änder. Oder?

Jupp, könnte es. Daher solltest du einfach besagte API benutzen. Mach mal bitte folgendes: miste deinen Service so aus, daß nichts mehr drin ist außer dem eigentlichen Service-Kram. Also kein Server usw. und schicke mir das Ergebnis zu! Ich werde mich bemühen dir schnellstmöglich ein angepaßtes Beispiel zukommen zu lassen. Ich nehme nämlich an, daß du irgendeine Service-Komponente/Klasse benutzt und nicht den Standardweg. Daher dieser Umweg.

gsh 26. Jan 2007 14:21

Re: Dienst "Wiederherstellen"-Option einstellen
 
Zitat:

Zitat von Olli
Jupp, könnte es. Daher solltest du einfach besagte API benutzen. Mach mal bitte folgendes: miste deinen Service so aus, daß nichts mehr drin ist außer dem eigentlichen Service-Kram. Also kein Server usw. und schicke mir das Ergebnis zu! Ich werde mich bemühen dir schnellstmöglich ein angepaßtes Beispiel zukommen zu lassen. Ich nehme nämlich an, daß du irgendeine Service-Komponente/Klasse benutzt und nicht den Standardweg. Daher dieser Umweg.

Was? Wenn ich alles raushaue dann kann ich ja gleich schon einfach auf Neu-> Service-Anwendung klicken. :gruebel:
Die zwei standart funktionen sind immer noch vorhanden:
Delphi-Quellcode:
procedure ServiceController(CtrlCode: DWord); stdcall;
begin
  LibraServerService.Controller(CtrlCode);
end;

function TLibraServerService.GetServiceController: TServiceController;
begin
  Result := ServiceController;
end;
und der service ist immer noch von der klasse class(TService). Also was soll anderes sein?

Olli 26. Jan 2007 23:54

Re: Dienst "Wiederherstellen"-Option einstellen
 
Zitat:

Zitat von gsh
und der service ist immer noch von der klasse class(TService). Also was soll anderes sein?

Ich weiß nicht, vermutlich könnte sein, daß ich zu doof zur Telepathie bin und es ja nur ein paar dutzend verschiedene Möglichkeiten gibt, wie man nun konkret die Implementation vornimmt :roll: ... oder vielleicht ist mir (und dem Forum als du Absenden geklickt hast) ja entgangen, daß du TService geschrieben hast? Da ich leider ein bißchen blöde bin, konnte ich diesen meinen Fehler ja nicht bemerken.

Also weiß nicht, einer der Gründe wird's wohl gewesen sein :wall:

gsh 27. Jan 2007 10:08

Re: Dienst "Wiederherstellen"-Option einstellen
 
Zitat:

Zitat von Olli
Ich weiß nicht, vermutlich könnte sein, daß ich zu doof zur Telepathie bin und es ja nur ein paar dutzend verschiedene Möglichkeiten gibt, wie man nun konkret die Implementation vornimmt :roll: ... oder vielleicht ist mir (und dem Forum als du Absenden geklickt hast) ja entgangen, daß du TService geschrieben hast? Da ich leider ein bißchen blöde bin, konnte ich diesen meinen Fehler ja nicht bemerken.

Ich hab ganz am anfang geschrieben des ich einen dienst habe also imho ein TService. Ich weiss ja nicht wie man sonst noch services schreibt. Aber ich hab es mir ganz einfach mit Neu -> Service-Anwendung gemacht :mrgreen:
Und wie kann ich jetzt mit einem TService des einstellen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:10 Uhr.
Seite 2 von 3     12 3      

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