| 
 | 
OpenSCManagerW   
 
 
 
<火山程序 类型 = "通常" 版本 = 1 /> 
方法 置启动类型 <公开 静态 类型 = 逻辑型 @禁止流程检查 = 真 @视窗.外部头文件 = "..\\um\\winsvc.h"> 
参数 服务名称 <类型 = 文本型> 
参数 启动类型 <类型 = 变整数 注释 = "启动类型以下选项:2=自动;3=手动;4=禁用" @默认值 = 2> 
{ 
    @ SC_HANDLE schSCManager = NULL; 
    @ SC_HANDLE schService = NULL; 
    @ BOOL bresult = FALSE; 
    // 打开服务控制管理器数据库(使用W版本) 
    @ schSCManager = OpenSCManagerW(NULL, NULL, SC_MANAGER_ALL_ACCESS); 
    @ if (schSCManager != NULL) 
    @ { 
    @     // 直接传递宽字符服务名称(无需转换) 
    @     schService = OpenServiceW(schSCManager, (LPCWSTR)@<服务名称>, SERVICE_CHANGE_CONFIG); 
    @     if (schService != NULL) 
    @     { 
    @         // 调用W版本配置函数 
    @         bresult = ChangeServiceConfigW( 
    @             schService,  
    @             SERVICE_NO_CHANGE,  
    @             (DWORD)@<启动类型>,  
    @             SERVICE_NO_CHANGE,  
    @             NULL, NULL, NULL, NULL, NULL, NULL, NULL 
    @         ); 
    @         CloseServiceHandle(schService); 
    @     } 
    @     else 
    @     { 
    @         // 调试时获取错误码 
    @         // DWORD dwError = GetLastError(); 
    @     } 
    @ } 
    @ CloseServiceHandle(schSCManager); 
    @ return bresult; 
} |   
 
 
 
 |