Xbase++-Programm als Dienst
Moderator: Moderatoren
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Xbase++-Programm als Dienst
Hallo allerseits,
hat von Euch einer schon mal versucht, sein Xbase++-Programm als Dienst laufen zu lassen?
Ich möchte meinen Server als Dienst laufen lassen - das Problem dabei ist, dass es natürlich eine GUI gibt und Menüpunkte, die auch in dem Fall, dass es als Dienst läuft, erreichbar sein müssen.
Ich dachte mir, dass das Programm halt (ohne Gui) als Dienst gestartet wird und sobald sich ein User am System anmeldet, erscheint im System-Tray (bei der Uhrzeit) das Symbol meines Servers. Rechtsklick drauf und es kommt ein Popup-Menü, über das die einzelnen Menüpunkte erreichbar sind.
Wenn sich der User abmeldet, läuft der Dienst natürlich weiter!
Irgendwelche Tipps?
Ich habe mir mal bei Phil Ide das Rumpfgerüst (ServiceConsole) angeschaut, aber so richtig komme ich damit hier nicht weiter...
Viele Grüße,
Martin
hat von Euch einer schon mal versucht, sein Xbase++-Programm als Dienst laufen zu lassen?
Ich möchte meinen Server als Dienst laufen lassen - das Problem dabei ist, dass es natürlich eine GUI gibt und Menüpunkte, die auch in dem Fall, dass es als Dienst läuft, erreichbar sein müssen.
Ich dachte mir, dass das Programm halt (ohne Gui) als Dienst gestartet wird und sobald sich ein User am System anmeldet, erscheint im System-Tray (bei der Uhrzeit) das Symbol meines Servers. Rechtsklick drauf und es kommt ein Popup-Menü, über das die einzelnen Menüpunkte erreichbar sind.
Wenn sich der User abmeldet, läuft der Dienst natürlich weiter!
Irgendwelche Tipps?
Ich habe mir mal bei Phil Ide das Rumpfgerüst (ServiceConsole) angeschaut, aber so richtig komme ich damit hier nicht weiter...
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Hallo,
Xbase++ unterstützt ja leider die Dienste nicht direkt ...
1. Ich habe gelesen (vor Ewigkeiten auf der Alaska site) , es gäbe bei MS ein Programm, welches jedes Programm als Dienst laufen läst.
2. Ein Dienst ist ein Dienst und kein GUI Programm (wenn gleich es wohl möglich ist ein GUI Programm zum Dienst zu degradieren - sonst wäre das Dienstprogramm von 1. nicht möglich). Was aber möglich sein soll, ist dass ein GUI Programm den Dienst fernsteuert ...
Bei Apache z.B. apache.exe aufgerufen, das Programm läuft normal.
mit Parametern kann es als dienst installiert und deinstalliert werden.
Diese Parameter und die interaktion muß man wohl im Programm vorsehen (ähnlich der wie man einen thread von außen steuern kann) bzw. über das Dienstprogramm nachrüsten. Ich denke nicht, dass ein Dienst überhaupt eine GÙI starten kann, denn er läuft ja auch ohne User.
Xbase++ unterstützt ja leider die Dienste nicht direkt ...
1. Ich habe gelesen (vor Ewigkeiten auf der Alaska site) , es gäbe bei MS ein Programm, welches jedes Programm als Dienst laufen läst.
2. Ein Dienst ist ein Dienst und kein GUI Programm (wenn gleich es wohl möglich ist ein GUI Programm zum Dienst zu degradieren - sonst wäre das Dienstprogramm von 1. nicht möglich). Was aber möglich sein soll, ist dass ein GUI Programm den Dienst fernsteuert ...
Bei Apache z.B. apache.exe aufgerufen, das Programm läuft normal.
mit Parametern kann es als dienst installiert und deinstalliert werden.
Diese Parameter und die interaktion muß man wohl im Programm vorsehen (ähnlich der wie man einen thread von außen steuern kann) bzw. über das Dienstprogramm nachrüsten. Ich denke nicht, dass ein Dienst überhaupt eine GÙI starten kann, denn er läuft ja auch ohne User.
Gruß
Hubert
Hubert
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Hubert,
genauso hatte ich mir das ja auch gedacht - hast Du damit Erfahrungen gesammelt?
Ich habe nicht so das Problem damit, mein Programm zu beschneiden (also ohne GUI), so dass es als Dienst läuft.
Mir geht es mehr um die GUI-Schnittstelle, um das beschnittene Programm zu steuern und die jeweiligen Menüpunkte aufzurufen.
Wobei - vielleicht kann ich aus dem einen Programm eh' komplett zwei einzelne Programme machen, die nichts direkt mehr miteinander zu tun haben...
Hmm....
Viele Grüße,
Martin
genauso hatte ich mir das ja auch gedacht - hast Du damit Erfahrungen gesammelt?
Ich habe nicht so das Problem damit, mein Programm zu beschneiden (also ohne GUI), so dass es als Dienst läuft.
Mir geht es mehr um die GUI-Schnittstelle, um das beschnittene Programm zu steuern und die jeweiligen Menüpunkte aufzurufen.
Wobei - vielleicht kann ich aus dem einen Programm eh' komplett zwei einzelne Programme machen, die nichts direkt mehr miteinander zu tun haben...
Hmm....
Viele Grüße,
Martin
Zuletzt geändert von Martin Altmann am Mi, 29. Mär 2006 18:51, insgesamt 1-mal geändert.
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Sorry Erfahrungen mit eigenen Services habe ich keine.
Ich habe mich vor längerer Zeit auf den Alaska Foren nach einer Möglichkeit in dieser Richtung erkundigt, insbesondere auch wegen dem WEB Application Adapter, denn es kann - meiner Meinung nach - nicht sein, dass an einem Server immer jemand angemeldet sein muss.
Phil wollte damals sowas machen, das ging aber wohl schief.
Bei meinem Basiccompiler (bzw. der IDE Erweiterung) gibt es 2 vorgefertigte Module, die für einen Service wohl nötig sind:
MyService_Callback(VDService as VDServiceInfo) as long
dieser wird vom Servicehandler aufgerufen und mit
VDService.nStatus erfährt das Programm, was der Servicehandler (ich vermute die Systemsteuerung bzw. Installer ?) von dem Programm will.
Zustände sind
%SERVICE_START_PENDIG -> Service soll eigenen Arbeitsthread starten
%SERVICE_STOP_PENDIG -> Service zeigt Arbeitsthread das Ende an.
Der Arbeitsthread wird mit einem Pointer auf den Parameter VDService
gestartet. Das eigentliche Hauptprogramm dient dem Installieren und Deinstallieren.
und am Anfang wird auf die MSDN verwiesen um zu lernen was ein service ausmacht.
Auf wunsch kann ich hierzu etwas aus der Doku per eMail senden, aber ich fürchte ohne BAP und MSDN Aufrufe wird das nicht funktionieren.
Von beidem habe ich keine Ahnung.
Aus deshalb habe ich meinen Webserver Apache mit EXE CGI gefüttert.
Suche doch nach dem MS Tool, was eine normale Anwendung servicefähig machen soll...
Ich habe mich vor längerer Zeit auf den Alaska Foren nach einer Möglichkeit in dieser Richtung erkundigt, insbesondere auch wegen dem WEB Application Adapter, denn es kann - meiner Meinung nach - nicht sein, dass an einem Server immer jemand angemeldet sein muss.
Phil wollte damals sowas machen, das ging aber wohl schief.
Bei meinem Basiccompiler (bzw. der IDE Erweiterung) gibt es 2 vorgefertigte Module, die für einen Service wohl nötig sind:
MyService_Callback(VDService as VDServiceInfo) as long
dieser wird vom Servicehandler aufgerufen und mit
VDService.nStatus erfährt das Programm, was der Servicehandler (ich vermute die Systemsteuerung bzw. Installer ?) von dem Programm will.
Zustände sind
%SERVICE_START_PENDIG -> Service soll eigenen Arbeitsthread starten
%SERVICE_STOP_PENDIG -> Service zeigt Arbeitsthread das Ende an.
Der Arbeitsthread wird mit einem Pointer auf den Parameter VDService
gestartet. Das eigentliche Hauptprogramm dient dem Installieren und Deinstallieren.
und am Anfang wird auf die MSDN verwiesen um zu lernen was ein service ausmacht.
Auf wunsch kann ich hierzu etwas aus der Doku per eMail senden, aber ich fürchte ohne BAP und MSDN Aufrufe wird das nicht funktionieren.
Von beidem habe ich keine Ahnung.
Aus deshalb habe ich meinen Webserver Apache mit EXE CGI gefüttert.
Suche doch nach dem MS Tool, was eine normale Anwendung servicefähig machen soll...
Gruß
Hubert
Hubert
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Hubert,
Naja, wahrscheinlich werde ich aus meinem Server zwei eigenständige Programme machen und das eine davon entsprechend als Dienst starten...
Viele Grüße,
Martin
da habe ich dieses hier von unserem Hoster empfohlen bekommen.brandelh hat geschrieben:Suche doch nach dem MS Tool, was eine normale Anwendung servicefähig machen soll...
Naja, wahrscheinlich werde ich aus meinem Server zwei eigenständige Programme machen und das eine davon entsprechend als Dienst starten...
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
http://msdn.microsoft.com/library/defau ... ervice.asp
mit diesem Link kommst du in die Dokumentation von Services bei MSDN. Vielleicht hilft es ja - Xbase++ ist da auch ziemlich hinten dran. Aber frag doch mal Boris - du nutzt doch sein Xb2NET - der muss doch auch die Probleme haben. Keine größere Firma erlaubt Serversoftware, welche eine Anmeldung benötigt.
mit diesem Link kommst du in die Dokumentation von Services bei MSDN. Vielleicht hilft es ja - Xbase++ ist da auch ziemlich hinten dran. Aber frag doch mal Boris - du nutzt doch sein Xb2NET - der muss doch auch die Probleme haben. Keine größere Firma erlaubt Serversoftware, welche eine Anmeldung benötigt.
Gruß
Hubert
Hubert
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Hubert,
danke für den link.
Wenn ich nachher nach Hause komme, werde ich mal die Newsgoups von Alaska durchstöbern - ich weiß, dass das da bereits mehrmals Thema war und auch gelöst wurde.
Aber wahrscheinlich werde ich meinen Server in zwei Programme splitten - wird am Einfachsten werden!
Das eine läuft dann völlig ohne GUI und wird als Dienst eingebunden.
Das andere wird dann das Frontend, mit dem ich die Einstellungen vornehmen kann.
Ich brauche "nur" meine jetzigen Sourcen auf zwei eigene prgs aufteilen und entsprechend die Projectdateien anpassen...
Viele Grüße,
Martin
danke für den link.
Wenn ich nachher nach Hause komme, werde ich mal die Newsgoups von Alaska durchstöbern - ich weiß, dass das da bereits mehrmals Thema war und auch gelöst wurde.
Aber wahrscheinlich werde ich meinen Server in zwei Programme splitten - wird am Einfachsten werden!
Das eine läuft dann völlig ohne GUI und wird als Dienst eingebunden.
Das andere wird dann das Frontend, mit dem ich die Einstellungen vornehmen kann.
Ich brauche "nur" meine jetzigen Sourcen auf zwei eigene prgs aufteilen und entsprechend die Projectdateien anpassen...
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Hubert,
vielen Dank für Dein Angebot - wie gesagt, wenn ich das so mache, wie ich das jetzt vorhabe, dann gibt es sicherlich kein Problem, das eigentliche (GUI-lose) Serverprogramm als Dienst zu starten.
Viele Grüße,
Martin
vielen Dank für Dein Angebot - wie gesagt, wenn ich das so mache, wie ich das jetzt vorhabe, dann gibt es sicherlich kein Problem, das eigentliche (GUI-lose) Serverprogramm als Dienst zu starten.
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Hubert,
was meinst Du mit "Service-Arbeiten"?
Jedes Programm, was kein GUI/Bildschirmein-/ausgaben hat, kann als Service laufen.
Mein Server hat ja nur ein GUI, um die Logs in Echtzeit auszugeben (lasse ich dann weg) und um über ein Menü die Befehle zum Verwalten der Datenbanken aufzurufen.
Diese Menüpunkte kann ich ohne Probleme auch in ein eigenes Programm auslagern.
Interessant wird es beim Aufrufen externer Kommandos (wie xcopy und blat), aber auch da sehe ich keine wirklichen Probleme...
Mal schauen!
Viele Grüße,
Martin
was meinst Du mit "Service-Arbeiten"?
Jedes Programm, was kein GUI/Bildschirmein-/ausgaben hat, kann als Service laufen.
Mein Server hat ja nur ein GUI, um die Logs in Echtzeit auszugeben (lasse ich dann weg) und um über ein Menü die Befehle zum Verwalten der Datenbanken aufzurufen.
Diese Menüpunkte kann ich ohne Probleme auch in ein eigenes Programm auslagern.
Interessant wird es beim Aufrufen externer Kommandos (wie xcopy und blat), aber auch da sehe ich keine wirklichen Probleme...
Mal schauen!
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Das ist mir neu, zumal ich ein Dateireplikationsprogramm in Xbase++ verfaßt habe, das als Dienst läuft. Dafür gibt es die Klasse ServiceController, die mit den Methoden Install(), Uninstall() und Start() alle hierfür nötigen Funktionalitäten bietet. Man kann ein handelsübliches Xbase-Programm dieserart zum Dienst machen, muß nur alle Ein- und Ausgaben ausblenden. Leider bin ich nicht im Büro, aber ich kann morgen ein Beispiel posten.Xbase++ unterstützt ja leider die Dienste nicht direkt ...
Herzlich,
Tom
Tom
-
- Rekursionen-Architekt
- Beiträge: 116
- Registriert: Fr, 23. Sep 2005 16:07
- Wohnort: Bad Oldesloe
- Kontaktdaten:
Hallo.
Tom hat recht. Schau doch einfach mal in die Referenzdokumentation von XBase nach.
Gruß
Thomas
Tom hat recht. Schau doch einfach mal in die Referenzdokumentation von XBase nach.
Code: Alles auswählen
// Implementieren eines Service Controllers
// Das Beispiel implementiert einen Service Controller
// für den Dienst namens MyService.
// (siehe das Beispiel für die ServiceApp() Klasse)
// Es wird angenommen, daß sich die ausführbare Datei
// des Dienstes im gleichen Verzeichnis befindet, wie
// die Kontrollapplikation.
// Mit diesem Controller kann der Dienst installiert, gestartet,
// gestoppt und de-installiert werden.
#include "service.ch"
CLASS Logger
EXPORTED:
INLINE METHOD write( cMsg )
? cMsg
RETURN SELF
ENDCLASS
PROCEDURE Main( cParam )
LOCAL cLocation, oLog, oCtrl, cServiceName
cServiceName := "MyService"
cLocation := CurDrive() + ":\" + CurDir() + "\"
oLog := Logger():new()
oCtrl := ServiceController()
oCtrl:addController( cServiceName , ;
"Alaska Software Service Sample" , ;
cLocation + cServiceName + ".exe" , ;
".\Frodo", "Hobbit", , ;
oLog )
DO CASE
CASE cParam == "i"
ServiceController():install( cServiceName )
CASE cParam == "s"
ServiceController():start( cServiceName )
CASE cParam == "x"
ServiceController():stop( cServiceName )
CASE cParam == "u"
ServiceController():uninstall( cServiceName )
ENDCASE
RETURN
Thomas
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9367
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Hallo, Hubert.
Ich benutze die 1.82.
Zitat aus der Doku:
Rückgabe
Die Funktion ServiceController() gibt das Klassenobjekt der ServiceController-Klasse zurück.
Beschreibung
Die Klasse implementiert Mechanismen, um Dienste zu kontrollieren und Control Requests an sie zu übermitteln. Dabei handelt es sich um die Requests Start , Stop , Pause und Continue .
Zusätzlich wird die Klasse dazu verwendet, Statusinformationen von Diensten abzufragen. Die Methode :queryAllServiceNames() gibt ein Array mit den Namen aller installierten Dienste zurück. Durch den Aufruf der Klassenmethode :getUpdatedControl() wird eine Instanz der Klasse gebildet, die in ihren Instanzvariablen :serviceType, :currentState, :controlsAccepted, :startType, :errorControl, athName, :startName und :displayName alle verfügbaren Informationen über einen einzelnen Dienst enthält.
Hinweis: Instanzen dieser Klasse dienen nur der Information. Aus diesem Grund ist eine :init() Methode nicht vorhanden. Alle Dienste, die kontrolliert werden sollen, müssen mit Hilfe der Klassenmethode :addController() registriert werden.
Weitere Informationen finden sich im Abschnitt "Dienste kontrollieren."
Ich benutze die 1.82.
Zitat aus der Doku:
Rückgabe
Die Funktion ServiceController() gibt das Klassenobjekt der ServiceController-Klasse zurück.
Beschreibung
Die Klasse implementiert Mechanismen, um Dienste zu kontrollieren und Control Requests an sie zu übermitteln. Dabei handelt es sich um die Requests Start , Stop , Pause und Continue .
Zusätzlich wird die Klasse dazu verwendet, Statusinformationen von Diensten abzufragen. Die Methode :queryAllServiceNames() gibt ein Array mit den Namen aller installierten Dienste zurück. Durch den Aufruf der Klassenmethode :getUpdatedControl() wird eine Instanz der Klasse gebildet, die in ihren Instanzvariablen :serviceType, :currentState, :controlsAccepted, :startType, :errorControl, athName, :startName und :displayName alle verfügbaren Informationen über einen einzelnen Dienst enthält.
Hinweis: Instanzen dieser Klasse dienen nur der Information. Aus diesem Grund ist eine :init() Methode nicht vorhanden. Alle Dienste, die kontrolliert werden sollen, müssen mit Hilfe der Klassenmethode :addController() registriert werden.
Weitere Informationen finden sich im Abschnitt "Dienste kontrollieren."
Herzlich,
Tom
Tom
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
So,
ich habe es jetzt mal versucht mit ServiceController() - läuft einwandfrei! Ich kann den Dienst installieren, starten und stoppen - jedoch nur unter XP!
Unter Windows Server 2003 kann ich den Dienst zwar installieren, aber nicht starten! Ich bekomme dann eine Fehlermeldung "Fehler 87: Falscher Parameter."
Hat irgendjemand irgendeine Idee?
Die DLLs liegen im selben Verzeichnis, wie die EXE - ich hatte sie auch in das \Windows\System32-Verzeichnis kopiert. Bringt aber leider keine Änderung...
Viele Grüße,
Martin
ich habe es jetzt mal versucht mit ServiceController() - läuft einwandfrei! Ich kann den Dienst installieren, starten und stoppen - jedoch nur unter XP!
Unter Windows Server 2003 kann ich den Dienst zwar installieren, aber nicht starten! Ich bekomme dann eine Fehlermeldung "Fehler 87: Falscher Parameter."
Hat irgendjemand irgendeine Idee?
Die DLLs liegen im selben Verzeichnis, wie die EXE - ich hatte sie auch in das \Windows\System32-Verzeichnis kopiert. Bringt aber leider keine Änderung...
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Hubert,
jup! Weder als lokaler Dienst, noch wenn ich den Dienst unter dem User Administrator laufen lasse (in letzterem Fall kam auch der Hinweis, dass der User Administrator jetzt die Berechtigung "als Dienst anmelden" bekommen hätte).
Heute abend werde ich das ganze mal wieder ändern und ohne die Xbase++-eigene ServiceController()-Klasse versuchen. Einfach ein Programm, dass ich dann mit dem PNC AllaDien starte. Hatte gestern auch schon geklappt, nur lies sich der Dienst dann nicht mehr beenden (was wahrscheinlich daran lag, dass ich ja parallel dazu mit der ServiceController()-Klasse gearbeitet hatte und dadurch einiges durcheinander kam).
Viele Grüße,
Martin
jup! Weder als lokaler Dienst, noch wenn ich den Dienst unter dem User Administrator laufen lasse (in letzterem Fall kam auch der Hinweis, dass der User Administrator jetzt die Berechtigung "als Dienst anmelden" bekommen hätte).
Heute abend werde ich das ganze mal wieder ändern und ohne die Xbase++-eigene ServiceController()-Klasse versuchen. Einfach ein Programm, dass ich dann mit dem PNC AllaDien starte. Hatte gestern auch schon geklappt, nur lies sich der Dienst dann nicht mehr beenden (was wahrscheinlich daran lag, dass ich ja parallel dazu mit der ServiceController()-Klasse gearbeitet hatte und dadurch einiges durcheinander kam).
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
So,
hat gefunzt! Mein Server läuft jetzt als Dienst.
Habe ihn so modifiziert, dass er nach dem Starten in eine Endlosschleife geht:
Dann klappte auch das Einbinden mit NPC AllaDien erfolgreich.
Viele Grüße,
Martin
hat gefunzt! Mein Server läuft jetzt als Dienst.
Habe ihn so modifiziert, dass er nach dem Starten in eine Endlosschleife geht:
Code: Alles auswählen
do while .t.
sleep( 5 )
enddo
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- Martin Altmann
- Foren-Administrator
- Beiträge: 16517
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Tom,
jup - genau! Hatte zwar erst ein wenig Bauchschmerzen, weil ich meine Server-Prozesse eigentlich sauber beenden wollte, aber es scheint auch so zu klappen.
Viele Grüße,
Martin
jup - genau! Hatte zwar erst ein wenig Bauchschmerzen, weil ich meine Server-Prozesse eigentlich sauber beenden wollte, aber es scheint auch so zu klappen.
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.