基于MFC编写Windows服务程序
来源:互联网 发布:随机抽取软件 编辑:程序博客网 时间:2024/06/06 14:23
近期由于项目需要,编写了一个基于MFC对话框的Windows服务程序,现把方法和大家分享一下,希望高手指正。程序实现的基本功能如下:
1、 注册为Windows服务程序,随系统启动
2、 作为服务端,提供客户端的连接(TCP)
3、 有可视化界面,监视客户端的连接情况
4、 具有系统托盘图标
最终运行界面为:
Windows服务程序的基本概念不再介绍,不懂的可以去百度上搜一下,这里直接介绍程序的开发步骤。
一、创建基于MFC对话框的项目(这里使用的是VC6.0,项目名称为SocketTest)二、注册为Windows服务程序
(1)在SocketTest.cpp文件中定义全局变量(添加文件包含:#include"WINSVC.h")(2)修改BOOL CSocketTestApp::InitInstance()函数,注释掉如图代码,添加如图代码。
(3)几个全局函数的代码如下。
(4)在主对话框中自定义消息:#define WM_USER_CLOSE_WND(WM_USER+111),用于程序退出。在ServerSocket.h文件中,添加CSocketTestDlg类的消息函数:afx_msg void OnUserClose(WPARAM wParam,LPARAM lParam),并在ServerSocket.cpp文件中添加消息映射ON_MESSAGE(WM_USER_CLOSE_WND,OnUserClose),OnUserClose函数的实现代码为:
三、实现系统托盘图标
(1)在ServerSocket.h文件中定义:#define UM_TRAYNOTIFY (WM_USER+110) ,在CSocketTestDlg类中添加成员变量:NOTIFYICONDATA m_nid,添加消息定义函数:afx_msg LRESULT OnTrayNotify(WPARAM wParam,LPARAMlParam);;在SocketTestDlg.cpp文件中添加消息映射:ON_MESSAGE(UM_TRAYNOTIFY,OnTrayNotify),OnTrayNotify函数代码如下:(2)在CSocketTestDlg的构造函数和析构函数中添加如下代码
(3)在BOOL CSocketTestDlg::OnInitDialog()函数中添加如图代码
(4)添加窗口的WM_SIZE和WM_CLOSE消息函数
(5)在资源管理器中添加一个菜单(IDR_MENU_TRAY),添加两个菜单项:“恢复窗口”(IDR_TRAY_RESTORE)和“退出”(IDR_TRAY_EXIT)
四、实现网络服务
(1)添加类CServerSocket,派生于CSocket,对该类进行类向导添加三个函数OnAccept()、OnClose()、OnReceive(),函数中调用的函数都在主对话框中实现。(2)修改主对话框的类定义。
(3)在BOOL CSocketTestDlg::OnInitDialog()函数中打开网络服务,并实现添加上线用户、删除下线用户、接收数据的函数。
五、将编译好的exe文件注册为服务并运行
打开cmd,依次输入命令:SocketTest.exe /install和sc start AutoWorkSrv,这时程序已运行,并可以在控制面板的计算机管理中看到如下界面:六、结束语
以上内容整理匆忙,难免有不当之处,请批评指正。需要源码的可以和我联系。
我的邮箱:459238972@qq.com- 基于MFC编写Windows服务程序
- 基于MFC对话框的Windows服务程序
- 编写 Windows 服务程序
- windows 服务程序编写
- Windows服务程序编写
- Windows服务程序编写
- 编写windows服务程序
- windows服务程序编写
- Windows 服务程序编写
- 编写windows服务程序
- 基于Python编写的Windows服务程序参考代码
- win32服务 mfc 结合 编写有图形界面的 Windows 服务程序
- WINDOWS后台服务程序编写
- 如何编写 Windows 服务程序
- C++编写Windows服务程序
- 如何编写windows服务程序
- WINDOWS后台服务程序编写
- WINDOWS后台服务程序编写
- jquery获取iframe页面中的元素
- 【编程语言】Struts2 中 iterator 标签的用法
- 【转载】DataBinding
- iOS 开发常用的开源组件
- EventBus源码解读详细注释(1)register的幕后黑手
- 基于MFC编写Windows服务程序
- zoj 1092 moving tables
- 【LeetCode-40】Combination Sum II
- CSS3参考文档
- AnimationEvent事件问题
- block循环引用情况
- Cortex M3 NVIC与中断控制
- kettle 邮件 附件 smtp
- zoj1076 gene assembly