Nicht schlimm, aber k.A. warum ServiceGetStatus/ServiceRunnig mit PChar und nicht auch mit String deklariert wirden.
Da steckt aber evtl. auch der Wurm drin, wenn z.B. der Rechnername (aus welchen Gründen auch immer) unter 2012 nicht stimmt oder richtig ermittelt wird. Wenn man das auf dem lokalen Rechner/Server aufruft, reicht auch "nil".
Delphi-Quellcode:
SMHandle := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
...
OpenService(SMHandle,PWideChar('ServiceName'),SERVICE_QUERY_STATUS);
...
Tut bei mir jedenfalls auf alles
OS.