我们声明一个函数 如"GetWindowText"
在Win9x,Xp下,改函数别名是 Alias "GetWindowTextA" (注意最后那个“A”)
而在2000、NT下,就是Alias "GetWindowTextW" ("A"变为"W")
那么是不是所有后缀为"A"的都是用在9x,XP下,而“W”则都用在2000,NT我在XP下使用 SystemParametersInfo 这个API (Alias "SystemParametersInfoW")一切正常,但是到了2000的机器上就得不到想要的结果啊!原因是别名后缀"A"和"W"的不同吗?
-------------
保证给分!!!!!!!!!!

解决方案 »

  1.   

    我现在要使用到 SystemParametersInfo 这个API' 检测Windows版本
    Public Const VER_PLATFORM_WIN32s = 0
    Public Const VER_PLATFORM_WIN32_WINDOWS = 1
    Public Const VER_PLATFORM_WIN32_NT = 2Public Type OSVERSIONINFO
        dwOSVersionInfoSize As Long
        dwMajorVersion As Long
        dwMinorVersion As Long
        dwBuildNumber As Long
        dwPlatformId As Long
        szCSDVersion As String * 128
    End Type'获取版本信息的API函数
    Public Declare Function GetVersionEx Lib "kernel32" _
        Alias "GetVersionExA" _
        (lpVersionInformation As OSVERSIONINFO) As Long===================================
    请问有谁知道
    ' 检测Windows版本
     Const VER_PLATFORM_WIN32s = 0
     Const VER_PLATFORM_WIN32_WINDOWS = 1
     Const VER_PLATFORM_WIN32_NT = 2这3个常熟分别代表以下那些操作系统?
    (95/98/ME/NT/2000/XP)
    由于本人的机器只装了XP(他是VER_PLATFORM_WIN32_NT = 2)
    其余的就无法知道了。各位仁兄不妨复制以上代码于标准模块中,再在ForM Load()中加入sub form load()     
    '检测当前 Windows版本类型
        lpVersionInfo.dwOSVersionInfoSize = Len(lpVersionInfo)
        Call GetVersionEx(lpVersionInfo)
        
        If lpVersionInfo.dwPlatformId = Then
              msgbox VER_PLATFORM_WIN32_WINDOWS 
        elseif lpVersionInfo.dwPlatformId =VER_PLATFORM_WIN32_WINDOWS = 1 then
            msgbox VER_PLATFORM_WIN32_WINDOWS 
        else
            VER_PLATFORM_WIN32s = 0
        endif
        msgbox"请复贴!”
    end sub然后调试一下自己的操作系统对应哪个常数。
    然后恢复本贴。Thank you
      

  2.   

    Sorry
     以上的调试代码有些错误,个位自行请改正再进行调试
    目的是要旨到那个操作系统 对应哪个常数。
      

  3.   

    大多数的API函数在这些系统下是相同的,但是有些API函数在使用不同的系统时会有所不同。
      

  4.   


    我只知道  win 9x/me 不是基于NT技术内核。
      
    而 XP是属于NT类型,还是非NT类啊?' 检测Windows版本
     Const VER_PLATFORM_WIN32s = 0
     Const VER_PLATFORM_WIN32_WINDOWS = 1
     Const VER_PLATFORM_WIN32_NT = 2
    以上三个常数代表哪些操作系统???????????????
      

  5.   

    ***A  -  ANSI
    ***W  -  Wide (Unicode)dwMajorVersion 
    ---------------
    Operating System Meaning 
    ----------------------------------------------
    Windows 95  4 
    Windows 98  4 
    Windows Me  4 
    Windows NT 3.51  3 
    Windows NT 4.0  4 
    Windows 2000  5 
    Windows XP  5 
    Windows Server 2003 family  5 dwMinorVersion 
    --------------
    Operating System Meaning 
    ----------------------------------------------
    Windows 95  0 
    Windows 98  10 
    Windows Me  90 
    Windows NT 3.51  51 
    Windows NT 4.0  0 
    Windows 2000  0 
    Windows XP  1 
    Windows Server 2003 family  2 
      

  6.   

    dwPlatformId 
    ------------
    Value  Meaning 
    -----------------------------------
    VER_PLATFORM_WIN32s  Win32s on Windows 3.1. 
    VER_PLATFORM_WIN32_WINDOWS Windows 95, Windows 98, or Windows Me. 
    VER_PLATFORM_WIN32_NT  Windows NT, Windows 2000, Windows XP, or Windows Server 2003 family. 
      

  7.   

    VER_PLATFORM_WIN32s     Win32s on Windows 3.1. 
    VER_PLATFORM_WIN32_WINDOWS    Windows 95, Windows 98, or Windows Me. 
    VER_PLATFORM_WIN32_NT     Windows NT, Windows 2000, Windows XP, or Windows Server 2003 family.