Ein Service ist ein Dienst der mit Windows geladen wird, er hat eine Grundeinstellung wie er geladen werden soll (automatisch, manuell usw) und man kann ihn auf Benutzer festlegen.
Wenn Du zu jeder Zeit alles abfangen willst, egal ob User angemeldet oder nicht, dann solltest Du Dir einen HookService basteln der alles Systemweit logt und Dein HookTool (Deine App mit der
GUI) umschreiben das es Nachrichten vom HookService verdaut anstelle das es auf Eingaben eines angemeldeten Users wartet.
Momentan wird Dein Programm im Prozessbereich des angemeldeten Users ausgeführt, so sollte es jedenfalls sein, da es jetzt bereits auf einigen Pcs im Windows Logon-Screen arbeitet habe ich irgendwo was falsch verstanden und frage mich an welcher Stelle Dein Programm bereits geladen wird.