CMD/BAT - Батник который бы определял состояние активации виндовс
-
angel_lyucifer
CMD/BAT - Батник который бы определял состояние активации виндовс
Привет, нужен универсальный батник который бы определял состояние активации виндовс если система активирована тогда запустить файл 1.ехе а если система не активирована тогда запустить файл 2.ехе.
Нет это не связано с активацией, я пишу не большую программу для людей с ограниченными возможностими.
Если система активирована тогда будет одно определённое голосовое оповещение а если система не активирована тогда будет другое голосовое определённое оповещение...
Помогите пожалуйста.
Нет это не связано с активацией, я пишу не большую программу для людей с ограниченными возможностими.
Если система активирована тогда будет одно определённое голосовое оповещение а если система не активирована тогда будет другое голосовое определённое оповещение...
Помогите пожалуйста.
-
Gen_prot
Re: CMD/BAT - Батник который бы определял состояние активации виндовс
думаю что то вроде
Код:
Код:
Код: Выделить всё
:: запишем вывод команды проверки лицензии в файл
cscript %windir%\system32\slmgr.vbs -xpr >win_act.txt
:: поищем "Постоянная активация прошла успешно."
Find /C "успешно" win_act.txt
:: не нашли, то запустить Finish1
If ErrorLevel 1 Call Finish1.CMD
:: иначе
If ErrorLevel 0 Call Finish2.CMD-
greg zakharov
Re: CMD/BAT - Батник который бы определял состояние активации виндовс
В общем виде более детальная информация об активации (берется из значений DigitalProductId и DigitalProductId4, некоторые из полей структур отправлены в /dev/null).
Код:
накидал на скорую руку, пока было время, так что допиливание о оптимизация - дело конечного пользователя.
Код:
Код: Выделить всё
@set @lic=0 /*
@echo off
set @lic=
cscript /nologo /e:jscript "%~f0"
exit /b
*/
(function() {
Array.prototype.getString = function(b, e) {
return String.fromCharCode.apply(null, this.slice(b, e));
}
Array.prototype.getCdKey = function(b, e) {
var i, j, key = '', raw = this.slice(b, e),
map = 'BCDFGHJKMPQRTVWXY2346789'.split('');
for (i = 24; i >= 0; i--) {
var k = 0;
for (j = 14; j >= 0; j--) {
k = (k << 8) + raw[j];
raw[j] = (k / 24) & 255;
k %= 24;
}
key = map[k] + key;
if ((i % 5) === 0 && i !== 0) key = '-' + key;
}
return key;
}
Array.prototype.getUString = function(b, e) {
var arr = this.slice(b, e);
for (var i = 0; i < arr.length; i++) {
if (arr[i] === 0) arr.splice(i, 1);
}
return String.fromCharCode.apply(null, arr);
}
var key = 'HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\DigitalProductId',
dpi, dpi4;
try {
with (new ActiveXObject('WScript.Shell')) {
dpi = RegRead(key).toArray();
dpi4 = RegRead(key + 4).toArray();
}
WScript.echo('ProductId : ' + dpi.getString(9, 31));
WScript.echo('EditionId : ' + dpi.getString(36, 45));
WScript.echo('CdKey : ' + dpi.getCdKey(52, 67));
WScript.echo('AdvancedId : ' + dpi4.getUString(8, 135));
WScript.echo('ActivationId : ' + dpi4.getUString(136, 263));
WScript.echo('EditionType : ' + dpi4.getUString(280, 600));
WScript.echo('KeyType : ' + dpi4.getUString(1016, 1143));
WScript.echo('EULA : ' + dpi4.getUString(1144, 1272));
}
catch (e) {
WScript.echo(e.message);
}
}());накидал на скорую руку, пока было время, так что допиливание о оптимизация - дело конечного пользователя.
-
angel_lyucifer
Re: CMD/BAT - Батник который бы определял состояние активации виндовс
PHP код:
В моей os нет такого скрипта slmgr.vbs...
Код: Выделить всё
:: запишем вывод команды проверки лицензии в файл
cscript %windir%system32slmgr.vbs -xpr >win_act.txt
:: поищем "Постоянная активация прошла успешно."
Find /C "успешно" win_act.txt
:: не нашли, то запустить Finish1
If ErrorLevel 1 Call Finish1.CMD
:: иначе
If ErrorLevel 0 Call Finish2.CMD
В моей os нет такого скрипта slmgr.vbs...
-
Foreigner
Re: CMD/BAT - Батник который бы определял состояние активации виндовс
angel_lyucifer, В общем случае можно так:
Код:
Код:
Код: Выделить всё
wmic path SoftwareLicensingProduct get licensestatus | 1>nul findstr "1" && echo Licensed || echo Not LicensedПодробнее
-
sov44
Re: CMD/BAT - Батник который бы определял состояние активации виндовс
Foreigner, можно написать универсальный код для определения статуса активации Windows XP \ Windows7 ?
-
Foreigner
Re: CMD/BAT - Батник который бы определял состояние активации виндовс
sov44, Не знаю будет работать или нет:
Код:
ЗЫ. В ХР Номе работать не будет точно, если пользователь не установит wmic
Код:
Код: Выделить всё
@echo off
setlocal
for /f %%i in (' wmic os get version /value ') do 1>nul set "%%i"
if %version% gtr 5.3 (
wmic path SoftwareLicensingProduct get LicenseStatus | 1>nul findstr "1" && echo Licensed || echo Not Licensed
) else (
wmic path Win32_WindowsProductActivation get ActivationRequred | findstr "0" && echo Licensed || echo Not Licensed
)ЗЫ. В ХР Номе работать не будет точно, если пользователь не установит wmic
-
Dragokas
Re: CMD/BAT - Батник который бы определял состояние активации виндовс
Foreigner, пропустили букву i (Required)
Код:
Код:
Код: Выделить всё
wmic path Win32_WindowsProductActivation get ActivationRequired | findstr "0" && echo Licensed || echo Not Licensed-
Dragokas
Re: CMD/BAT - Батник который бы определял состояние активации виндовс
%version% gtr 5.3
Как это работает?
Сравнение по кодовой таблице символов?
Как это работает?
Сравнение по кодовой таблице символов?
-
Dragokas
Re: CMD/BAT - Батник который бы определял состояние активации виндовс
Как можно вывести в консоль ключ активации, если винда активирована?
И можно ли как-нибудь проверить активацию msoffice таким же методом?
И можно ли как-нибудь проверить активацию msoffice таким же методом?