Hooi hoi!
Es gibt eine Sache bei StartService() , die ich nicht ganz verstehe:
lpServiceArgVectors
[in] Pointer to an array of pointers to null-terminated strings to be passed to a service as arguments. Driver services do not receive these arguments. If no arguments are passed to the service, this parameter can be NULL. The service accesses these arguments through its ServiceMain function. The first argument (argv[0]) is the name of the service by default, followed by the arguments, if any, in the lpServiceArgVectors array.
Also ein Zeiger auf ein Array, das wiederum Zeiger auf nullterminierte Strings enthält, wobei der erste dieser Zeiger aber der Servicename sein muss?!
Wer ist für diese Form der Parameter-Übergabe verantwortlich? *grrr*
Hab ichs wenigstens richtig verstanden?
Jedenfalls weiß ich nun nicht genau, was ich der Funktion nun schicken soll.
Vielleicht sowas?
Code:
var ParamsArray: array of Pchar;
{...}
StartService(SCHandle, Length(ParamsArray)-1, ^ParamsArray);
Was mich auch verwirrt, ist dieser Parameter:
dwNumServiceArgs
Specifies the number of argument strings in the lpServiceArgVectors array. If lpServiceArgVectors is NULL, this parameter can be zero.
Soll diese Nummer jetzt die Anzahl der tatsächlichen Parameter ohne Argument null, das ja "by default" der Name des Services ist, oder einfach die Länge des Arrays sein?
Gruß,
Dani
Dani H.