Pessoal, criei uma rotina para impedir que o programa seja executado mais de uma vez. Ao abrir o programa pela segunda vez deveria piscar o programa na barra de tarefas e trazer a tela pra frente, mas como abre 2 programas na barra de tarefas, é executado a rotina com o que foi aberto por último. Preciso que execute a rotina para o que foi aberto primeiro. Uso o código abaixo:
CreateMutex(nil, TRUE, 'NOMEDOPROGRAMA'); if GetLastError = ERROR_ALREADY_EXISTS then begin Beep(100, 100); H := FindWindow(nil, 'NOMEDOPROGRAMA'); ShowWindow(H, SW_RESTORE);//mostra a janela SetForegroundWindow(H);//traz pra frente FlashWindow(H, True); //Pisca o programa na barra de tarefas MessageBox(0, 'O programa já está aberto!', 'Sivap', mb_OK + mb_IconWarning); Application.Terminate; end; _______________________________________________________ Yahoo! Mail - Sempre a melhor opção para você! Experimente já e veja as novidades. http://br.yahoo.com/mailbeta/tudonovo/