编写Windows服务的问题

zengkun100 2005-07-13 06:58:02
诸位:请给些参考资料。
我怎么觉得很难查到呀!
用API和ATL编写服务都可以。
...全文
208 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
kunyi 2005-07-22
  • 打赏
  • 举报
回复
TCHAR szPath[512];
if(!::GetModuleFileName(NULL,szPath,511))
{
return FALSE;
}
BOOL ret=FALSE;
SC_HANDLE scm=NULL;
SC_HANDLE srv=NULL;
scm=::OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS);
if(scm)
{
DWORD* pdwTagID=((m_dwServiceType == SERVICE_KERNEL_DRIVER ||
m_dwServiceType == SERVICE_FILE_SYSTEM_DRIVER) &&
(m_dwStartType == SERVICE_BOOT_START ||
m_dwStartType == SERVICE_SYSTEM_START)) ?
&m_dwTagID : NULL;
srv=::CreateService(scm,
m_lpszServiceName,
m_lpszDisplayName,
m_dwDesiredAccess, //SERVICE_ALL_ACCESS
m_dwServiceType, //SERVICE_WIN32_OWN_PROCESS
m_dwStartType, //SERVICE_AUTO_START
m_dwErrorControl, //SERVICE_ERROR_NORMAL
szPath,
m_lpszLoadOrderGroup,
pdwTagID,
m_lpszDependencies,
m_lpszStartName,
m_lpszPassword);
if(srv)
{
ret=TRUE;
::CloseServiceHandle(srv);
}
::CloseServiceHandle(scm);
}
if(ret)
{
RegisterApplicationLog( szPath,
EVENTLOG_ERROR_TYPE|
EVENTLOG_WARNING_TYPE|
EVENTLOG_INFORMATION_TYPE);
AddToMessageLog(TEXT("服务已经安装"),EVENTLOG_INFORMATION_TYPE);
}
return ret;
gonch 2005-07-22
  • 打赏
  • 举报
回复
补充一下,只看CreateService函数的例子是不够的。还要看ServiceMain相关系列函数才行
leehq 2005-07-22
  • 打赏
  • 举报
回复
MSDN里的CreateService函数有M$的例子,你不会看吗?!
zengkun100 2005-07-16
  • 打赏
  • 举报
回复
再顶一下吧!
gonch 2005-07-15
  • 打赏
  • 举报
回复
MSDN
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/service_functions.asp

本来想贴例子上来了,但是找起来有些麻烦,只好说一下思路和主要的函数,参考一下MSDN里面的例子吧。

首先要注册service
OpenSCManager打开service管理器
CreateService创建service
CloseServiceHandle关闭service管理器

service的主程序
main中调用StartServiceCtrlDispatcher执行service的主函数
service的主函数中
RegisterServiceCtrlHandlerEx注册service控制函数
各个时点调用report(用SetServiceStatus实现)汇报service当前状态
OpenSCManager打开service管理器
OpenService打开service
service处理
CloseServiceHandle关闭service
CloseServiceHandle关闭service管理器
service控制程序
接受service管理器的信号(主要是停止信号),然后处理
sboom 2005-07-14
  • 打赏
  • 举报
回复
放飞技术网上有4篇文章,我的blog上有一篇文章。
zengkun100 2005-07-14
  • 打赏
  • 举报
回复
顶呀!
zengkun100 2005-07-13
  • 打赏
  • 举报
回复
自己顶一下

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧