Я создаю утилиту для Windows, которая частично позволяет пользователю активировать Windows.когда я запускаю команду slmgr /ato
с system()
, я получаю сообщение об ошибке «0x80004001 Не реализовано (SWbemObjectEx)».Когда я пытаюсь выполнить ту же команду из cmd, она работает нормально.Следует также отметить, что он не каждый раз дает сбой, в половине случаев он работает отлично.Сначала я подумал, что, возможно, я выполнял команды слишком быстро подряд, но добавление задержки, похоже, не имеет значения.
void activateWindows(char* key)
{
EnableWindow(Main_activate_win, false);
char cmd[41];
sprintf(cmd, "slmgr /ipk %s", key);
system(cmd);
//Sleep(5000);
system("slmgr /ato");
EnableWindow(Main_activate_win, true);
}
РЕДАКТИРОВАТЬ: кажется, что таким образом происходит сбой только при установке на компьютер, на котором ранее была установлена другая версия Windows.