XRes = Screen.Width / Screen.TwipsPerPixelX
YRes = Screen.Height / Screen.TwipsPerPixelY用上面代码获得的分辨率不太准备,如在1024*768下运行了全屏800*600的游戏
就会得到800*600还有别的办法取得屏幕分辨率吗?>

解决方案 »

  1.   

    怎样得到当前的屏幕分辨率?在程序设计中我们经常要改变窗体的大小,而这也依赖于屏幕的分辨率,下面的例子将演示如何得到当前屏幕的分辨率:ResWidth = Screen.Width \ Screen.TwipsPerPixelXResHeight = Screen.Height \ Screen.TwipsPerPixelYScreenRes = ResWidth & "x" & ResHeight ResWidth和ResHeight分别表示屏幕的宽和高
    '-------------------------------------------------
    PS:当运行全屏游戏的时候,屏幕分辨率已经被游戏所更改。如果你取到的不是800*600才真的是怪事了呢。这不叫不准确。
      

  2.   

    那换一个办法去取:Option Explicit
    Private Sub Command1_Click()
       Call wmiDisplayConfiguration
    End SubPrivate Sub wmiDisplayConfiguration()   Dim dcSet As SWbemObjectSet
       Dim dc As SWbemObject
       
       Set dcSet = GetObject("winmgmts:{impersonationLevel=impersonate}"). _
                              InstancesOf("Win32_DisplayConfiguration")
             
       For Each dc In dcSet
       
         MsgBox dc.PelsHeight & "*" & dc.PelsWidth
         
       Next
       
    End Sub游戏会自动改变你的分辨率的,不是取得错误