sc 创建svchost服务_xp 创建服务_svchost应用程序错误(13)

电脑杂谈  发布时间:2017-05-07 13:43:47  来源:网络整理

if (hscm == NULL)

throw "OpenSCManager()";char *bin = "%SystemRoot%\\System32\\svchost.exe -k netsvcs";schService = CreateService(

hscm, // SCManager database

svcname, // name of service

NULL, // service name to display

SERVICE_ALL_ACCESS, // desired access

SERVICE_WIN32_SHARE_PROCESS, // service type

SERVICE_AUTO_START, // start type

SERVICE_ERROR_NORMAL, // error control type

bin, // service's binary

NULL, // no load ordering group

NULL, // no tag identifier

NULL, // no dependencies

NULL, // LocalSystem account

NULL); // no password if (schService == NULL)

{

OutputString("CreateService(%s) error %d", svcname, rc = GetLastError());

throw "";

}

OutputString("CreateService(%s) SUCCESS. Config it", svcname); CloseServiceHandle(schService);

CloseServiceHandle(hscm); //config service

hkRoot = HKEY_LOCAL_MACHINE;

strncpy(buff, "SYSTEM\\CurrentControlSet\\Services\\", sizeof buff);

strncat(buff, svcname, 100);

rc = RegOpenKeyEx(hkRoot, buff, 0, KEY_ALL_ACCESS, &hkRoot);

if(ERROR_SUCCESS != rc)

{

OutputString("RegOpenKeyEx(%s) KEY_SET_VALUE error %d.", svcname, rc);

throw "";

}rc = RegCreateKey(hkRoot, "Parameters", &hkParam);

SetLastError(rc);

if(ERROR_SUCCESS != rc)

throw "RegCreateKey(Parameters)";if(!GetModuleFileName(HMODULE(hDll), buff, sizeof buff))

throw "GetModuleFileName() get dll path";rc = RegSetValueEx(hkParam, "ServiceDll", 0, REG_EXPAND_SZ, (unsigned char*)buff, strlen(buff)+1);

SetLastError(rc);

if(ERROR_SUCCESS != rc)

throw "RegSetValueEx(ServiceDll)";OutputString("Config service %s ok.", svcname);


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-45730-13.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 增谷康纪
      增谷康纪

      为何不说现在人多

    • 韩察
      韩察

      正是光复我国版图的最好时机呢

    • 周元范
      周元范

      得了便宜还卖乖

    热点图片
    拼命载入中...