VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 773|回复: 4

C++ Windows服务调用dll遇到的问题

[复制链接]
09_avatar_middle
最佳答案
0 
online_vip 发表于 2018-8-15 19:01:55 | 显示全部楼层 |阅读模式
最近在做一个项目要做成Windows 服务程序,windows服务程序启动后要调用一个dll ,显示一个文件打印预览界面,但是windows服务调用这个dll后,预览界面就是显示不出来,把windows服务程序编译成win32控制台程序可以显示正常,求各位帮忙,讨论下这样的问题要怎么解决。谢谢




上一篇:如何写一个做资料汇总的软件,并且加密,并且后期更新可以从后台更新资料?
下一篇:怎样实现在标题栏写彩色的字?
51_avatar_middle
最佳答案
8 
online_admins 发表于 2018-8-15 23:11:56 | 显示全部楼层
Windows系统服务类程序不能显示UI界面,所以你这样肯定是显示不出来的。如果系统服务想有界面交互的话一般都是用的进程间通信,使用 windows 系统服务再创建一个进程,让目标进程取显示界面。他们之间传递数据可以使用进程间通信的方式来实现
09_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2018-8-16 10:34:15 | 显示全部楼层
Syc 发表于 2018-8-15 23:11
Windows系统服务类程序不能显示UI界面,所以你这样肯定是显示不出来的。如果系统服务想有界面交互的话一般 ...

你好,刚查了下资料Windows服务要显示Ui的话,要获取当前回话ID,获取当前用户token,然后复制当前用户token,然后调用CreateProcessAsUser,CreateProcessAsUser这个函数能够调用dll的导出函数么?
51_avatar_middle
最佳答案
8 
online_admins 发表于 2018-8-16 23:27:45 | 显示全部楼层
wangxiaohu104 发表于 2018-8-16 10:34
你好,刚查了下资料Windows服务要显示Ui的话,要获取当前回话ID,获取当前用户token,然后复制当前用户toke ...

CreateProcessAsUser 是创建了一个新的进程了,新的进程如果是非服务类的普通进程的话,不管是调用其他dll,还是创建窗口UI肯定都没问题啦
09_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2018-8-17 13:18:01 | 显示全部楼层
Syc 发表于 2018-8-16 23:27
CreateProcessAsUser 是创建了一个新的进程了,新的进程如果是非服务类的普通进程的话,不管是调用其他dl ...

谢谢syc老大提示,我自己再研究研究。
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-11-14 07:47

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表