Verificar se o Programa já está aberto
Como verificar se o Meu programa já está aberto?
Para ñ abri-lo novamente???
Para ñ abri-lo novamente???
Cabal
Curtidas 0
Respostas
Rjun
10/04/2006
Pesquise no fórum por [b:3f861cb641]MUTEX[/b:3f861cb641].
GOSTEI 0
Marco Salles
10/04/2006
citacao de Rjun
no minimo ele vai encontar uma dez mensagens assim :
[quote:d6b0aecc6e][quote:d6b0aecc6e]citacao de Rjun
[quote:d6b0aecc6e]citacao de Rjun
.......
[quote:d6b0aecc6e]citacao de Rjun
[b:d6b0aecc6e]brincadeirarinha em los ermanos[/b:d6b0aecc6e]
Pesquise no fórum por MUTEX.
no minimo ele vai encontar uma dez mensagens assim :
[quote:d6b0aecc6e][quote:d6b0aecc6e]citacao de Rjun
Pesquise no fórum por MUTEX.
[/quote:d6b0aecc6e][quote:d6b0aecc6e]citacao de Rjun
Pesquise no fórum por MUTEX.
[/quote:d6b0aecc6e].......
[quote:d6b0aecc6e]citacao de Rjun
Pesquise no fórum por MUTEX.
[/quote:d6b0aecc6e][/quote:d6b0aecc6e][b:d6b0aecc6e]brincadeirarinha em los ermanos[/b:d6b0aecc6e]
GOSTEI 0
Paulocesar1301
10/04/2006
Você pode usar um FindWindow da vida ou:
Uses TlHelp32; function PrgRodando(Executavel: WideString): Boolean; Export; StdCall; var ContinueLoop: BOOL; FSnapshotHandle: THandle; FProcessEntry32: TProcessEntry32; begin FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); FProcessEntry32.dwSize := SizeOf(FProcessEntry32); ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32); Result := False; while Integer(ContinueLoop) <> 0 do begin if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) = UpperCase(Executavel)) or (UpperCase(FProcessEntry32.szExeFile) = UpperCase(Executavel))) then begin Result := True; end; ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32); end; CloseHandle(FSnapshotHandle); end;
GOSTEI 0
Martins
10/04/2006
Coloque o código abaixo no seu [b:7f5d5c4d53]DPR[/b:7f5d5c4d53].
var Hwnd: Thandle; begin Hwnd := FindWindow (´TPrograma´, ´Programa´); if Hwnd = 0 then begin Application.Initialize; Application.CreateForm(TPrograma, Programa); Application.Run; end else begin MessageDlg (´Já existe uma instãncia deste programa, verifique por favor!!´,mtinformation,[mbok], 0); SetForegroundWindow (Hwnd); end; end.
GOSTEI 0
Adriano Santos
10/04/2006
Coloque o código abaixo no seu [b:6b44c5fe7a]DPR[/b:6b44c5fe7a].
var Hwnd: Thandle; begin Hwnd := FindWindow (´TPrograma´, ´Programa´); if Hwnd = 0 then begin Application.Initialize; Application.CreateForm(TPrograma, Programa); Application.Run; end else begin MessageDlg (´Já existe uma instãncia deste programa, verifique por favor!!´,mtinformation,[mbok], 0); SetForegroundWindow (Hwnd); end; end.
Ae [b:6b44c5fe7a]Martins[/b:6b44c5fe7a], boa. Este realmente é o método mais usado.
GOSTEI 0