Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для wolkow70

Ветеран


Сообщения: 3206
Благодарности: 845

Профиль | Отправить PM | Цитировать


MKN,

Собственно с вашего копировал...

Код: Выделить весь код
OutFile WinVer-NetWkstaGetInfo.exe
InstallDir $TEMP
ShowInstDetails show
RequestExecutionLevel admin
Page instfiles
!include LogicLib.nsh
# Примечание: В старых версиях NSIS (в том числе 2,46) System plug-in не поддерживае тип р, нужный для правильной работы кода

; используется структура WKSTA_INFO_100 https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa371402(v=vs.85).aspx
; а именно : DWORD wki100_ver_major  и   DWORD wki100_ver_minor;

Section

System::Call "netapi32::NetWkstaGetInfo(i0, i100, *i 0 r0) i.r1"
${If} 0 = $1
System::Call "*$0(i.r1, w.r2, w.r3, i.r4, i.r5)"
MessageBox MB_OK "$2 $3 domain (platform_id $1 - ver OS $4.$5) "
${EndIf}
${IfThen} $0 <> 0 ${|} System::Call "netapi32::NetApiBufferFree(ir0)" ${|}

;Результат в шестнадцатеричной системе счисления
    # 0x00050000  5.0  Windows 2000
    # 0x00050001  5.1  Windows XP
    # 0x00050002  5.2  Windows XP (x64),  Windows Server 2003, Windows Server 2003 R2
    # 0x00060000  6.0  Windows Vista,         Windows Server 2008
    # 0x00060001  6.1  Windows 7,                Windows Server 2008 R2
    # 0x00060002  6.2  Windows 8,                Windows Server 2012
    # 0x00060003  6.3  Windows 8.1,             Windows Server 2012 R2
    # 0x000A0000  10.0 Windows 10,            Windows Server Technical Preview
    IntFmt $R0 "0x%08X" $R0
DetailPrint "$R0"
; получаем ver_major и ver_minor "в десятичном виде"
    IntOp $0 $R0 >> 16
    IntOp $1 $R0 & 0xFFFF
DetailPrint "$0.$1"
SectionEnd

-------
Человек человеку - друг, товарищ и волк!


Отправлено: 17:29, 29-10-2015 | #1877