cb 服务程序开发
来源:互联网 发布:全球免费网络电视直播 编辑:程序博客网 时间:2024/06/06 02:44
好久没有写东西了,实在是太懒惰了,前一阵写了一个服务程序,觉得挺简单的,但是某日一位小弟却来求救,声称服务程序很灵异,为此研究了一下,果然有点意思:
一、服务程序的创建:
其实服务程序的开发很简单,只要选择菜单File-->New-->Other--->Service Application即可创建一个服务程序,工程创建后将自动生成一个service模块。这样一个服务程序就已经生成了,修改工程名称为myservice.exe,将service的DisplayName修改为:我的service,Name修改为MyService。
顾名思义:这里分别设置了程序名称,服务的显示名称和服务名。
这些工作做完,服务就可以编译运行了。
二、运行的方法:
在cmd模式,进入程序所在路径下运行以下命令:
安装服务:myservice.exe /install 回车 ——这里用程序文件名
启动服务:net start myservice 回车 ——这里用service的Name
停止服务:net stop myservice 回车 ——这里用service的Name
卸载服务:myservice.exe /uninstall 回车 ——这里用程序文件名
三、在服务启动时现实一个窗口:
怎么样是不是很简单,不过要想在程序启动时显示一个提示,就变得很有意思了,因为SvcMgr和Forms单元中都有Application定义,因此在服务程序中使用窗体有一些限制。
首先,你可能会想到MessageBox,不幸的是SvcMgr::Application中没有MessageBox方法;
其次,尝试使用ShowMessage,结果服务能正确安装,但是一直在启动,停止、暂停、重起状态没有加载上,更悲剧的是服务状态显示是启动,但是实际没启动,又不能关闭,又不能卸载,最后忍无可忍用命令:sc delete myservice才把它搞掉。
最后,没办法只好新建了一个Form来显示提示信息,在service的onstart事件中写入以下代码:
TForm2 * nf = new TForm2(Application);
nf->Label1->Caption = "启动成功!";
nf->Show( );
Started = true;
ReportStatus();
LogMessage(DateTimeToStr(Now())+" 服务启动",EVENTLOG_INFORMATION_TYPE,0,0);
安装运行服务正常,可是窗口没弹出来。
注意:这里需要做一下设置,将service的interactive属性设为true即可以看到窗口了。
自己动手试一下吧,好运。
- cb 服务程序开发
- cb
- 后台服务程序开发
- p2p服务程序开发
- 摘抄一篇cb下开发opengl文章
- SDL基础-1、搭建开发环境(CB)
- 后台服务程序开发模式
- 后台服务程序开发(完整版)
- 后台服务程序开发一至四
- 后台服务程序开发模式
- 后台服务程序开发模式
- windows服务程序开发详解
- Windows服务程序开发介绍
- 在CB中用socket api来写网络通讯程序
- cb串口测试程序http://linux-sunxi.org/A20/PIO
- windows系统服务程序的开发
- Linux下后台服务程序开发
- .NET开发 Window 服务程序心得
- 插入排序法_c实现 (1)
- 纽约时报谈乔布斯:总是被模仿 无法被复制
- Java_多态
- makefile规则
- Lua与C/C++交互——C/C++调用Lua脚本
- cb 服务程序开发
- kernel移植
- 使用RMAN传输表空间!
- 我认识的乔布斯
- ARM-Thumb 过程调用标准
- ORACLE表连接方式
- 关于ASP.NET Deployment Content Map
- 杜拉拉升职记1
- memset函数详细说明