Autor Beitrag
Rool
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 211



BeitragVerfasst: So 02.03.03 20:56 
Wie richtet man ein Programm als Service ein? Ich hab XP aber keine Ahnung wie DAS geht!!

_________________
MFG Rool


Zuletzt bearbeitet von Rool am So 02.03.03 22:08, insgesamt 1-mal bearbeitet
bis11
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: So 02.03.03 20:59 
Mit SRVANY.EXE. Oder Du schreibst einen Service selber.
maxk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1696
Erhaltene Danke: 1

Win XP, Debian Lenny
Delphi 6 Personal
BeitragVerfasst: So 02.03.03 21:08 
Ich glaub mich tritt ein Esel - das scheint ja auch unter Delphi 6 Personal zu klappen :mrgreen:

maxk

_________________
Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
Rool Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 211



BeitragVerfasst: So 02.03.03 22:09 
Titel: uups...
jo, danke vielmals. das mit dem titel war n versehen. ich wollte eigentlich ne antwort auf einen alten eintrag erstellen, hab aber ausversehen auf "neues Thema" gedrückt.
Also nix für ungut ;-))

_________________
MFG Rool
Rool Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 211



BeitragVerfasst: Mo 03.03.03 11:23 
Titel: problem...
Ich muss sagen, ich habe absolut keine Ahnung von Services, ich will nur das eine bestimmte exe läuft (vollbild), und man soll weder Strg+Alt+Entf drücken können (oder da soll ne passwort-abfrage kommen...) noch die WinTaste. Ausserdem sollte das Programm alleine starten, wenn man reset drückt!
Jetzt habe ich diesesn Code von Delphi-Source aber kann gar nix damit anfangen.
Könnt ihr mir sagen was ich machen muss?

_________________
MFG Rool
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 03.03.03 11:40 
Was für ein Betriebssystem? Öhm, Moment mal "Service"? Also NT-basierend.
1. Taskmanger so gut wie nicht deaktivierbar
2. Haben diese Betriebssysteme schon ein Login
3. Ein Service mit GUI habe ich noch nicht gesehen.
4. Ein Service ist schon etwas heavy, wenn man es verstehen will, also nichts für Leute die gerade 3 Monate mit Delphi arbeiten und noch nie was von der Win32API gehört haben.
Rool Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 211



BeitragVerfasst: Mo 03.03.03 12:47 
Titel: naja...
OS: WinXP

Also zu den API Kenntnissen kann ich nur sagen:
Ich habe über 4 Jahre mit VB geproggt... Da kennt man die Api irgendwann schon ganz gut.

Ich hab nicht das Problem mit dem Code, sonder ich weis ehrlich gesagt gar nicht richtig was ein service macht!!! Ich will nur die schon beschriebenen Probleme beheben... (Taskmanager... er kann ja meinetwegen erscheien aber dann doch bitte mit Passwort-Abfrage...)

_________________
MFG Rool
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 03.03.03 13:00 
Titel: Re: naja...
Rool hat folgendes geschrieben:
OS: WinXP

Also zu den API Kenntnissen kann ich nur sagen:
Ich habe über 4 Jahre mit VB geproggt... Da kennt man die Api irgendwann schon ganz gut.

War nicht unbedingt auf dich bezogen.
Zitat:

Ich hab nicht das Problem mit dem Code, sonder ich weis ehrlich gesagt gar nicht richtig was ein service macht!!!

Nicht was er macht, sondern was er ist, ist die entscheidene Frage.
Service sind bei Multiusersystem ganz praktisch. Zum Beispiel ein Viren-Sacnner. Wird er erst gestartet, wenn sich jemand eingeloggt hat, kann der jenige ihn abschalten, da er in seinem Benutzer-Kontext läuft, was ja nun nicht unbedingt erwünscht ist. Ein Service wird vor dem Login gestartet und läuft so auf dem System-Konto, so das eine normaler Benutzer ohne Admin-rechte nicht die Rechte hat in zu beenden, weil er nicht auf seinem Konto läuft.
[/quote]
Zitat:

Ich will nur die schon beschriebenen Probleme beheben... (Taskmanager... er kann ja meinetwegen erscheien aber dann doch bitte mit Passwort-Abfrage...)

Ich sehe da kein Problem, weil es für ein NT-basierendes System keinen Sinn macht.
Aber den Taskmanger mit PW-Abfrage aufrufen?!? :shock: Das wird ja immer besser. :roll:
Klabautermann
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: Mo 03.03.03 13:01 
Hallo,
Luckie hat folgendes geschrieben:
3. Ein Service mit GUI habe ich noch nicht gesehen.

das ist soviel ich weis auch per definition nicht gestattet. Ein Service läuft unsichtbar im Hintergrund.

Gruß
Klabautermann
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 03.03.03 13:05 
Das einzigste was geht, sind Messageboxen, aber die brauchen einen bestimmten Flag zusätzlich.
maxk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1696
Erhaltene Danke: 1

Win XP, Debian Lenny
Delphi 6 Personal
BeitragVerfasst: Mo 03.03.03 13:11 
Zitat:
Ich glaub mich tritt ein Esel - das scheint ja auch unter Delphi 6 Personal zu klappen :mrgreen:

Nein du bist ein Esel, die Dateien service.pas und consolehlp.pas gibt es doch gar nicht unter Delphi 6 Personal. Aber vielleicht weiß ja jemand, wo man legal eine Kopie oder eine Nachprogrammierung downloaden kann.

_________________
Ein Computer wird das tun, was Du programmierst - nicht das, was Du willst.
Rool Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 211



BeitragVerfasst: Mo 03.03.03 13:35 
Titel: mmm
Also ich glaube wir verstehen uns miss!

Du hasst mal in dem anderen Eintrag gesagt:

Wenn dein Programm nicht beendet werden darf, dann komzipiere es als Service unter 2000/XP. Die darf nur der Admin einrichten, starten und beenden.

Ich habe ein Prog laufen. Dieses Programm soll im Vollbild als einziges sichtbares Programm laufen. Jeder der an den Rechner geht darf das Programm bedienen, aber nicht beenden. Man soll also nicht auf den Rechner zugreifen. In Win98 war das kein Problem. (SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, nil, 0)

Besser wärs noch, wenn man auf reset drückt, das dann beim neustart NUR dieses Programm startet (Windows im Hintergrund...).

Ich dachte so etwas wär mit nem Service möglich aber vielleicht hab ich mich ja getäuscht.
Achja... falls es jemand kennt: BPM-Studio macht so etwas. Nennt sich dann Exklusive Shell-Anwendung...

_________________
MFG Rool
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 03.03.03 13:42 
Ein Service kann aber kein GUI haben und du willst eine GUI, also fällt ein Service für dich flach.
Rool Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 211



BeitragVerfasst: Mo 03.03.03 14:01 
Titel: ja...
Ja.. ok, das ist wenigstens ne konkrete Antwort. Gibt es sonst irgendeine Möglichkeit so etwas zu machen?

_________________
MFG Rool
FriFra
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 557

Win XP Prof, Win XP Home,Win Server 2003,Win 98SE,Win 2000,Win NT4,Win 3.11,Suse Linux 7.3 Prof,Suse Linux 8.0 Prof
D2k5 Prof, D7 Prof, D5 Standard, D3 Prof, K3 Prof
BeitragVerfasst: Mo 03.03.03 16:15 
Ein Service kann sehr wohl eine GUI haben! Man muss nur die Interaktion mit dem Desktop zulassen...

Ich habe mal ein Programm geschrieben, welches im Prinzip jedes andere Programm als Service starten kann. die Einrichtung erfolgt hier auch vollständig über eine GUI:
http://www.frifra.de
Motzi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2931

XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
BeitragVerfasst: Mo 03.03.03 16:24 
Die Fenster von Services befinden sich in einer eigenen Window-Station und sind daher nicht auf dem normalen Windows-Desktop verfügbar. Es gibt jedoch auch Möglichkeiten mit denen ein Service mit dem Benutzer auf der (Standard)WindowStation WinSta0 interagieren kann...!

PS: in der nächsten version meines X-Spy (www.x-spy.net) gibt es auch die Möglichkeit Window-Stations und Desktops aufzulisten.

_________________
gringo pussy cats - eef i see you i will pull your tail out by eets roots!
Rool Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 211



BeitragVerfasst: Mo 03.03.03 18:16 
Titel: ...
Ist es denn dadurch möglich mein Problem zu lösen?

_________________
MFG Rool
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Di 04.03.03 22:23 
Titel: Grübel
So,
erstens dürfen Dienste selbstverständlich eine GUI haben, die Frage ist eher warum sie das haben. I.d.R. nur zu Konfigurations- und Kommunikationszwecken. Auch können Sie Dialoge und Messages anzeigen. Virenscanner arbeiten teilweise so.
Zweitens kann man sehr wohl den Taskmanager ausblenden. Krasse Möglichkeit: Taskman.exe löschen, oder noch krasser einen Dienst schreiben der jedesmal wenn dieser Task läuft ihn killt. Da gibts bereits einschlägige Literatur in punkto Viren und Backdoors.

Schreib doch einfach einen Dienst der Deine Anwendung aufruft. Noch simpler, schau dich mal in der registry um.

Ein Service unter delphi ist relativ simple; es gibt da verschiedene Vorlagen (TService...). Wichtig ist nur, das dein Service Thread-sicher sein sollte (--> Threads)

Grüße
MSCH
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 04.03.03 22:31 
Titel: Re: Grübel
MSCH hat folgendes geschrieben:
So,
erstens dürfen Dienste selbstverständlich eine GUI haben, die Frage ist eher warum sie das haben. I.d.R. nur zu Konfigurations- und Kommunikationszwecken.

Sicher? Ich denke um die GUI, die du bei einem Virenscanner siehst, wohl eher eine zweite Anwendung ist. Um ein Fenster zu haben, bräuchte ein Service eine normale Message-Loop und eine Fensterprozedur. Beide sind aber, soweit ich weiß, in einem Service nicht vorhanden.
Zitat:

Auch können Sie Dialoge und Messages anzeigen.

Es hat auch niemand etwas anderes behauptet.
Motzi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2931

XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
BeitragVerfasst: Mi 05.03.03 10:25 
Titel: Re: Grübel
Luckie hat folgendes geschrieben:
MSCH hat folgendes geschrieben:
So,
erstens dürfen Dienste selbstverständlich eine GUI haben, die Frage ist eher warum sie das haben. I.d.R. nur zu Konfigurations- und Kommunikationszwecken.

Sicher? Ich denke um die GUI, die du bei einem Virenscanner siehst, wohl eher eine zweite Anwendung ist. Um ein Fenster zu haben, bräuchte ein Service eine normale Message-Loop und eine Fensterprozedur. Beide sind aber, soweit ich weiß, in einem Service nicht vorhanden.
Zitat:

Auch können Sie Dialoge und Messages anzeigen.

Es hat auch niemand etwas anderes behauptet.


Wie gesagt.. Services sind einer anderen Window-Station zugeordnet. Die normale (Standard) WindowStation ist WinSta0. Das ist die einzige WindowStation die Benutzereingaben empfangen kann und daher auch die einzige für die es Sinn macht Fenster sichtbar angezuzeigen. Außerdem ist ein Fenster-Handle immer nur in seiner WindowStation gültig.
Services laufen nicht auf dieser WindowStation sondern haben ihre eigene. Ergo können sie auch keine Fenster/Messages/Dialoge anzeigen (zumindest nicht einfach so... es geht über ein bisschen Hintergrundwissen)

Services laufen in der System-LogonSession und haben damit dieselben Rechte wie das System (sie laufen damit in den Rängen des TCB). Wenn ein Prozess nun einen neuen Prozess startet, so erbt der neue Prozess die LogonSession des Mutterprozesses. dh. startet ein Services einen neuen Prozess, so läuft dieser ebenfalls in der LogonSession, allerdings kann dieser Prozess der WinSta0 WindowStation angehören und somit auch Fenster/Messages/Dialoge anzeigen.

_________________
gringo pussy cats - eef i see you i will pull your tail out by eets roots!