首页| 论坛| 消息

标题:用QT创建WINDOWS服务程序
作者:liaofg
日期:2009-07-25 21:24
内容:

我想用QT创建一个类似于WINDOWS 服务管理器中的服务,QT程序能做到吗?我查了一下网上,没有看到有这方面的介绐,QT4。5的帮助文档中也没有找到相关的说明,请高手指点
先行谢过了!


#1 [XChinux 07-25 22:54]
这个与Qt没啥关系。
我写一段,你将东西套进去就可以了,这里原来写的是定时服务,用的是boost::asio库,当然最好看一看boost::asio相关介绍。
#include
#include
#include
#include
#include
#include
#ifdef _WIN32
#include
#endif
class printer
{
public:
printer(boost::asio::io_service &io)
{
........
}
~printer()
{
}
......
};

#ifdef _WIN32
boost::function0 console_ctrl_function;
SERVICE_STATUS_HANDLE g_ssh = NULL;
DWORD g_dwStatus = SERVICE_STOPPED;
int g_exitcode;
BOOL WINAPI console_ctrl_handler(DWORD ctrl_type)
{
switch (ctrl_type)
{
case CTRL_C_EVENT:
case CTRL_BREAK_EVENT:
case CTRL_CLOSE_EVENT:
case CTRL_SHUTDOWN_EVENT:
console_ctrl_function();
return TRUE;
default:
return FALSE;
}
}
void SetStatus(DWORD dwStatus)
{
SERVICE_STATUS ss = {
SERVICE_WIN32_OWN_PROCESS,
SERVICE_STOPPED,
SERVICE_ACCEPT_STOP,
NO_ERROR,
0,
& ..
#2 [XChinux 07-25 22:55]
boost::asio的示例中有写Win32服务及POSIX服务的示例程序,上面的代码就是从里面摘出来的。
注册服务命令:

sc create TestServ binPath="your/exec/path" start= auto
删除服务
sc delete TestServ

启动服务
net start TestServ
停止服务
net stop TestServ
#3 [liaofg 07-26 09:43]
非常感谢版主
#4 [yj_yulin 07-26 09:43]
qt solution有关于service的,跟qt整合得好一点,不过如果只是想实现服务,不是要搞什么跨平台啊,库啊之类的,在win上直接参考msdn吧,搜索也可以给出一大堆的代码
#5 [dbzhang800 07-27 19:16]
恩, qtservice挺好的
http://www.qtsoftware.com/products/appdev/add-on-products/catalog/4/Utilities/qtservice/

<< 1 2 >> (1/2)

回复 发表
主题 版块