手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>delphi>列表

为Windows Service添加服务描述

来源:互联网 作者:西部数码 时间:2008-04-09
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

实际工作中,需要编写一个Windows服务,以实现分布式呼叫计费控制功能,当然,这个项目是由偶来完成啦,经过了俩周的开发终于被偶一举搞掂!再经过多次测试-修复-登记缺陷-再测试之后,一切OK了!

哈哈…………:)

高兴之余,在Windows服务浏览器中无意中发现,我的服务PP(指服务描述)后面怎么是空的!:(这玩意儿可是关键东东,也是公司形象问题嘛,何况要是没有它服务怪不好看的,是吧?哈哈。之后的工作就是浏览偶公司那正正版版的微软MSDN,好不容易找到能够让偶修改的方法了。先说声“再见”,因为下面代码展示完后偶就要结束文章了,嘿嘿。

方法:ChangeServiceConfig2函数,具体实现如下:

void ReconfigureService(LPSTR lpServiceName, LPSTR lpDesc)
{
SC_HANDLE schSCManager = ::OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS);
if (schSCManager != NULL)
{
// Need to acquire database lock before reconfiguring.
SC_LOCK sclLock = LockServiceDatabase(schSCManager);
if (sclLock != NULL)
{
// Open a handle to the service.
SC_HANDLE schService = OpenService(
schSCManager, // SCManager database
lpServiceName, // name of service
SERVICE_CHANGE_CONFIG); // need CHANGE access

if (schService != NULL)
{
SERVICE_DESCRIPTION sdBuf;
sdBuf.lpDescription = lpDesc;
if (ChangeServiceConfig2 (
schService,
SERVICE_CONFIG_DESCRIPTION, &sdBuf))
{
//MessageBox(NULL,"Change SUCCESS","",MB_SERVICE_NOTIFICATION);
}
CloseServiceHandle(schService);
}
UnlockServiceDatabase(sclLock);
}
CloseServiceHandle(schSCManager);
}
}

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!