w5717 发表于 4 天前

yuangao 发表于 2025-3-31 09:14
感谢,老吴, 为什么不添加进去..

不知道,可能偷懒吧:shutup:

yuangao 发表于 4 天前

w5717 发表于 2025-3-31 09:51
不知道,可能偷懒吧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;
}

w5717 发表于 4 天前

yuangao 发表于 2025-3-31 10:26
OpenSCManagerW




牛比,我那个版本是抄的易语言过来的,x64x86都可以用,W版本的不知道通不通用了
页: 1 [2]
查看完整版本: 请求[ 服务类 ]添加[ 置服务启动类型 ]