Fórum executar uma unica vez #259020

18/11/2004

0

alguem sabe como executar uma unica copia do meu projeto. ja achei varios codigos na internet mas nemhun funciona como este:
program Project1;
uses
Forms,
Windows,
Dialogs,
Unit1 in ´Unit1.pas´ ;
{$R *.RES}
Var HprevHist : HWND;
begin
Application.Initialize;
HprevHist := FindWindow(Nil, PChar(´TheProgrammer´));
if HprevHist = 0 then begin
Application.Title := ´TheProgrammer´;
Application.CreateForm(TForm1, Form1);
Application.Run;
end else
MessageDlg(´Você não pode executar outra cópia do aplicativo´, mtInformation, [mbOK], 0);


se alquem poder me ajudar fico grato.


Bacharelcomputer

Bacharelcomputer

Responder

Posts

18/11/2004

Massuda

Isso foi discutido [url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=54854]recentemente[/url].


Responder

Gostei + 0

18/11/2004

Marco Salles

Este assunto com certeza ja foi e é largamente discutido no Forum.

Mas acho que o nosso amigo e coloborado [b:625fb0c6bd]cebikyn[/b:625fb0c6bd] deu um basta final no assunto.. Ele sugeriu , a idéia do [b:625fb0c6bd]Mutex[/b:625fb0c6bd]

Parece simplis e muito eficiente:

program SecBrunelli; 

uses 
  Forms, 
  Windows, 
  Dialogs, 
  Principal in ´Principal.pas´ , 
  DataModule in ´DataModule.pas´ {DMPrincipal: TDataModule}, 

  { Mais alguns formulários... } 

  Login in ´..\comum\Login.pas´ ; 

{$R *.RES} 

begin 
  CreateMutex(nil, True, ´XyZzWw´); 
  if GetLastError = ERROR_ALREADY_EXISTS then 
    Exit; 

  Application.Initialize; 
  Application.Title := ´Secretaria Dep. Brunelli´; 
  Application.CreateForm(TDMPrincipal, DMPrincipal); 
  Application.CreateForm(TFormPrincipal, FormPrincipal); 
  Application.Run; 
end.


O Tópico a respeito e :

http://delphiforum.icft.com.br/forum/viewtopic.php?t=36544&highlight=mutex

Saiba mais sobre Mutex em:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/createmutex.asp


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar