Windows Dienst
-
Hi!
Ich hab Windows XP und will aber nen Windowsdienst schreiben, der auf nem Windows 98 System laufen soll. Geht der Dinest aufm 98 genauso wie aufm XP?
MfG
Jojo
-
Win9x kennt überhaupt keine Dienste!!!
-
noch ne Frage:
Kann ich in nem Dienst ein Ereignis auffangen?
( Microsoft.Win32.SystemEvents.DisplaySettingsChanged )
Weil der macht das bei mir nicht...
-
jo, das wollt ich wissen...
dange
-
Oder kann mir jemand sagen, wie ich rauskriegen könnt, ob ich in nem Dienst Events abfangen kann oder ned, weil in der msdn find ich nix...
-
Heieiei, nochma ganz von vorne:
Ich will ein Programm schreiben, dass beim herunterfahren des PC-s ein script (*.bat) ausführen soll. da dieses script die registry ändern soll, soll das script als system process ablaufen, da die user nicht das recht haben, die registry zu ändern. ist sowas möglich?
Ich hänge nur an der tatsache, dass bei mir das script als user process läuft...
-
welches Beriebsystem?
-
windof 2000 und xp
kleine frage am rande: wie kann ich nen dinest debuggen?
-
in VS: Menü Debugen/Prozesse...
aus der Prozessenliste dein Dienst auswählen, dann "Anfügen" klicken.
im next'en Fenster beim Programmtyp "Common Language Runtime" anhacken und mit OK bestätigen.das prog muss natürlich in debugmodus erstellt werden.
-
ah, danke.
jetzt fängt er events ab...
jetzt noch ne kleine abschlussfrage:
wenn der dienst installiert ist, kann ich im windows (xp) einstellen, dass der dienst interaktionen mit dem desktop machen kann. kann ich das so einstellen, das das nachm installieren automatisch schon der fall ist? Bei der ServiceBase klasse find ich dazu kein Property... (gibts wahrscheinlich auch ned) geht das auch irgendwie anders?Grüsse,
Jojo
-
sieh dir mal die ServiceType-Eigenschaft von der ServiceController-Klasse an.
-
ah, cool, das habich gebraucht. vielen dank für deine mühe.
Grüsse,
Jojo
-
oh nein, heut is glaub nich mein tag:
ServiceController service = new ServiceController( "ScriptService" ); service.ServiceType = ServiceType.InteractiveProcess;
fehler: (57): Einer Eigenschaft oder einem Indexer 'System.ServiceProcess.ServiceController.ServiceType' kann nicht zugewiesen werden -- sie sind schreibgeschützt
Wieso sind die auf einmal schreibgeschütz? Der Sinn des ServiceControlers liegt doch darin, Dienste zu manipulieren?!
-
Es ist doch auch nicht der ServiceController schreibgeschützt, sondern die Eigenschaft ServiceType. Diese Eigenschaft ist von Haus aus schreibgeschützt.
-
das hab ich ja gemerkt, aber ich wollte ja gerade diese eigenschaft des dienstes ändern...
-
habe gerade bei der Beschreibung von ServiceType-Enumeration rausgelesen:
Die Erstellung interaktiver Dienste wird nicht unterstützt. Um dieses Problem zu umgehen, können Sie einen nicht interaktiven Dienst und eine separat gesteuerte grafische Benutzeroberflächenanwendung erstellen, die mit dem Dienst über Sockets oder Remoting kommuniziert.
Da wird man noch auf die Remoting-Beispielseite verwiesen...
-
wenn du Probleme mit Remoting hast, kann ich dir sicher weiterhelfen
-
Ja, das wär nett, aber ich versuchs erstmal selber.
Jetzt muss ich erstmal zum Fussball spielen, danach wag ich mich da mal ran.
Grüße, Jojo
-
ich hab ma drüber nachgedacht.
mir erscheint das ein bisschen umständlich, dass ich ne seperate benutzeroberfläche bau, die ich dann irgendwie nach der installation automatisch starte, und die dann automatisch den ServiceType des Dienstes ändert ( mit remoting, oder wie auch immer ) und die sich dann selber schließt.
ich versteh ned, dass wenn es schon eine klasse ServiceController gibt, wieso die dann nich direkt den Service manipulieren kann.
-
was hast du eigentlich vor.
-
ich will einfach nur nen dienst installieren, der datenaustausch mit dem desktop zulässt, ohne dass man nach der installation extra umständlich den dienst anklicken und auf eigenschaften gehen muss und dort diese einstellung zu ändern...