Em primeiro lugar, não estou pedindo soluções de programação, apenas publico este código para mostrar como este programa funciona.
Eu tentei este programa abaixo (em Virtual Box):
#include <iostream>
#include <string.h>
#include <windows.h>
using namespace std;
int main(int argc, char **argv){
//program will create a command string that will be executed by the system console to call itself in another process (create another process): cmd = start program_name.exe
string cmd = string("start ") + string(*argv);
//execute cmd: a temporary console will be opened, then execute cmd, finally the console will be closed
system(cmd.c_str());
//display a message box (In fact, display many message boxes) which annoying user
MessageBowW(0, L"Message box content", L"Message box title", MB_OK | MB_ICONEXCLAMATION | MB_TOPMOST);
//if the user pressed OK button in a message box, the message box will display again (by recursion)
return main(argc, argv);
}
O arquivo executável compilado aqui
Chamando-se repetidamente, este programa abre muitos messagebox extremamente obtrucsive e abrandar o sistema. Este programa também impede que o usuário faça qualquer manipulação.
Eu não posso fazer nada melhor do que reiniciar meu sistema.
A minha pergunta é, se eu acidentalmente abrir este programa (abrir diretamente clicando duas vezes), como parar todos os processos sem reiniciar o Windows? Alguma idéia?