Windows服务用ScreenOrientation获得的值一直不变?怎么获得屏幕方向?

问题描述

我建了一个Windows服务项目,加了Windows.Forms的引用,然后用一个Threading.Timer每秒获取一次SystemInformation.ScreenOrientation。问题是:无论我的屏幕是哪个方向(在“屏幕分辨率”中设置的),这个东西永远返回Angle0(水平)。但是如果我创建一个WinForms项目,在里面用SystemInformation.ScreenOrientation,就可以正确地根据我的屏幕方向返回Angle0、Angle90(垂直)等等。然后我在服务项目中添加了一个窗口,在窗口的类里加了一个调用SystemInformation.ScreenOrientation并返回值的方法;在服务的类里新建这个窗口的实例、调用相应的方法,依然永远Angle0。百思不得其解。有人有相同的问题么?有没有办法在服务里获得屏幕方向?我试过用winAPI的EnumDisplaySettings来获得DEVMODE,但是获得的dmDisplayOrientation也一直是0(水平)、dmPelsWidth和dmPelsHeight都保持1920、1080不变。

解决方案

本帖最后由 loliconlg 于 2014-07-24 12:25:32 编辑

时间: 2024-07-30 09:33:32

Windows服务用ScreenOrientation获得的值一直不变?怎么获得屏幕方向?的相关文章

vb.net中windows服务的创建

window|创建   无论windows服务执行什么样的处理,创建与安装服务的步骤都十分相似.visual studio提供了windows services项目类型,利用它可以迅速创建windows服务,一下介绍简单的步骤: 1)新建项目,在new project对话框中,选择windows服务图标,在对话框name字段输入服务名称,确定.visual studio将显示服务的设计视图. 2)在服务属性里面进行设置:servicebase类的属性如下:               a.aut

给windows服务添加描述

window   最近写了个Windows服务(Windows Services),安装了以后,觉得和已有的Windows服务不一样.为什么?我的缺少描述,中间一栏是空的. 再看.NET的ServiceBase类没有添加描述的属性. public class ProjectInstaller : System.Configuration.Install.Installer中也没有什么属性来添加.从网搜了后才知道要重载ProjectInstaller 的Install和UnInstall虚方法.其

借助C++进行Windows开发:Windows服务增强

目录 延迟自动启动服务 改进关机可预见性 失败操作和受控停止 减少权限 保护服务数据 用受限令牌保护其他项目 接收服务通知 后续内容 Windows服务开发的状态自从在 Windows NT 中出现服务以来一直没有较大的改变,但是 Windows Vista 和 Windows Server 2008 打破了这一僵局.这其中的许多功能主要是为了以更简捷的方式生成更安全的服务,但是在与安全性不相关的服务功能中,有些功能是为了提高 Windows 的整体响应能力和可靠性. 延迟自动启动服务 可通过

用托管C++编写Windows服务

多年以来,只要提到编写Windows服务,就会想到用Visual C++编写,同时,这也是其中一件C++程序员可以做,而VB程序员不可以做的事情.以前,我们只称其为"服务"或"NT服务",现在,它们被命名为"Windows服务",而且用VB.NET或C#也可以很容易地编写. 但是,如果你想用托管C++来编写呢?毕竟,大多数有经验的Visual C++程序员都会写过一两个服务,也会知道怎样完成一个类似的工程.假设你有一个必须要一直运行以提供服务的程

在.NET下开发windows服务

创建 Windows 服务 -------------------------------------------------- 当创建服务时,可以使用称作 Windows 服务的 Visual Studio.NET 项目模板.此模板引用适当的类和命名空间.设置从服务基类的继承并重写您可能要重写的几种方法,从而自动为您完成大部分工作. 若要创建功能性服务,必须至少: 设置 ServiceName 属性. 为服务应用程序创建必需的安装程序. 重写 OnStart 和 OnStop 方法并为其指定代

使用srvany.exe将程序安装成windows服务的详细教程

srvany.exe介绍 srvany.exe是Microsoft Windows Resource Kits工具集的一个实用的小工具,用于将任何EXE程序作为Windows服务运行.也就是说srvany只是其注册程序的服务外壳,这个特性对于我们 来说非常实用,我们可以通过它让我们的程序以SYSTEM账户启动,或者实现随机器启动而自启动,也可以隐藏不必要的窗口,比如说控制台窗口等等. 资源下载 你可以通过下载并安装Microsoft Windows Resource Kits 获得或者直接在本文

win7 删除Windows服务的方法

  通过删除Windows服务删除隐藏在Vista系统服务中的病毒. 一.什么是Windows服务 Windows服务也称为Windows Service,它是Windows操作系统和Windows网络的基础,属于系统核心的一部分,它支持着整个Windows的各种操作.诸如DNS客户端.打印程序.Windows更新服务.计划任务.Windows时间服务等服务,它们关系到机器能否正确运行.如果不能适当地管理这些服务,就会影响到机器的正常操作. 一个服务首先是一个Win32可执行程序,或者是是run

如何对win7旗舰版中的windows服务启动项顺序进行设置?

  虽然一再的对win7 64位旗舰版下载 iso的windows服务启动项进行精简,但是说来说去,因为很多服务启动项都是涉及到系统的,还是没办法禁用掉,但是大家是否知道,其实这些启动项是可以根据咱们的需求来对他们的启动顺序进行设置的,似乎现实生活中鲜少有用户会使用到这个功能,也许是鲜少有用户知道了解这个功能.那么今天小编就来讲解一下,如何在win7旗舰版中对win7旗舰版中的windows服务启动项顺序进行设置吧! 1.首先,咱们同时按下win7旗舰版键盘上的win+R快捷键打开电脑的运行窗口

win7系统注册表设定Windows服务启动顺序的方法

  我们都知道Windows服务功能的启动顺序是可以按我们需要进行设定的.虽然说在日常办公中,我们是很少会使用到这个功能,但是对于专业电脑人士来说,这个功能对他们来说还是有一定的用处.下面一起来看看w764位旗舰版注册表中怎么设定启动顺序. 一.打开win7 64位纯净版桌面开始菜单中运行对话框,然后在其窗口中输入regedit命令,打开注册表编辑器. 二.接着在雨林木风win7旗舰版打开的注册表中,将其定位到如下路径:HKEY_LOCAL_MACHINE SYSTEM CurrentContr