标题:如果判断当前系统为XP还是为WIN7
只看楼主
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
得分:0 
Run Ver
Or
Run WinVer

[ 本帖最后由 aaaaaa 于 2015-8-27 15:17 编辑 ]

民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2015-08-27 13:48
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
VFP的 OS() 现在可能不适用了,自从Win8后,GetVersion()/GetVersionEx()就不灵了。
据说微软“废除”了GetVersion()/GetVersionEx(),并建议使用 VerifyVersionInfo() 来获取版本信息。
微软提供了VersionHelpers.h头文件,里面声明有获取系统版本的函数:
IsWindowsXPOrGreater()   
IsWindowsXPSP1OrGreater()
IsWindowsXPSP2OrGreater()
IsWindowsXPSP3OrGreater()
IsWindowsVistaOrGreater()
IsWindowsVistaSP1OrGreater()
IsWindowsVistaSP2OrGreater()
IsWindows7OrGreater()
IsWindows7SP1OrGreater()
IsWindows8OrGreater()
IsWindows8Point1OrGreater()
IsWindows10OrGreater()
IsWindowsServer()
IsWindowsVersionOrGreater()
详细参考:https://msdn.

也有人说 ntdll.dll 文件的版本基本上就是系统的版本。
AGETFILEVERSION(aFile, "ntdll.dll")
?"版本:", aFile[4]
2015-08-27 15:27
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
11楼原来的代码就可以在Win10上看到正确版本,跟9楼一样的。

授人以渔,不授人以鱼。
2015-08-27 15:33
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
得分:0 
Operating system : Windows 10 10.0* 10 0
Version number : 10.0*
dwMajorVersion : 10
dwMinorVersion : 0

*!*    OSVERSIONINFO Structure
*!*    https://msdn.

Clear
*| typedef struct _OSVERSIONINFO{
*|   DWORD dwOSVersionInfoSize;  0 | 4
*|   DWORD dwMajorVersion;       4 | 4
*|   DWORD dwMinorVersion;       8 | 4
*|   DWORD dwBuildNumber;       12 | 4
*|   DWORD dwPlatformId;        16 | 4
*|   TCHAR szCSDVersion[ 128 ]; 20 | 128 = 148 bytes
*| } OSVERSIONINFO;
?
*| typedef struct _OSVERSIONINFOEX {
*|   DWORD dwOSVersionInfoSize;  0 | 4
*|   DWORD dwMajorVersion;       4 | 4
*|   DWORD dwMinorVersion;       8 | 4
*|   DWORD dwBuildNumber;       12 | 4
*|   DWORD dwPlatformId;        16 | 4
*|   TCHAR szCSDVersion[ 128 ]; 20 | 128
*|   WORD wServicePackMajor;   148 | 2
*|   WORD wServicePackMinor;   150 | 2
*|   WORD wSuiteMask;          152 | 2
*|   BYTE wProductType;        154 | 1
*|   BYTE wReserved;           155 | 1 = 156 bytes
*| } OSVERSIONINFOEX, *POSVERSIONINFOEX, *LPOSVERSIONINFOEX;
?
DECLARE INTEGER GetVersionEx IN kernel32;
    STRING @ lpVersionInformation

* set dwOSVersionInfoSize to 148 (OSVERSIONINFO)
* or 156 (OSVERSIONINFOEX) bytes
lcInfo = Chr(156) + REPLI (Chr(0), 300)  && some loose space

nResult = GetVersionEx (@lcInfo)

? "Major Version      : ", buf2dword(SUBSTR(lcInfo,  5,4))
? "Minor Version      : ", buf2dword(SUBSTR(lcInfo,  9,4))
? "Build Number       : ", buf2dword(SUBSTR(lcInfo, 13,4))
? "szCSDVersion       : ", "["+STRTRAN(SUBSTR(lcInfo, 21,128), Chr(0),"")+"]"

? "Major Service Pack : ", buf2word(SUBSTR(lcInfo,  149,2))
? "Minor Service Pack : ", buf2word(SUBSTR(lcInfo,  151,2))
? "Suite Bit Flags    : ", buf2word(SUBSTR(lcInfo,  153,2))
? "Product Type       : ", Asc(SUBSTR(lcInfo,155,1))
? "Reserved Byte      : ", Asc(SUBSTR(lcInfo,156,1))

FUNCTION  buf2dword (lcBuffer)
RETURN;
    Asc(SUBSTR(lcBuffer, 1,1)) + ;
    Asc(SUBSTR(lcBuffer, 2,1)) * 256 +;
    Asc(SUBSTR(lcBuffer, 3,1)) * 65536 +;
    Asc(SUBSTR(lcBuffer, 4,1)) * 16777216
ENDFUNC

FUNCTION  buf2word (lcBuffer)
RETURN;
    Asc(SUBSTR(lcBuffer, 1,1)) + ;
    Asc(SUBSTR(lcBuffer, 2,1)) * 256
ENDFUNC

民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2015-08-27 21:35
xs591222
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:680
专家分:1287
注 册:2009-3-1
得分:4 
保存,需要时方便查询。谢谢
2015-08-28 18:15
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:0 
Windows看内核才是重要的,对外显示的版本号是没啥大用处的。

授人以渔,不授人以鱼。
2015-08-28 19:40
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
得分:4 
Run SYSTEMINFO /S My_IP_Address
E.G :
Run SYSTEMINFO /S 192.168.1.100

民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2015-08-28 19:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-456782-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.911945 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved