发布于: iPhone转发:0回复:19喜欢:0
帮你转一下
引用:
2018-05-15 22:18
原帖已被作者删除

全部讨论

supermejon2018-05-16 15:24

感觉应该有别的函数,.net不会连个尺寸都不存储啊
可是又找不到地方
读注册表真心不想读,因为不会

湖湘耕讀2018-05-16 14:36

我测试了GetDeviceCaps的方案,并且转成C#, 其结果与屏幕分辨率有关,如果设置成标准的分辨率,结果就是实际尺寸,否则就有差异。至于您说的读注册表的方法,我晚上再试试吧。

supermejon2018-05-16 13:11

在win nt上,如果调用那些个api得到毫米数,与实际长度会差一大截。但是在xp系统却是准确的。所以这条路也卡壳了。

supermejon2018-05-16 13:08

网页链接
可能最终得采用这个方案。但是其中的enumdisplaydevices函数在c#中不会用,导致无法继续。别的路,看起来都不通啊。
只有注册表中的EDID里存储了这个信息。
还有一个更直接的例子,我再找找给您看一下

supermejon2018-05-16 12:59

请不要在这几个api上费神了。因为我还得在win nt系统里使用,所以这种方案也得放弃。

只能采用读注册表信息的办法

supermejon2018-05-16 12:57

差点忘了,这个函数好像只适用于win xp

湖湘耕讀2018-05-16 12:50

您提供的api返回结果确实是毫米,等会我把它转成c#给您吧。

supermejon2018-05-16 12:50

如果可以的话,请加个微信
m40206333

supermejon2018-05-16 12:44

太感谢了。
您试一下看看是不是也取整了。如果真的是取整了,那估计就只能访问注册表。

网页链接
提到了一个c++调用api函数方法,但是没找到c#的代码,自己又不会改。

湖湘耕讀2018-05-16 12:35

您的这个要求,则可能我提到的两个方法(调用API以及直接使用管理对象)都无法得到你要的答案。需要在硬件层面,比如访问驱动程序或者直接和硬件通讯等(以上陈述仅是我的猜想,不能确定)。我再试试看。