moin,
ich wollte den service display namen mit folgender funktion (im netz gefunden) auslesen
Delphi-Quellcode:
function ServiceGetDisplayName(
sMachine,
sServiceKeyName :
string ) :
string;
var
//
// service control
// manager handle
schm : SC_Handle;
//
// max display name len
nMaxNameLen : integer;
//
// temp. string
psServiceName : PChar;
begin
Result := '
';
// expect a service display
// name shorter than 255
// characters
nMaxNameLen := 255;
// connect to the service
// control manager
schm := OpenSCManager(
PChar(sMachine),
Nil,
SC_MANAGER_CONNECT);
// if successful...
if(schm > 0)
then
begin
psServiceName :=
StrAlloc(nMaxNameLen+1);
if(
nil <> psServiceName)
then
begin
if( GetServiceDisplayName(
schm,
PChar(sServiceKeyName),
psServiceName,
nMaxNameLen ) )
then
begin
psServiceName
[nMaxNameLen] := #0;
Result :=
StrPas( psServiceName );
end;
StrDispose(psServiceName);
end;
// close service control
// manager handle
CloseServiceHandle(schm);
end;
end;
nur beim compilieren kommt immer folgender fehler:
"Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen"
was sich hierauf bezieht :
Delphi-Quellcode:
GetServiceDisplayName(
schm,
PChar(sServiceKeyName),
psServiceName,
nMaxNameLen )
was isn da falsch?