AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi [gelöst] Systemdienst möglichst früh starten
Thema durchsuchen
Ansicht
Themen-Optionen

[gelöst] Systemdienst möglichst früh starten

Ein Thema von Link00y · begonnen am 27. Jul 2009 · letzter Beitrag vom 27. Jul 2009
Antwort Antwort
Link00y

Registriert seit: 7. Jun 2005
2 Beiträge
 
#1

[gelöst] Systemdienst möglichst früh starten

  Alt 27. Jul 2009, 09:10
Hallo Delphianer,

ich schlage mich im Moment auf meinem Laptop mit der Entwicklung eines Delphi-Systemdienstes.

Kurze Erläuterung: auf meiner Arbeit dürfen wir unsere Laptops auf Wunsch verwenden, eine Sache, die mir recht gut gefällt, da man so bequem in eigener Umgebung arbeiten kann. Nur hat bei meinem Laptop sich eine kleine Tücke eingeschlichen: das WLAN muss normalerweise über eine Taste aktiviert werden, diese Taste geht jedoch nur wenn das Programm pm.exe von Fujitsu Siemens (liegt normal im Autostart) läuft. Anmelden an der Firmendomäne ist so nicht möglich, da am Anmelde-Bildschirm pm.exe nicht läuft. Ich habe mich umgesehen und gefunden: findige Linux-Junkies haben die Funktion aus pm.exe dokumentiert um sie bei Linux zu integrieren - ich habe mich rangesetzt und einen WLAN-Activator-Service für Windows gebastelt. Der arbeitet auch, sobald der Dienst läuft, ist die WLAN-Leuchte an.

Jetzt zum Problem: ich kann beim Anmelde-Bildschirm gute 2 bis 3 Minuten warten bis die Leuchte angeht, der Dienst wird mit sehr sehr geringer Priorität scheinbar behandelt. Wenn ich mich fix lokal anmelde werden sogar viele Dinge des Autostarts bevorzugt gestartet.

Wenn ich nun den Service-Start von stAuto auf stSystem (stBoot soll ja laut Windows eher für Dateisysteme und IDE-Treiber dienen und so hoch ist die Priorität nun auch nicht) stelle.. ändert sich nichts (ja ich habe /uninstall und /install neu ausgeführt). Ein Blick in die registry zeigt: HKEY_LOCAL_MACHINE\System\CurrentControlSet\servic es\WLANSrv - Start steht auf 00000002 (Auto).. na gut, stelle ich dies manuell auf 00000001 (System).. Neustart: Erfolg.. der Dienst kann überhaupt nicht gestartet werden - zur Info: der Dienst ist eine EXE-Datei, er sollte keine Abhängigkeiten haben (außer an eine statisch verlinkte DLL) und benötigt keine Interaktion zum Windows-Desktop. Er hat auf seinem "Formular" (oder wie man das nennt) nur einen Timer (dieser dient dazu in regelmäßigen Abständen (5 Sekunden) den Aktivier-Befehl an die Hardware zu senden.. damit auch nach einem Ruhezustand oder Standby-Modus wo die Leuchte wieder ausgeht, der Dienst sie wieder aktiviert).

Tja und jetzt bleibt für mich: Wie kann ich sicherstellen, dass dieser Dienst so früh wie möglich gestartet wird, damit an meinem Laptop so früh wie möglich das WLAN zur Verfügung steht?

Danke schön,

Julian
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#2

Re: Systemdienst möglichst früh starten

  Alt 27. Jul 2009, 10:07
Hallo,

es folgt der Versuch einer Hilfestellung.

Bitte starte mal regedt32.

Dort wechselst Du nach
Code:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder
und merkst Dir die erste Zeichenfolge in der dort aufgeführten List(e) (bei meinen Systemen scheint das immer System zu sein).

nun wechselt Du bitte nach
Code:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services
und dann zu Deinem Dienst.
Auf der rechten Seite solltest Du dann diverse Einträge finden, wie Start, Type, DisplayName...
U. a. gibt es auch einen Eintrag Group. Sofern nicht vorhanden bitte anlegen und dort die gemerkte Zeichenfolge eintragen.

Damit ist nicht gewährleistet, dass Dein Dienst als erster Dienst startet, aber zumindest in der Gruppe der Systemdienste, die als erstes gestartet werden.

Wenn Du mutig bist:

Ergänze die Liste bei
Code:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder
am Anfang durch einen neuen Eintrag, die Du Deinem Dienst bei Group zuweist, damit müsste Dein Dienst dann als erster Dienst gestartet werden.

Ob Dein Rechner damit dann noch startet, weiß ich nicht, es könnte für ihn auch ein finales Ereignis werden
  Mit Zitat antworten Zitat
Link00y

Registriert seit: 7. Jun 2005
2 Beiträge
 
#3

Re: Systemdienst möglichst früh starten

  Alt 27. Jul 2009, 10:21
Danke schön,

ich habe mir da mir klar war, dass da was in die Hose gehen kann, schon eine Sicherung der Registry in einer Wiederherstellungs-Konsole angelegt. Aber:

Danke schön! Ich habe den Dienst auf System Reserved gesetzt und bereits während der "Windows wird gestartet"-Anzeige ging die WLAN-Leuchte an. Anmeldung an der Domäne war (fast) sofort möglich (erste Eingabe schlug fehl, ich denke aber, dass er einfach noch keine Verbindung zum Router hatte oder noch keine IP per DHCP bekam). Auf jeden Fall: geklappt hat es.

Danke schön!
  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 12:26 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