Windows交互式服务问题

Ry4King 2012-10-27 10:40:44
在用汇编编写Windows服务时遇到了一些问题,我是第一次编写Windows服务程序,觉得问题很麻烦。。。

作为服务,它不能显示东西出来,MessageBox出不来,就连创建的子进程都无法显示窗口。

在dwServiceType中添加了SERVICE_INTERACTIVE_PROCESS属性,并且在服务管理中允许其与桌面交互后……

结果它总是出现[Windows交互式服务检测]的对话框,选择查看后才能看到我想显示出来的东西,而且是在另一个环境下显示的。我的Win7下是这样的。

ToT……

就算不让它直接与桌面交互,总得有个办法然它的子进程的界面显示出来丫……

求解答!
...全文
429 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhouxiaofeng1021 2015-04-29
  • 打赏
  • 举报
回复
可以看看你可以的 代码吗?
sunny6520 2012-11-29
  • 打赏
  • 举报
回复
引用 6 楼 Ry4King 的回复:
引用 3 楼 mydo 的回复:xp下运行是正常的吗? 又有新发现了,[Windows交互式服务检测]的对话框由Interactive Services Detection弹出的,Interactive Services Detection服务会调用CreateProcessAsUserW创建一个子进程,再由子进程弹出对话框。我的子进程就显示不出对话框,问题应该出现在C……
测试通过了吗?
Ry4King 2012-11-03
  • 打赏
  • 举报
回复
引用 3 楼 mydo 的回复:
xp下运行是正常的吗?
又有新发现了,[Windows交互式服务检测]的对话框由Interactive Services Detection弹出的,Interactive Services Detection服务会调用CreateProcessAsUserW创建一个子进程,再由子进程弹出对话框。我的子进程就显示不出对话框,问题应该出现在CreateProcessAsUserW这里,系统服务隶属于SYSTEM用户,而Interactive Services Detection调用CreateProcessAsUserW创建的进程隶属于当前用户。同样,我调用CreateProcessAsUserW创建隶属于当前用户的子进程,那么子进程也应该能与桌面正常交互了
Ry4King 2012-11-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
xp下运行是正常的吗?
[/Quote]

XP下完全正常……!
我在想啊,那个[Windows交互式服务检测]的对话框就是由Interactive Services Detection服务弹出的
它就能直接显示出来……别的服务要显示出来,就得通过它才行……蹊跷...
Ry4King 2012-10-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

try to:

开始输入services.msc 然后找到Interactive Services Detection 右键属性里把它禁用了之后确定-重启!
[/Quote]
结果它干脆什么都不出来了……
就像Interactive Services Detection注释里说的那样,“如果停止此服务,则对新交互服务对话框的通知将无法正常运行,而且可能无法访问这些交互服务对话框。如果已禁用此服务,则不再有新的交互服务对话框通知,也无法访问这些对话框。”
大熊猫侯佩 2012-10-28
  • 打赏
  • 举报
回复
try to:

开始输入services.msc 然后找到Interactive Services Detection 右键属性里把它禁用了之后确定-重启!
Ry4King 2012-10-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

xp下运行是正常的吗?
[/Quote]
回头我去试试,根据网上的一些说法,应该是正常的,现在Win7也慢慢普及了,也不得不考虑呢、、、
大熊猫侯佩 2012-10-28
  • 打赏
  • 举报
回复
xp下运行是正常的吗?

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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