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/
 

Responder a