以 SYSTEM 运行的进程,无法使用 ::IsWindow() 等函数 窗口是普通用户创建的, 我做了一个 windows服务 在后台运行,是 SYSTEM 用户, 可是对 普通用户的窗口 无法进行任何操作。调用 ::IsWindow() 会返回 false .请问,后台服务进程 要如何操作 普通用户的窗口呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 后台运行的服务,一般是不具有windows窗口操作的权限的.单作为服务.它是有权限来获得访问当前windows窗口访问权限的.你可以参考vckbase上的例子http://www.vckbase.com/document/viewdoc/?id=1095 另外两篇VCKBASE的文章也供参考http://www.vckbase.com/document/viewdoc/?id=283http://www.vckbase.com/document/viewdoc/?id=1873 需要设置服务的桌面交互权限,打开services.msc,选中一个服务,右键“属性”看看 3楼的方案在 windows7 下 似乎已经无效了, SYSTEM 会在一个独立的 window station 里进行 桌面交互, 跟用户当前的桌面窗口无法交互。nscboy 给的方案我也有试过,SetProcessWindowStation() 和 SetThreadDesktop() 执行中都没有错误,可是还是不能 对一个 用户的窗口句柄进行 ::IsWindow() 操作, 会得到 ERROR_INVALID_WINDOW_HANDLE 错误我的需求是这样的:主程序 以普通用户身份启动,将自己的主窗口句柄保存到一个文件里。 另外以 SYSTEM 权限启动给一个服务, 服务读取 文件里的窗口句柄,并发送 窗口消息给 主程序 。可是 主程序 和 服务器 运行在不同的 window station 里,无法接收到服务的消息。 按照 2-3楼 nscboy 同学给的方案 执行 SetProcessWindowStation() 和 SetThreadDesktop() 以后(执行过程没有出现错误),还是不能与 主程序的窗口交互。 我是在 windows7 上测试的,现在已经有很多windows7 用户了,以后 windows7 用户也会越来越多,必须能够在 win7上工作。谢谢~ 主程序是以Administrator身份运行还是以User身份运行? 请问 class里面的 function 问题 vc6.0如何打开调用一个flash文件(swf) 如何根据字符串象素改变窗体大小???? ##好基础的问题,近来帮帮忙解答! 看到一个例子,不明白作者为什么要在GetDCEx中使用DCX_CACHE(重发,帮忙啊各位) [求助]如何在对话框类内调用视图cview类中的函数和变量 从一个控件执行另一个控件中的代码!----急!在线等,谢谢! 写文件头,请教! 关于报表的问题,急!!! 被难道了,大家能告诉我原因吗? 在VC中如何画一个迅雷中那样的搜索栏 用图片来创建画刷,出现内存错误
单作为服务.它是有权限来获得访问当前windows窗口访问权限的.
你可以参考vckbase上的例子http://www.vckbase.com/document/viewdoc/?id=1095
http://www.vckbase.com/document/viewdoc/?id=283
http://www.vckbase.com/document/viewdoc/?id=1873
nscboy 给的方案我也有试过,SetProcessWindowStation() 和 SetThreadDesktop() 执行中都没有错误,可是还是不能 对一个 用户的窗口句柄进行 ::IsWindow() 操作, 会得到 ERROR_INVALID_WINDOW_HANDLE 错误我的需求是这样的:主程序 以普通用户身份启动,将自己的主窗口句柄保存到一个文件里。 另外以 SYSTEM 权限启动给一个服务, 服务读取 文件里的窗口句柄,并发送 窗口消息给 主程序 。可是 主程序 和 服务器 运行在不同的 window station 里,无法接收到服务的消息。 按照 2-3楼 nscboy 同学给的方案 执行 SetProcessWindowStation() 和 SetThreadDesktop() 以后(执行过程没有出现错误),还是不能与 主程序的窗口交互。
我是在 windows7 上测试的,现在已经有很多windows7 用户了,以后 windows7 用户也会越来越多,必须能够在 win7上工作。谢谢~