代码-c# windows 服务 与 桌面解决方案之间的区别

问题描述

c# windows 服务 与 桌面解决方案之间的区别

我在做服务期间遇到了两个问题如下:
double dSpace = 0;
System.Management.SelectQuery selectQuery = new System.Management.SelectQuery("select * from win32logicaldisk ");
System.Management.ManagementObjectSearcher searcher = new System.Management.ManagementObjectSearcher(selectQuery);
foreach (System.Management.ManagementObject disk in searcher.Get())
{
if (disk["Name"].ToString().Equals(DeviceID))
dSpace = System.Convert.ToDouble(disk["FreeSpace"].ToString());
}

同样的代码 服务下运行无法获取映射的可用空间大小,桌面应用没问题。

NetResource netResource = new NetResource();
netResource.dwScope = 2;
netResource.dwType = 0x1;
netResource.dwDisplayType = 3;
netResource.dwUsage = 1;
netResource.LocalName = localName;
netResource.RemoteName = remotePath;
netResource.provider = null;
int ret = WNetAddConnection2(netResource, password, userName, 0);
if (ret == 0)
return true;
return false;

同样的代码 服务下 ret为1312 桌面应用下为0

谁能给解答一下。

解决方案

是权限的问题,你可以用管理员账户承载windows服务

解决方案二:

WMI一般是用用户session相关的,所以你服务中去获取WMI信息,一般获取不到,这个需要用桌面应用去获取,再传给服务程序

时间: 2024-09-20 00:32:26

代码-c# windows 服务 与 桌面解决方案之间的区别的相关文章

浅谈三个移动搜索与桌面搜索之间的区别

中介交易 SEO诊断 淘宝客 云主机 技术大厅 如果有一天你把你手机留在家里,毫无疑问很多人都会重新折返回去拿手机,因为这个社会大多数人都离不开手机了.最近国外有一项有趣的调查,调查人中有三分之一的人宁愿放弃性也不想放弃他们的手机.据预测,到2015年,美国的移动设备互联网访问量将会超过PC机.YouTube也曾预测在2013年,移动设备的访问将成为英国访问互联网的主要形式.随着人们越来越多的钟情于移动互联网,这个改变随之改变了搜索的世界,改变着线上营销的营销方式.目前桌面搜索仍然占着主导的地位

问一个Windows服务的问题

问题描述 我的程序是控制台应用程序时可以正常运行,可以改成Windows服务的时候就不运行的,Windows服务开启正常 解决方案 解决方案二:没人,求解啊解决方案三:怎么个不正常,什么表现?包装一个异常,最好是这样thrownewException("xxx",exp)此时exp将作为InnerException不要随意丢弃原有的异常,这绝对是一个好的习惯解决方案四:参考以上链接,里面的步骤写得很清楚了.重点看截图,不一定非要看E文.解决方案五:如果你跑在vista以上的window

C#创建、安装一个Windows服务

关于WIndows服务的介绍,之前写过一篇:http://blog.csdn.net/yysyangyangyangshan/article/details/7295739.可能这里对如何写一个服务不是很详细.现在纯用代码的形式介绍一下windows服务是如何开发和安装的. 开发环境:Win7 32位:工具:visualstudio2010. 因为win7自带的就有.net环境,算是偷一下懒吧.因为无论是手动安装或程序安装都要用到.一个目录(默认C盘为操作系统的情况):C:\Windows\Mi

vista和win7在windows服务中交互桌面权限问题解决方法:穿透Session 0 隔离_C#教程

Windows 服务在后台执行着各种各样任务,支持着我们日常的桌面操作.有时候可能需要服务与用户进行信息或界面交互操作,这种方式在XP 时代是没有问题的,但自从Vista 开始你会发现这种方式似乎已不起作用. Session 0 隔离实验 下面来做一个名叫AlertService 的服务,它的作用就是向用户发出一个提示对话框,我们看看这个服务在Windows 7 中会发生什么情况. using System.ServiceProcess; using System.Windows.Forms;

windows中允许服务与桌面交互的更改方法

 这篇文章主要介绍了windows中允许服务与桌面交互的更改方法,需要的朋友可以参考下 在Windows服务的安装类ProjectInstaller中加入以下方法:    代码如下: protected override void OnCommitted(System.Collections.IDictionary savedState) { base.OnCommitted(savedState); //将服务更改为允许桌面交互模式 ConnectionOptions coOptions =

玩转Windows服务系列——无COM接口Windows服务启动失败原因及解决方案

原文:玩转Windows服务系列--无COM接口Windows服务启动失败原因及解决方案 将VS创建的Windows服务项目编译生成的程序,通过命令行 "服务.exe -Service"注册为Windows服务后,就可以通过服务管理器进行管理了. 问题 通过服务管理器进行启动的时候,发现服务无法启动,提示错误 由于程序代码是由VS的项目模板生成的,生成后直接编译为Debug版,然后通过命令行进行注册,期间并没有修改过任何代码. 难道是只有Release版本才能通过服务管理器启动吗.于是

在win7下远程用Remoting和windows服务来截取桌面是黑屏

问题描述 要远程用Remoting对桌面截屏,在win7下,把程序做成控制台程序可以正确对桌面截图,但是做成windows服务来截取却是黑屏,在win2003下两种都可以对桌面截屏,不知道win7为什么截取失败?有路过高手请帮忙解决,或提出思路亦可,谢谢! 解决方案 解决方案二:估计是windows服务的权限问题,在win2003下用localsystem帐户可以,在windows7下就算用localsystem帐户也不可以.就是不知如何解决?没人关注,自己顶一下了.解决方案三:找到原因,也可以

VS2012编译的Windows服务启动后立即停止的解决方案

原文:VS2012编译的Windows服务启动后立即停止的解决方案  ATL中的BUG,在没有COM的服务中,使用_ATL_NO_COM_SUPPORT. 并在服务中添加下面的代码 #if defined(_ATL_NO_COM_SUPPORT) HRESULT PreMessageLoop(int nShowCmd) { SetServiceStatus(SERVICE_RUNNING); return ATL::CAtlServiceModuleT< CMemoryDBModule, IDS

windows中允许服务与桌面交互的更改方法示例_实用技巧

在Windows服务的安装类ProjectInstaller中加入以下方法: 复制代码 代码如下: protected override void OnCommitted(System.Collections.IDictionary savedState){base.OnCommitted(savedState);//将服务更改为允许桌面交互模式ConnectionOptions coOptions = new ConnectionOptions();coOptions.Impersonatio