Mark_Titov
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Помогите пож-ста поправить код проверки номера лицензии винды, не работает - Код: @Echo Off SetLocal EnableDelayedExpansion For /F "Tokens=3" %%A In ('Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v DigitalProductId 2^>nul^|Find "REG_BINARY"') Do ( Set Chars="BCDFGHJKMPQRTVWXY2346789" Set DigitalProductId=%%A Set DigitalProductId=!DigitalProductId:~104,30! For /L %%B In (0, 1, 24) Do ( Set Var=0 For /L %%C In (28, -2, 0) Do ( Call Set /A Var=0x!DigitalProductId:~%%C,2!+!Var!*256 Set /A BytesBeforeOffset=%%C Set /A BytesAfterOffset=%%C+2 Set /A BytesChanged="(!Var!/24)&255" Call :ChangeDigitalProductId "!BytesBeforeOffset!" "!BytesChanged!" "!BytesAfterOffset!" Set /A Var=!Var!%%24 ) Set /A Num=!Var!+1 Call Set LicenseKey=%%Chars:~!Num!,1%%!LicenseKey! ) ) If Not "!LicenseKey!"=="" ( Echo !LicenseKey:~0,5!-!LicenseKey:~5,5!-!LicenseKey:~10,5!-!LicenseKey:~15,5!-!LicenseKey:~20,5! ) Else ( Echo Get registry data error^^! ) EndLocal GoTo:EOF :ChangeDigitalProductId Set HexChars=0123456789ABCDEF If %~2 LSS 16 ( Set /A lBytePos=%~2 Set /A hBytePos=0 ) Else ( Set /A lBytePos=%~2%%16 Set /A hBytePos=%~2/16 ) Call Set DigitalProductId=!DigitalProductId:~0,%~1!%%HexChars:~%hBytePos%,1%%%%HexChars:~%lBytePos%,1%%!DigitalProductId:~%~3! | Благодарю... |