MFC应用程序 变身成 windows服务程序
来源:互联网 发布:java实现图文混排 编辑:程序博客网 时间:2024/06/05 16:59
最近开发一个运行在winserver2008的服务程序,有简单配置界面,有socket服务端代码,有一些windows消息处理(比如WM_WTSSESSION_CHANGE 、WM_TIMER);
很简单的一个程序,也不需要什么特别的要求(跨平台什么的),所以直接用MFC写了,结果一用出问题了:
该2008服务器经常用来做RDP-remoteapp模式的服务器来用(比如IE,原因是因为网络限制,只有服务器能访问特定的IP,比如https://192.168.1.123),
在RDP-RemoteApp(IE)模式下,用administratro帐号登录,结束时会导致帐号注销,一注销,我的托盘程序就被杀死了。。。
就想如何不让它被杀死, 就想改成服务吧,一般的服务写过,主要是socket服务程序,而我这个程序已经写完了,代码不算少,全部重写为服务程序,效率太低了;
而且还必须要处理好几个windows消息, 倒腾了近1天,终于实现了,很简单从MFC 应用程序改成windows服务,特此记录一下!
windows服务相关的代码就不写了,网上一搜就很多,也很好,主要说MFC应用程序的改动.
在InitInstance函数中,把创建Dlg的代码都注释掉(暂时),换成服务开始函数(主要包括SERVICE_TABLE_ENTRY和StartServiceCtrlDispatcher),
在entrytable[0].lpServiceProc所指向的服务主函数中,最后结束的位置协商创建Dlg的代码(改成非模态,然后加上消息循环),如下:
CMyDlg dlg;dlg.Create(IDD_MYDIALOG_DIALOG,NULL);dlg.ShowWindow(SW_SHOW);MSG msg;whie(GetMessage(&msg, dlg.GetSafeHwnd(), 0,0)){ TranslateMessage(&msg); DispatchMessage(&msg);}
对,重点就上边这几句话,就完成了(必须非模态,必须有消息循环)
希望对大家有帮助!
0 0
- MFC应用程序 变身成 windows服务程序
- 基于MFC对话框的Windows服务程序
- 基于MFC编写Windows服务程序
- 将基于MFC的对话框应用程序修改为服务程序
- 将基于MFC的对话框应用程序修改为服务程序
- 将基于MFC的对话框应用程序修改为服务程序
- 将基于MFC的对话框应用程序修改为服务程序
- 将基于MFC的对话框应用程序修改为服务程序
- 将基于MFC的对话框应用程序修改为服务程序---------
- windows应用程序与MFC
- 怎样把一个应用程序改写一个windows服务程序
- 创建 Windows 服务应用程序
- Windows 服务应用程序介绍
- Windows服务应用程序
- Windows 服务应用程序介绍
- windows服务和应用程序
- Windows 服务应用程序
- MFC注册服务程序
- hadoop HA机制
- bzoj 3781: 小B的询问 莫队算法+分块
- NYOJ106 背包问题
- 软件版本的管理
- 前段时间有事情了,这几天发点以前总结的东西
- MFC应用程序 变身成 windows服务程序
- 设计模式-桥接模式
- 阿里云 EDAS-HSF 环境搭建及例子编写
- 【case when】
- MySQL密码修改和删除
- mac桌面与屏膜保护程序卡死完美解决方法
- 门门精通还是精通一门
- QSLite数据库数值加1
- CSS教程:div垂直居中的N种方法以及多行文本垂直居中的方法