关于Windows服务的问题 小弟不才 请各位大侠赐教(C#)

混乱之序 2012-11-29 10:28:02
最近研究Windows服务(C#)
想法是开机服务启动 更换壁纸
先写了个demo控制台程序 搞定
牵涉 网上查阅的一些资料 主要运用到
[DllImport("user32.dll", CharSet = CharSet.Auto)]
public static extern int SystemParametersInfo(int uAction, int uParam, string lpvParam, int fuWinin);

这个方法
之前图片路径想读取默认“我的文档”
采用
Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)

此段代码
也另外写了个 服务程序 完了
安装和卸载服务 代码 都可以正常运行
在我的服务中 可以找到 自动方式 等
但问题来了
上面“我的文档”在服务代码中 同样的代码 尽然是读取到
Default User下的 我的文档
此乃第一个疑惑
后一个是 SystemParametersInfo 这个方法在控制台中 完成更换完毕的 返回值是 1
而在服务代码 跟踪日志中 查得 尽然是 0 且壁纸没有更换
(图片 也照旧移过去到Default User下的 我的文档)

不知其中缘由 有些仓促 望各位路过的大侠们 赐教

恭听 先谢了
...全文
116 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
混乱之序 2012-11-29
  • 打赏
  • 举报
回复
不要石沉大海啊 是我没说清楚 我会继续补充的... 控制台demo实现了 安装和卸载服务的操作 以及 返回值为1 变更壁纸 到服务程序 访问的路径变了 变更返回值为0 没更换壁纸 求解答... 查看权限 也是管理员的 还是哪有问题... 望指点
混乱之序 2012-11-29
  • 打赏
  • 举报
回复
才发现是版主回复的
混乱之序 2012-11-29
  • 打赏
  • 举报
回复
引用 1 楼 q107770540 的回复:
你看你的服务是以什么身份运行的
是管理员之前我也怀疑其他身份的
/// <summary>
/// 检查是否管理员权限
/// </summary>
private static void CheckRoot()
{
    System.Security.Principal.WindowsIdentity wid = System.Security.Principal.WindowsIdentity.GetCurrent();
    System.Security.Principal.WindowsPrincipal p = new System.Security.Principal.WindowsPrincipal(wid);

    bool isAdmin = (p.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator));

    FileConfig.WritetFile(isAdmin ? "管理员" : "非管理员");
}
q107770540 2012-11-29
  • 打赏
  • 举报
回复
你看你的服务是以什么身份运行的

1,978

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 其他语言讨论
社区管理员
  • 其他语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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