老问题,如何得到WIN98下屏幕的刷新率?(100分)

  • 主题发起人 主题发起人 weiliu
  • 开始时间 开始时间
W

weiliu

Unregistered / Unconfirmed
GUEST, unregistred user!
大家知道,<br>用GetDeviceCaps函数及以下方法可以得到WINNT/2K/XP下的刷新率,出于特殊情况的考虑,还有不少用户在使用WIN98,能否有在WIN98下得到刷新率的方法呢?<br><br>var<br> &nbsp;i:integer ;<br>begin<br> &nbsp;i:=GetDeviceCaps(GetDC(Handle),VREFRESH);<br> &nbsp;ShowMessage(inttostr(i));<br>end;
 
function GetDisplayFrequency: Integer<br>var<br> &nbsp;DeviceMode: TDeviceMode;<br>begin<br> &nbsp;EnumDisplaySettings(nil, Cardinal(-1), DeviceMode);<br> &nbsp;Result := DeviceMode.dmDisplayFrequency;<br>end;
 
to lihoulong,<br>这种方法我也早就试过了,一样在WIN98下不能得到刷新率。
 
可惜我没有环境.不然可以帮帮你.
 
win98 下不能用GetDeviceCaps 吗? 我看msdn说可以使用啊。<br><br>我以前有过一个方法改分辨率,是直接修改注册表的当前分辨率键值,重启就可以了。98下百试百零。忘记什么值了好像是 refreshrate 你试试就知道了。<br>找到准确的键值,然后读出吧
 
to shangshang,<br>WIN98下的刷新率怎么改我知道,但读取刷新率却不行,<br>无论用GetDeviceCaps还是EnumDisplaySettings返回的刷新率都为0,而分辨率及色深都可以得到。
 
注册表里,那就是一个字符串,读取出来截取一下不就可以了?
 
请问楼上,刷新率在注册表的什么地方?
 
忘记什么值了好像键名是 refreshrate 你试试就知道了。<br>找到准确的键值,然后读出吧<br><br>估计能找出几个来,不过只有一个有效。你试试吧
 
to shangshang,<br>你索性将它找出来,如果我在98下能通过,我另加200分给你。
 
抱歉,偶实在找不到98,在网上搜一下,似乎是这里。<br>HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/Class/Display/0000/Default<br>不过,这个值可能为-1; <br>没法帮你试,看来偶挣不了这分了。唉。。
 
会不会你显示器驱动或显卡驱动不正常,所以取不出正确的刷新率? 呵呵。
 
to 楼上,<br>我试过了,在98系统里无论如何也得不到刷新率,并不是什么驱动程序的问题。<br>翻一下以前DFW的贴子也都是这种情况。
 
噢,那帮不上你了。我这里实在难找98。要不,一定试试。呵呵
 
能说出方法就行,我自己来试。
 
使用DirextX中IDirectDraw7::GetDisplayMode试试。
 
后退
顶部