Активация Windows с помощью C#
Хочу написать своё desktop приложение, с помощью которого можно будет активировать Windows (функциональность схожа с KMSAuto). Вот примерный код, который я написал:
Process cmd = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo("cmd.exe", $"/c slmgr /ipk W269N-WFGWX-YVC9B-4J6C9-T83GX");
startInfo.Verb = "runas";
cmd.StartInfo.UseShellExecute = false;
cmd.StartInfo = startInfo;
cmd.Start();
Вещи, которые мне не нравятся:
- При выполнении когда, приложение запрашивает разрешение у пользователя на запуск консоли от имени администратора. - Как это сделать под капотом?
- При успешной активации ключа, выводится окно (что-то похожее на MessageBox с информацией о том, что ключ был активирован). - Как это сделать под капотом?
Если специального класса в C# для работы с ключами активации не существует, тогда как скрыть происходящие процессы под капотом? Быть может можно как-то перехватить сообщение от системы (см. пункт 2).
Также мне интересно, почему KMSAuto не запрашивает доступ от имени администратора?
Спасибо.
Ответы (1 шт):
Автор решения: Nikita
→ Ссылка
- Нужно сделать так, чтобы само приложение запускалось с правами администратора, и убрать runas. Тогда дополнительных запросов не будет.
- Изменить строчку
ProcessStartInfo startInfo = new ProcessStartInfo("cmd.exe", $"/c slmgr /ipk W269N-WFGWX-YVC9B-4J6C9-T83GX");на эту:
ProcessStartInfo startInfo = new ProcessStartInfo("cmd.exe", $"/c \"cscript //nologo %windir%\\system32\\slmgr.vbs /ipk W269N-WFGWX-YVC9B-4J6C9-T83GX\"");
