Druckserver als Windows Dienst

Antwort erstellen

Bestätigungscode
Gib den Code genau so ein, wie du ihn siehst; Groß- und Kleinschreibung wird nicht unterschieden.
Smileys
:D :) ;) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :!: :?: :idea: :arrow: :| :mrgreen: :geek: :ugeek:

BBCode ist eingeschaltet
[img] ist eingeschaltet
[url] ist eingeschaltet
Smileys sind eingeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Druckserver als Windows Dienst

Re: Druckserver als Windows Dienst

von Metafrage » Sa 16. Dez 2017, 12:29

Hallo Stefan,

da habe ich mich verdrückt ausgekehrt... :)
Der Service lässt sich mit oben genannten Befehl schon erzeugen (müsste auch auf den vorherigen Windows Versionen möglich sein.), wenn aber der Dienst gestartet wird, gibt es die Fehlermeldung 'der Dienst reagiere nicht/falsch/...'. Der 'OrderSprinterPrintserver' taucht dann zwar in den Prozessen auf, hat sich aber selbst 'aufgehängt', da er am Punkt 'lade GUI' nicht weiterkommt, da von Windows geblockt. Die eingebundenen Libs sollten eigentlich nicht stören.

Zur Frage:
Uff, als ich dass letzte mal ne Gui in Windows programmiert habe, habe ich das umgedreht gemacht, eine Konsolenanwendung, die die Fenster selbst erzeugt, ohne extra Bibliothek oder Framework. (Wollte wissen wie das geht...) Die Konsolenanwendung konnte man dann mit dem Befehl problemlos in einen Service auslagern. :)
Spaß beiseite, mein Bruder hat das in C# mal gemacht: einen Dienst erstellt, welcher über die Taskleistensymbole gesteuert eine Gui zum Vorschein brachte, und sonst nicht sichtbar war, den müsste ich diebezüglich mal fragen...

Gruß,
Michael

Re: Druckserver als Windows Dienst

von pichel » Fr 15. Dez 2017, 23:40

Hallo Michael,

Tests mit Windows 10 habe ich noch nicht durchgeführt, da ich privat meist Linux nutze und nur ganz selten ein Windows 7 in einer VM starte (z.B. zum Programmieren des Printservers). Mit Windows 10 muss ich zwar beruflich ab und zu arbeiten, aber es macht mir so gar keinen Spaß - und nun ja, da es ein Hobbyprojekt ist, bin ich in der glücklichen Lage mir aussuchen zu dürfen, welches OS ich unterstütze... ;)

Trotzdem ist deine Anregung natürlich sinnvoll, denn ein Service bietet natürlich einige Vorteile. Leider stecke ich in der Windows-Programmierung nicht so tief drin, darum verzeihe mir die Frage: Kann ich eine Applikation gleichermaßen als Service und als GUI-Applikation kompilieren, die dann auch auf einem Win 10 als Service lauffähig ist (z.B. per Parameter, der den Aufruf der GUI verhindert) - oder schaut sich Win 10 die gelinkten Libs an und verweigert die Erstellung als Service, sobald GUI-Libs eingebunden sind? Ich möchte vermeiden, für GUI und Service unterschiedliche Executables zu erstellen, denn das muss ja auch gewartet, dokumentiert und von Leuten in der Gastronomie ohne erweiterte Systemkenntnisse verstanden werden...

Gruß,

Stefan

Re: Druckserver als Windows Dienst

von Metafrage » Fr 15. Dez 2017, 15:43

Hallo,
entschuldigt bitte, dass ich den Beitrag noch einmal ausgrabe.

Benötigt die Serveranwendung unbedingt die Oberfläche?
Zur Konfiguration ist es hilfreich, wenn dann aber alles läuft, kann es halt passieren, das einer unbeabsichtigt das Fenster schließt...

Der Tipp mit dem Parameter hat bei mir (Windows 10 - 32bit) jedenfalls geholfen. Das Fenster verschwindet komplett und kann auch nicht mehr in den Vordergrund geholt werden. Sprich es verhält sich wie ein Dienst :)

Falls Stefan das Programm ohne Oberfläche als Komandozeilenprogramm kompiliert, könnte man den Dienst/Service mit folgendem Befehl in einer mit Administratorrechten erstellen Konsole erstellen. (Der zweite Befehl löscht den Dienst wieder.) In Windows 10 klappt das nicht, da von Windows aus sämtliche Fenster blockiert werden. Das hat zur Folge, das sich das Programm beim starten aufhängt.

Code: Alles auswählen

sc create OrderSprinterPrinterService start= auto binPath= ""C:\PfadzuExe\OrderSprinterPrintserver.exe" /invisible /start "/config:C:\PfadzuConfig\POSPrinterServer.xml""
sc delete OrderSprinterPrinterService
Gruß,
Michael

Re: Druckserver als Windows Dienst

von udgesbou » Mo 9. Okt 2017, 23:42

Habe alles super hinbekommen, habe einfach auf die bestehende "POSPrinterServer.xml verwiesen, der Druckserver startet jetzt wie gewünscht beim Start des Rechners, danke :mrgreen:


Grüße

Re: Druckserver als Windows Dienst

von pichel » Mo 9. Okt 2017, 23:34

In der Oberfläche siehst du, welche Konfigurationsdatei inklusive Pfadangabe verwendet wird. Am besten gibst du diese Datei an.

Du kannst auch eine beliebige noch nicht existierende Datei angeben, dann wird sie beim ersten Aufruf des Printservers angelegt (insofern das Verzeichnis beschreibbar ist), nur musst du dann die Konfiguration wieder neu vornehmen.

Re: Druckserver als Windows Dienst

von udgesbou » So 8. Okt 2017, 23:20

Was müsste denn dann in der "config.cfg" stehen, weil die habe ich nicht?

Ich habe nur die standartmäßig erstellte "POSPrinterServer.xml"


Grüße

Re: Druckserver als Windows Dienst

von pichel » So 8. Okt 2017, 22:59

Hallo,

man kann den Windows-Printserver schon beim Aufruf mit einigen Parametern starten, z.B.:

Code: Alles auswählen

OrderSprinterPrintserver.exe /start /config:"c:\config.cfg"
In dem Fall wird die Abarbeitung der Druckjobs sofort gestartet (Parameter /start) und die Konfigurationsdatei "C:\config.cfg" verwendet.

Gruß,

Stefan

Re: Druckserver als Windows Dienst

von udgesbou » So 8. Okt 2017, 22:12

Servus,
wenn ich den Druckserver allerdings in Windows starte, dann öffnet sich das Fenster und dann muss ich ja um Fenster unten noch auf die "Start"-Schaltfläche klicken, damit der Server startet.
Ist es auch umsetzbar, dass das alles beim Start von Windows geschieht, ohne dass man noch etwas klicken muss?


Grüße

Re: Druckserver als Windows Dienst

von pichel » Sa 16. Sep 2017, 13:39

Hallo,

sollte doch per instsrv.exe möglich sein.

Aber ich würde das Programm einfach per Kommandozeilenargument ("/invisible") in den Hintergrund setzen. Dann kann man es bei Bedarf wieder in den Vordergrund holen, um vielleicht Einstellungen zu ändern.

Gruß,

Stefan

Druckserver als Windows Dienst

von Kurdirektor » Sa 16. Sep 2017, 11:18

Hallo Stefan,

ein Wunsch aus der Praxis. Der Printserver unter Windows läuft auf einem PC, der auch von den Kellnerinnen für andere Tätigkeiten benötigt wird. Jetzt kommt es vor, dass die Mädels den Printserver schließen, um z.B. Hotelzimmer einzugeben. Damit ist der ganze Bestellungprozess natürlich blockiert.
Schön wäre es, den Printserver als Dienst zu starten, dann kann dieser nicht so ohne weiteres ausgeschaltet werden.

Ist aber ein Luxusproblem und nicht dringend, da die Kollegen in der aktuellen Testphase sehr begeistert und beeindruckt von der Software sind.

Aloha
Kurdirektor

Nach oben