MFC可不可以编写windows服务程序

我想写个记录U盘插入的windows服务U盘插入,响应系统的WM_DEVICECHANGE消息服务程序一般是控制台的,但是(据我所知)控制台程序不能响应系统消息不知道这种... 我想写个记录U盘插入的windows服务
U盘插入,响应系统的WM_DEVICECHANGE消息

服务程序一般是控制台的,但是(据我所知)控制台程序不能响应系统消息
不知道这种服务怎么写?
Sadusaga,可以说具体点吗?最好有例子

比如我新建一个MFC对话框程序,在OnInitDialog函数中调用CreateService函数吗?在程序结束时候要不要做什么善后工作?
我今天刚刚用你的方法试了一下,还是不行
我在程序一个按钮事件中用CreateService,确实创建了服务,但是在windows的服务管理器中启动它,却报错了:“错误1053: 服务没有及时响应启动或控制请求”

我在VC知识库的这个网页看到写系统服务的东西http://www.vckbase.com/document/viewdoc/?id=1474
首先不是要启动一个分派表吗?然后写服务控制函数、服务主函数。怎么这里调用CreateService函数?好像完全不一样啊……
展开
 我来答
风轻云度
2008-06-08 · TA获得超过1423个赞
知道大有可为答主
回答量:1835
采纳率:0%
帮助的人:0
展开全部
可以不是控制台的,通过调用CreateService创建服务。
schService = CreateService(
schSCManager, // SCManager database
TEXT("Sample_Srv"), // name of service
lpszDisplayName, // service name to display
SERVICE_ALL_ACCESS, // desired access
SERVICE_WIN32_OWN_PROCESS, // service type
SERVICE_DEMAND_START, // start type
SERVICE_ERROR_NORMAL, // error control type
szPath, // path to service's binary
NULL, // no load ordering group
NULL, // no tag identifier
NULL, // no dependencies
NULL, // LocalSystem account
NULL); // no password

dwServerType的属性要加上SERVICE_INTERACTIVE_PROCESS

这样服务才能显示界面。

通过成功的创建服务,系统就会启动的时候加载你的程序。
ufo1cn
2008-06-10 · TA获得超过448个赞
知道小有建树答主
回答量:412
采纳率:0%
帮助的人:221万
展开全部
msdn上说RegisterDeviceNotification可以给服务注册设备消息,
如果还不行就创建个隐藏窗口吧
这里调用这里调用CreateService相当于你说的文章中这段
sc create MemoryStatus binpath= c:\MyServices\MemoryStatus.exe

只是把程序安装成服务而已,程序本身还是要按照你说的要启动一个服务分派表的。我想RegisterDeviceNotification后系统就能发送设备消息到服务的控制处理器。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式