Dienst-Programmierung mit ner MessageBox?
-
lippoliv schrieb:
Was ist der Unterschied zwischen einem Dienst und einem Programm?
^^ rethorisch, wird gliech darunter selbst von mir erklärt, natürlich weiss ich schon dass es auch in der "Startmethode" unterschiedlich ist...
dot schrieb:
richtig. aber wenn du erst anfänger in sachen c und winapi bist, warum dann willst du dann gleich einen dienst programmieren!?
das is ungefähr gleich absurd...erklärst du schon selbst:
dot schrieb:
soweit ich mich erinnern kann gings doch nur darum ein programm "im hintergrund" laufen zu lassen!? warum machst du nicht einfach ein normales programm, z.b. mit einem tray icon und einem eintrag im autostart,[...]
Genau dass ist der Knackpunkt, dass bekomme ich evtl auch hin, aber da wird es schon gegen meine vorstellung:
es ist sichtbar...
Es soll ja komplett unsichtbar sein.
Natürlich, der User muss es erst auf "Autostart" setzen oder so, also er weiss schon, dass dieses Programm auf seinem Computer ist, aber wenn es im Tray ist... da sind meiner meinung nach schon x-1000 andere Programme oder?Klar es ist für mich echt nicht einfach, die WinAPI zu verstehen, oder damit umzgehen, aber dass heißt ja nicht, dass ich es nicht versuchen werde.
Warum ich dass jetzt schon machen will?Ich werde nicht meine ganze Ausbildung lang in C programmieren, sonder evtl. in 1 - 2 Monaten mit Java beginnen, wass ich dann wohl eine ganze weile machen werde.
Und wenn dass beginnt, werde ich keine Zeit mehr haben für C...
PS: Ich werde jetzt nochmal einen anlauf für den Tray versuchen, aber eins ist sicher: es wird nicht so geil, wie wenns ein Dienst währe.
-
lippoliv schrieb:
Der Dienst startet ja inzwischen eine *.exe Datei, diese soll dann ein Fenster anzeigen.
Ich wiederhole mich. Du solltest dich mal mit dem Thema beschäftigen. Dienste laufen in einer anderen WindowsStation. Wenn ein Dienst ein Programm startet, dass der Benutzer sehen können soll, muss der Dienst dieses Programm in der interaktiven WindowsStation des Benutzers und auf dessen (default) Desktop starten.
lippoliv schrieb:
aber da wird es schon gegen meine vorstellung:
es ist sichtbar...
Und was ist dagegen einzuwenden, wenn der Benutzer sieht, dass er ein Chatprogramm laufen hat?
-
Manche Leute stört es halt wenn 5 Symbole neben der Uhr im tray sind -wir würden ja nur 1 belegen-...
Du brauchst dich nicht wiederholen, aber die letzte Info hattest du noch nciht erwähnt...
Luckie schrieb:
Wenn ein Dienst ein Programm startet, dass der Benutzer sehen können soll, muss der Dienst dieses Programm in der interaktiven WindowsStation des Benutzers und auf dessen (default) Desktop starten.
Würdest du mir dazu einige Links listen könnten?
-
Und wer sagt, dass man dazu ein Icon im Tray braucht.
Genug Programme sind aktiv ohne ein bischen UI und machen sich nur bemerkbar wenn es notwendig ist.
-
Und wie läuft sowas, z.B. das Beenden des Programms?
-
Kill im Taskmanager.
-
Na super...
Dass ist ja wohl mindestens so unsaubber wie "SendMessage" oder so...
Ausserdem: Setz mal die falschen Leute an die Falschen Programme oder halt, die falschen Leute an die dazu passenden Programme...
Will nicht wissen wie lange dass wiederherstellen dess Systems dauert.
-
Dann pack halt nen zusätzliches Icon ins Startmenü oder so, mit welchem deine Anwendung sich beenden lässt.
Dienst mit MessageBox oder ähnlichem finde ich merkwürdig. Normalerweise läuft der Dienst einfach und packt seine Meldungen in die Ereignisanzeige? Für gewöhnlich sitzt sowieso niemand den ganzen Tag an nem Server rum und wartet drauf das irgendwelche MessageBoxen auftauchen

-
Startmenueicon -> startet Programm -> Programm sendet WM_CLOSE zu dem versteckten Programm -> Startmenueicon-Porgamm beendet sich selbst...
Wo ist da der unterschied... oder habe ich dich falsch verstanden?
-
Genau so hab ichs gemeint, wobei ich SendMessage() jetzt nicht unsauber finde

So sieht das zumindest auch Microsoft:
How To Terminate an Application "Cleanly" in Win32Der Unterschied ist, das du kein ShellNotifyIcon neben der Uhr hast.