Vista下的服务程序,捕获不到“第一次登录”消息

fly4free 2009-11-03 09:58:59
case SERVICE_CONTROL_SESSIONCHANGE:
switch(dwEventType)
{
case WTS_SESSION_LOGON:
Dosomething1();
break;
case WTS_SESSION_LOGOFF:
Dosomething2();
break;
default:
break;

}
break;


如上述代码,在开机第一次登录进入系统时,没有 WTS_SESSION_LOGON 消息,但
是登录成功后, 此后的session change 消息就都能接收到了。

谁知道这是为什么啊?
...全文
124 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
WaistCoat13 2009-11-05
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 fly4free 的回复:]
不知道如此通知,需不需要 管理员权限, UAC的加入,使得启动项有些会被阻拦。。。

还有开启了 终端服务 后, 对象名字需要要加前缀 Global\ , Local\
什么区别呢……

[/Quote]
管理员权限可以不需要
通过事件来通知,服务里创建事件用EveryOne权限来初始化安全描述符,这样普通程序就可以访问了。

ps:对象名里加Global表明是全局的对象,Local表示当前Session。
msdn:Terminal Services: The name can have a "Global\" or "Local\" prefix to explicitly create the object in the global or session name space. The remainder of the name can contain any character except the backslash character (\).
oyljerry 2009-11-04
  • 打赏
  • 举报
回复
用Run下启动的程序来通知服务
fly4free 2009-11-04
  • 打赏
  • 举报
回复
不知道如此通知,需不需要 管理员权限, UAC的加入,使得启动项有些会被阻拦。。。

还有开启了 终端服务 后, 对象名字需要要加前缀 Global\ , Local\
什么区别呢……
guangmingdeshenju 2009-11-04
  • 打赏
  • 举报
回复
学习啊
WaistCoat13 2009-11-04
  • 打赏
  • 举报
回复
我觉得不应该,
如果确实是没有,可以弄个变通的办法,写个LocalMachine的注册表RUN项。当第一次登陆时通过它来通知你的服务。
fly4free 2009-11-04
  • 打赏
  • 举报
回复
初始化 ?是指第一次登录后才初始化吗?

我晕,我的服务要根据登陆与注销事件来做一些处理,原来windows server 2003之前的系统可以正常用的
等待 ShellReadyEvent 事件的创建与销毁”来实现处理登陆、注销,在Vista以后的服务里不好使了。貌似是没有这个 命名事件对象,可是我以登陆账号启动该程序,却可以打开这个事件对象(我是OpenEvent,不是CreateEvent)

搜索到了一些文章,说Vista下用 “ShellDesktopSwitchEvent”,可是我用winobj查看我目前用的Vista,没有这个事件对象,反而有“WinSta0_DesktopSwitch”,但是OpenEvent的结果是 NULL,GetLastError() 值是ERROR_ACCESS_DENIED,我可是在服务里打开的啊,还没有权限……?

N久找不到解决办法,就换用捕获session change 消息的方法了, 却捕获不到 第一次 登陆消息,郁闷死了。

怎么办了,有没有个建议啥的?谢谢了~
MoXiaoRab 2009-11-03
  • 打赏
  • 举报
回复
你自己作为第一个用户刚刚开机是吗?这个是不会触发的。

只有当你系统有过初始化后,WTXXX才能被使用的。
fly4free 2009-11-03
  • 打赏
  • 举报
回复
MyLog.20091103.txt
以上是我的程序的从开机到一系列操作后,最后重启的 运行记录
DRAT 2010 V4.3 正式版 Build 1220(已完美脱壳) 编译环境:Vista+Delphi7 使用环境:Win2K\WinXp\Win2003\Vista\Win2008\Window7 1.系统信息:可以查看操作系统版本、Cpu类型、内存信息、杀毒软件、防火墙、检测辅助(虚拟机、360安全卫士等)、硬盘大小等 2.文件管理:文件浏览、上传、下载、删除、运行 目录创建和删除。 3.屏幕控制:可以查看对方屏幕,鼠标控制,键盘控制 4.视频捕捉:可以捕获对方的视频摄像头影像 5.超级终端:也就是telnet命令执行 6.进程管理:可以查看对方进程,并可以终止进程。 7.插件管理:可以加载自定义插件扩展功能。 服务端体积:44.5 KB(压缩) 97.5 KB(无压缩) 启动方式简要说明 1.Active启动 第一次安装:360安全卫士无提示,即时上线 更新安装:文件及时替换完成 不重复上线 2.新建服务: 第一次安装:360安全卫士有提示,即时上线 更新安装:文件及时替换完成 不上线(防止重复上线发生) 插件使用及插件相关参数说明: HTTP.dll Http插件 0.1 By New4[D.S.T] 开放端口:5555 Socks4.dll Socks4插件 0.1 By New4[D.S.T] 开放端口:8080 Open3389.dll Open3389插件 0.1 By New4[D.S.T] 开放端口:3389(或原来的端口) UnSRAT.dll UnSRAT插件 0.1 By New4[D.S.T] 加载后自动清理,成功后生成日志log.txt 插件添加后:%SystemRoot%\System32\DRAT 为插件存放目录,如需可手动上传即可。 DRAT.exe 主程序文件校验: MD5: F543BDCB5282307AA37DAEDA72A16002 SHA1: 194ECC0483AA17FB7AFF6BF437FE02560ED1A63D CRC32: 666CDFD5 Server.dat 服务端文件校验:(如果发现MD5有问题请不要使用) MD5: 4CFC55CD6FAEAB3E4ACE1FD80F63A5E9 SHA1: 7EBCED74F6F5C421E9EDBA0DFD5AC2B1D7ECAAFF CRC32: 0C79CD0D 更新日志: V3.3 更换网络核心组件到Indy10 修正屏幕监控无法停止的错误 修正屏幕控制停止后连接未断开的错误 修正键盘输入时回车符导致客户端掉线 键盘输入不兼容旧版 修正GB内存的错误显示问题 修正客户端在注销状态无法控制的错误 增加发送Ctrl+Alt+Del键功能用于远程登录(只支持服务启动) 支持多选文件下载(暂时还不稳定) V3.4 修正异常掉线导致控制端崩溃的Bug 重写并优化屏幕控制部分代码 修正主机下线日志不显示及统计不正常的bug 重写插件管理接口代码 配置服务端可自选保存路径 修正文件传输被控端异常断开导致控制端内存占用过高的bug 修正文件传输控制端异常断开导致被控端出错的bug V3.5 修正Active Setup启动不稳定的bug 重写被控端网络连接逻辑判断 修正控制端关闭时导致掉机的bug 由于屏幕算法原因暂时不支持远程登录暂时删除 V3.6 屏幕监控增加捕获层功能(完美屏幕查看) 屏幕监控增加全屏模式(按F12键) 屏幕监控增加剪切板功能(尚有bug) 获取外网IP函数改写(不会出现程序打不开的bug) 修正一个http上线可能导致暂时性掉鸡的bug 支持远程登录修复发送Ctrl+Alt+Del键功能用于远程登录(只支持服务启动) V3.7 优化远程信息获取部分代码 通信协议修改不兼容旧版 修正一个上线可能存在的bug 重写视频功能速度有所提升 被控端掉线检测功能修复 在次修正Active Setup启动不稳定的bug 配置服务端默认.exe后缀 异常掉线容错次数设置为5次 V3.8 修正无视频点击视频设备主机掉线的bug 文件传输代码更换回DRAT3.2版 使用最新的系统判断函数(支持显示Vista\2008) 重新开启皮肤渲染效果(并提供56款皮肤更换,可到主页下载) 修改服务端和客户端掉线检测机制 V3.9 重写文件传输现在更加稳定 文件续传功能仅支持下载续传 文件传输功能支持Bit位传输 修正掉线检测的一个逻辑错误 新版修改协议不兼容旧版 V4.0 兼容Windows7 RTM版(由于注入原因暂时还不支持屏幕监控) 屏蔽了Active启动状态下发送Ctrl+Alt+Del键功能的错误 修正一个Active启动状态重复上线的问题 关闭窗口时如果出现关闭困难或者跳至主窗口请关闭皮肤功能 修正控制端心跳包检测 时间为60秒 修正被控端心跳包检测错误导致上下线 修复下线气泡提示的Bug 增加服务端配置信息保存项 修正设置皮肤导致读取其他配置的逻辑错误 修正摄像头MPEG录像功能并启用 修正屏幕传输掉线时出现的无法关闭窗口的错误(Error #10054) 修正大量主机掉线时可能会导致程序停止响应并出现内存错误 由于indy10线程池问题将网络组件换回indy9 插件管理功能移至控制中心 增加屏幕控制顶部标示主机IP地址 修正3.3之后版本可能会出现占CPU高的bug 修正内测第5版的主机下线后主机总数计数错误的bug 管理中心插件模块增加本地上传插件功能 优化自动上线主机统计部分代码 对服务端部分代码进行优化缩小体积 修正内存识别错误采用MB为单位计算 重写文件管理部分代码加快传输不兼容旧版 增加连接上限设置\是否使用服务端心跳设置\自动断开重复主机设置(默认不启用) 修改文件下载路径文件夹名以IP地址命名 修正旧版下载无法续传的错误 优化控制端命令发送部分代码 V4.1 修正一个同主机屏幕多开的bug 修正一个插件管理功能无法删除插件的bug 重写优化控制中心部分代码使运行更稳定 文件传输删除任务功能支持多选删除 控制中心获取的信息细节优化 修正上一个版本无法删除目录的bug 传输命令格式变更完全加密 V4.2 修正上一个版本插件传输失败的bug 抛弃旧版本文件传输功能重写 文件传输功能支持断点续传 文件传输功能支持文件多选操作 抛弃旧版本文件浏览功能重写 使用windows接口打造仿真explorer 使用windows本地图标组最大限度保证显示与类型相符 可正常读取网络磁盘\可读写光盘的数据(DRIVE_REMOTE\DRIVE_FIXED) V4.3 修正部分机器远程主机图标获取失败的bug

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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