Delphi XE 10.2.2
通过调用winexec进行服务注册,这样写 winexec(PAnsiChar('aaa.exe /install '), SW_Hide)可以成功注册,但是这样写就一直不能注册服务
var
v_str:string;
begin
v_str:='aaa.exe /install';
winexec(PAnsiChar(v_str), SW_Hide)
end;
在网上查了资料发现string类型的变量转换成PAnsiChar类型的话,需要将他转换成AnsiString,再转换成PAnsiChar就可以,于是就有下面可以成功执行的代码:
var
v_str:string;
begin
v_str:=ExtractFileName(Application.ExeName) + ' /install ';
winexec(PAnsiChar(AnsiString(v_str)), SW_Hide);
end;