问题描述
我建了一个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