Xbase++-Programm als Dienst

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16508
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Xbase++-Programm als Dienst

Beitrag von Martin Altmann »

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
:grommit:
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.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

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.
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16508
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

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.... :-k

Viele Grüße,
Martin
Zuletzt geändert von Martin Altmann am Mi, 29. Mär 2006 18:51, insgesamt 1-mal geändert.
:grommit:
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.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

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...
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16508
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Hubert,
brandelh hat geschrieben:Suche doch nach dem MS Tool, was eine normale Anwendung servicefähig machen soll...
da habe ich dieses hier von unserem Hoster empfohlen bekommen.
Naja, wahrscheinlich werde ich aus meinem Server zwei eigenständige Programme machen und das eine davon entsprechend als Dienst starten...

Viele Grüße,
Martin
:grommit:
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.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

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.
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16508
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

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
:grommit:
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.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo,

und die Funktion z.B. CreateServiceA(..) ist in der Win32API von PowerBasic beschrieben. Wenn du diese DLL von Windows aus aufrufen kannst, kann ich dir die Basic-definition senden. Die Parameter sind recht ähnlich bei beiden. Ich korrigiere der Verweis geht auf dei ADVAPI32.DLL
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16508
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

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
:grommit:
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.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Ich denke nicht dass das reicht, etwa Service-Arbeiten wirst du noch dazu benötigen ... :wink:

Lass uns wissen was du herausbekommst...
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16508
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

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
:grommit:
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.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9356
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Beitrag von Tom »

Xbase++ unterstützt ja leider die Dienste nicht direkt ...
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.
Herzlich,
Tom
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo,

ich bin noch auf 1.82 - sicherlich gilt das nur für 1.90 - sonst muß ich die Jahre blind gewesen sein :oops:
Gruß
Hubert
thomas
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 116
Registriert: Fr, 23. Sep 2005 16:07
Wohnort: Bad Oldesloe
Kontaktdaten:

Beitrag von thomas »

Hallo.

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 
Gruß

Thomas
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9356
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Beitrag von Tom »

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, :pathName, :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
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

in der 1.90 Referenzdokumentation bin ich doch tatsächlich fündig geworden ... war aber gut versteckt: Programming Guide \ Services...

:idea: :idea: :idea: :idea: :idea:
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Oh je, jetzt habe ich mich aber blamiert ... war mir völlig entgangen. :shock:
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16508
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

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
:grommit:
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.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

In der Anleitung war was von den Ausführungsrechten des Dienstes gestanden, hast du das beachtet (nicht nur installieren, sondern auch die Diensteverwaltung aufrufen und dort Anmeldung oder so ähnlich festlegen)...
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16508
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

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
:grommit:
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.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16508
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

So,
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
Dann klappte auch das Einbinden mit NPC AllaDien erfolgreich.

Viele Grüße,
Martin
:grommit:
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.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo,
Habe ihn so modifiziert, dass er nach dem Starten in eine Endlosschleife geht:
solltest du da nicht noch eine Abbruchbedingung vorsehen ?
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9356
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Beitrag von Tom »

Hallo, Hubert.
solltest du da nicht noch eine Abbruchbedingung vorsehen ?
Das geschieht durch die Beendigung des Dienstes. Ist bei vielen Diensten so üblich (Systemsteuerung -> Verwaltung -> Dienste -> Beenden).[/quote]
Herzlich,
Tom
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16508
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

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
:grommit:
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.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Ich dachte nur, weil die Serverklasse ja auf start und stop Anweisungen von dem Dienstemanager reagieren soll ... aber das macht wohl das besagte Hilfsprogramm selbst.
Gruß
Hubert
Antworten