请问下服务程序能接收一个自定义的消息吗?

Sping 2017-01-10 12:34:57
目的仅仅只是改变服务程序里面的一个状态值,不太熟悉服务程序。
用ControlService还是SetServiceStatus什么的
...全文
138 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2017-01-10
  • 打赏
  • 举报
回复
引用 5 楼 tpnndhqc 的回复:
[quote=引用 3 楼 zhao4zhong1 的回复:] 搜“Session0 穿透”?
赵老师,你又在逗我。。。 不过已经会了,MSDN上ControlService函数自定义消息写的很清楚,我自己没看懂。 想给自己几巴掌,不会英语真可怕。[/quote] 英语也是一门计算机语言的说。
Sping 2017-01-10
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
搜“Session0 穿透”?
赵老师,你又在逗我。。。 不过已经会了,MSDN上ControlService函数自定义消息写的很清楚,我自己没看懂。 想给自己几巴掌,不会英语真可怕。
zilaishuichina 2017-01-10
  • 打赏
  • 举报
回复
win sevice 能接受的控制号 就这么几个

//
// Controls Accepted  (Bit Mask)
//
#define SERVICE_ACCEPT_STOP                    0x00000001
#define SERVICE_ACCEPT_PAUSE_CONTINUE          0x00000002
#define SERVICE_ACCEPT_SHUTDOWN                0x00000004
#define SERVICE_ACCEPT_PARAMCHANGE             0x00000008
#define SERVICE_ACCEPT_NETBINDCHANGE           0x00000010
#define SERVICE_ACCEPT_HARDWAREPROFILECHANGE   0x00000020
#define SERVICE_ACCEPT_POWEREVENT              0x00000040
#define SERVICE_ACCEPT_SESSIONCHANGE           0x00000080
#define SERVICE_ACCEPT_PRESHUTDOWN             0x00000100
#define SERVICE_ACCEPT_TIMECHANGE              0x00000200
#define SERVICE_ACCEPT_TRIGGEREVENT            0x00000400
没有什么自定义消息 如果lz是希望用 另一个进程, 来控制一个service进程, 需要自己实现进程间通讯,与是不是service无关 进程间通讯的手段:管道,信号量,共享内存,socket,等等
赵4老师 2017-01-10
  • 打赏
  • 举报
回复
搜“Session0 穿透”?
赵4老师 2017-01-10
  • 打赏
  • 举报
回复
C:\>sc /? 错误: 未知命令 描述: SC 是用于与 服务控制管理器和服务进行通信的命令行程序。 用法: sc <server> [command] [service name] <option1> <option2>... 选项 <server> 的格式为 "\\ServerName" 可以键入 "sc [command]" 以获得命令的进一步帮助 命令: query-----------查询服务的状态, 或 枚举服务类型的状态。 queryex---------查询服务的扩展状态, 或 枚举服务类型的状态。 start-----------启动服务。 pause-----------向服务发送 PAUSE 控制请求。 interrogate-----向服务发送 INTERROGATE 控制请求。 continue--------向服务发送 CONTINUE 控制请求。 stop------------向服务发送 STOP 请求。 config----------更改服务的配置(永久)。 description-----更改服务的描述。 failure---------更改服务失败时所进行的操作。 sidtype---------更改服务的服务 SID 类型。 qc--------------查询服务的配置信息。 qdescription----查询服务的描述。 qfailure--------查询服务失败时所进行的操作。 qsidtype--------查询服务的服务 SID 类型。 delete----------(从注册表)删除服务。 create----------创建服务(将其添加到注册表)。 control---------向服务发送控制。 sdshow----------显示服务的安全描述符。 sdset-----------设置服务的安全描述符。 showsid---------显示与 任意名称相对应的服务 SID 字符串。 GetDisplayName--获取服务的 DisplayName。 GetKeyName------获取服务的 ServiceKeyName。 EnumDepend------枚举服务的依存关系。 下列命令不要求服务名称: sc <server> <command> <option> boot------------(ok | bad) 表明是否将最后一次启动 保存为最后一次的正确启动配置 Lock------------锁定服务数据库 QueryLock-------查询 SCManager 数据库的 LockStatus 示例: sc start MyService 是否要查看 QUERY 和 QUERYEX 命令的帮助? [ y | n ]: y QUERY 和 QUERYEX 选项: 如果查询命令带服务名称,将返回 该服务的状态。其他选项不适合这种 情况。如果查询命令不带参数或 带下列选项之一,将枚举此服务。 type= 要枚举的服务的类型(driver, service, all) 默认 = service) state= 要枚举的服务的状态 (inactive, all) (默认 = active)\n" bufsize= 枚举缓冲区的大小(以字节计) (默认 = 4096) ri= 开始枚举的恢复索引号\n" (默认 = 0) group= 要枚举的服务组 (默认 = all groups) 句法示例 sc query - 枚举活动服务和驱动程序的状态 sc query messenger - 显示信使服务的状态 sc queryex messenger - 显示信使服务的扩展状态 sc query type= driver - 仅枚举活动驱动程序 sc query type= service - 仅枚举 Win32 服务 sc query state= all - 枚举所有服务和驱动程序 sc query bufsize= 50 - 枚举缓冲区为 50 字节 sc query ri= 14 - 枚举时恢复索引 = 14 sc queryex group= \"\" - 枚举不在组内的活动服务 sc query type= service type= interact - 枚举所有不活动服务 sc query type= driver group= NDIS - 枚举所有 NDIS 驱动程序
Sping 2017-01-10
  • 打赏
  • 举报
回复
@zhao4zhong1 赵老师,救命啊

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧