首页 新闻 会员 周边

windows服务设置桌面壁纸

0
悬赏园豆:80 [已解决问题] 解决于 2015-05-29 16:25
 1 [DllImport("user32.dll", CharSet = CharSet.Auto)]
 2 public static extern int SystemParametersInfo(
 3  int uAction,
 4  int uParam,
 5  string lpvParam,
 6  int fuWinIni
 7 );
 8 
 9 
10 SystemParametersInfo(20, 1, FilePath, 1);

代码如上,环境:windows8.1 .NET Framework 4.5 C#

这段代码我试过了,在控制台程序中可以正常设置桌面背景,但是复制到windows服务中的话,就没有任何效果,单步跟踪调试和日志都显示,上面的第10行代码正常被执行了,而且没有任何异常,但是就是不能成功设置,不知道为什么,windows服务的权限LocalSystem、NetworkService、User也都试过了

求解惑

问题补充:

源码下载地址

http://www.kuaipan.cn/file/id_33316744214893036.htm?source=1

还请大家帮忙看下原因,感激不尽

-已注销-的主页 -已注销- | 初学一级 | 园豆:91
提问于:2013-11-19 21:58
< >
分享
最佳答案
1

Windows Service是跑在session 0中的,你登录后默认是在session 1中。每个session有自己的桌面,但是session 0没有桌面,没有自己的user profile。所以你的设置不会成功。

收获园豆:80
鞠强 | 菜鸟二级 |园豆:347 | 2013-11-28 16:09
其他回答(1)
0

修改服务的登录属性,选择使用本地系统账户登录,并勾选允许服务与桌面交互,然后再试试看。

I,Robot | 园豆:9783 (大侠五级) | 2013-11-22 00:04

不行啊亲,勾选后依然无效,源码已经上传,麻烦看下,多谢

支持(0) 反对(0) -已注销- | 园豆:91 (初学一级) | 2013-11-23 10:07

@momo314: 现在有事出去,下午回来帮你看看

支持(0) 反对(0) I,Robot | 园豆:9783 (大侠五级) | 2013-11-23 12:46
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册