Como forçar os programas a sair do arquivo de troca quando um lote intensivo em recursos termina?

StackOverflow https://stackoverflow.com/questions/2498483

Pergunta

Utilizamos a área de trabalho dos funcionários para simulação intensiva em CPU durante a noite. Desktops Execute o Windows - geralmente o Windows XP. Os funcionários não fazem logoff, eles apenas travam os desktops, desligam seus monitores e vão.

Todo funcionário possui um arquivo de configuração que ele pode editar para especificar quando provavelmente está fora do escritório. Quando esse horário chega, um programa de fundo capta dados para simulação do servidor, gera processos do trabalhador, os observa, obtém resultados e os envia para o servidor. Quando o tempo especificado pelo funcionário decorre a simulação, para que o uso normal da área de trabalho não seja interferido.

O problema é que a simulação consome muita memória; portanto, quando os processos do trabalhador são executados, eles forçam outros programas no arquivo de troca. Então, quando o funcionário vem, todos os programas que ele deixou são muito lentos e lentos até que ele os abre um a um para que não sejam abordados.

Existe uma maneira de o programa forçar outros programas a sair do arquivo de troca quando interrompe a simulação para que eles corram novamente sem problemas?

Foi útil?

Solução

Loop através dos processos do sistema e do usuário, começando com um que usa a maioria da memória (além do aplicativo em segundo plano) ou que é mais usado pelo funcionário, e envie o processo a WM_ACTIVATEAPP mensagem. Isso deve ter o mesmo efeito que "clicar" em um ícone da janela do aplicativo do referido processo na barra de tarefas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top