社区
进程/线程/DLL
帖子详情
编写Windows服务的问题
zengkun100
2005-07-13 06:58:02
诸位:请给些参考资料。
我怎么觉得很难查到呀!
用API和ATL编写服务都可以。
...全文
219
8
打赏
收藏
编写Windows服务的问题
诸位:请给些参考资料。 我怎么觉得很难查到呀! 用API和ATL编写服务都可以。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
打赏
举报
回复
自己顶一下
得到计算机上
Windows
目录和系统目录
- **
Windows
目录**: 主要指C:\
Windows
,这是
Windows
操作系统的根目录,包含了系统启动文件、驱动程序、系统设置、
Windows
服务
等关键组件。 - **系统目录**: 这通常指的是
Windows
\System32,这是一个包含系统核心库...
ws2_32.lib.zip
这个API提供了标准的、跨平台的网络通信方法,使得开发者可以在不同的操作系统上
编写
和运行网络应用程序。ws2_32.dll提供了创建套接字、绑定、监听、连接、发送和接收数据等网络通信的基本功能。由于它是动态链接库...
得到操作系统的版本
5. **处理不同
Windows
版本的兼容性
问题
:** 获取到版本信息后,开发者可以
编写
代码来检查操作系统版本,根据需求实现不同的功能或提供特定版本的兼容性支持。例如,避开不支持的API调用,或者在新功能上启用条件...
如何
编写
windows
服务
程序
如何
编写
windows
服务
程序 By:张鹏/Hikvision 这两天想学习关于如何
编写
windows
服务
程序的知识,就上网查了些资料。看了一篇文章《用C 语言
编写
Windows
服务
程序的五个步骤》。但可能由于译者的疏忽,忘记了将关键...
Rust
编写
Windows
服务
编写
Windows
服务
可选语言很多, 其中C#最简单。本着练手Rust语言,尝试用Rust
编写
一个
服务
。中ping-service示例提取了一个模板,只有替换
编写
两处/* */代码。笔记本策略经常恢复到合上盖子睡眠功能,写个小
服务
定时...
进程/线程/DLL
15,467
社区成员
49,171
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章