曼菲士 发表于 2024-1-10 13:47:28

【已解决】火山视窗开发的Windows服务能否作为GUI运行?

本帖最后由 曼菲士 于 2024-1-11 11:11 编辑

用C++写了个Windows服务实例,通过进程互斥实现GUI和Services同时存在,任务管理器中能看到两个同名不同PID的进程,在Windows服务管理中也可以随意停止或重启该服务都没有问题。
但是咱们火山写的Windows服务实例开始运行都正常,任务管理器中能看到两个同名不同PID的进程,但是只要停止或重启该服务就会出现服务被卸载的问题。



是不是火山视窗的Windows服务不能作为GUI进程和服务进程同时存在?


C++的例子在 https://blog.csdn.net/weixin_41890599/article/details/108771452

这两个我是在Windows 11上测试的。



曼菲士 发表于 2024-1-10 15:39:39

本帖最后由 曼菲士 于 2024-1-10 15:41 编辑

我把C++的服务安装、启动、停止、卸载的控制代码放入火山里面也是不能解决该问题,可能是火山服务程序的机制问题?主要是服务运行这个地方。
安装成功之后,不调用一次是无法启动服务的,提示失败,调用一次后就可以启动服务了,在不退出原始进程的前提下,重启服务就会报错,然后最初安装的服务会被删除,在服务列表中找不到项目。

不知道怎么改才能像C++那种同一个EXE执行服务进程和GUI进程并存呢?

白雪皑皑0306 发表于 2024-1-10 16:51:13

模块没有,测试不了.

曼菲士 发表于 2024-1-10 16:55:56

白雪皑皑0306 发表于 2024-1-10 16:51
模块没有,测试不了.
精易模块bbs.125.la有下载

安装服务用火山自带的不能更改某些参数,所以才用的精易模块。

曼菲士 发表于 2024-1-10 17:45:48

我感觉问题在这里找可能有解决办法,但是里面好多东西不认识,论坛里面也没个说明。


像那些 CVolService,@sn,@n,CVolObject*什么的得消化一下才行,不知道改这里的代码有没有其它影响。

曼菲士 发表于 2024-1-11 11:32:08


不用改模块,只要在火山范例中修改一下代码即可,这样停止服务,重启服务都不会报错。
剩下就是看看怎么保留GUI界面激活了。



页: [1]
查看完整版本: 【已解决】火山视窗开发的Windows服务能否作为GUI运行?