aplicatie deschisa de 2 ori

Intrebari despre programarea cu VC++ incluzand mediul de dezvoltare, instalare, setari, debugger, compilator, linker si documentatie.
Post Reply
mirany
Junior
Junior
Posts: 4
Joined: 27 Apr 2010, 20:59
Judet: Iaşi

aplicatie deschisa de 2 ori

Post by mirany » 27 Apr 2010, 21:07

am o aplicatie in vc++ si cei care o folosesc o deschid de mai multe ori
imi propune cineva cum sa fac sa nu o mai deschida a 2 oara
multumesc anticipat



User avatar
zlatomir
Membru++
Membru++
Posts: 282
Joined: 04 Jul 2009, 23:59
Location: Arad
Contact:

Re: aplicatie deschisa de 2 ori

Post by zlatomir » 27 Apr 2010, 21:47

Uite aici ai raspunsul cu tot cu exemple: winapi, mfc sau console http://support.microsoft.com/kb/243953

User avatar
Silviu Ardelean
Senior
Senior
Posts: 1175
Joined: 12 Jul 2007, 09:22
Judet: Timiş
Location: Timisoara
Contact:

Re: aplicatie deschisa de 2 ori

Post by Silviu Ardelean » 27 Apr 2010, 22:55

O alta varianta ceva mai simpla ar fi ca intr-un punct de intrare in aplicatie, de geul InitInstance() sau main() (in functie de tipul aplicatiei), sa incluzi urmatorul cod:

Code: Select all

 HANDLE hMutex = CreateMutex(NULL, TRUE, L"myApplicationMutex");
 DWORD dwError = GetLastError();

 if(ERROR_ALREADY_EXISTS == dwError) 
 {
	AfxMessageBox("Another instance of this application is already running !");
	return FALSE;
 }

User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3778
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

Re: aplicatie deschisa de 2 ori

Post by Ovidiu Cucu » 27 Apr 2010, 23:19

Pana una-alta poti arunca un ochi aici: http://www.codexpert.ro/forum/viewtopic.php?f=23&t=305

mirany
Junior
Junior
Posts: 4
Joined: 27 Apr 2010, 20:59
Judet: Iaşi

Re: aplicatie deschisa de 2 ori

Post by mirany » 28 Apr 2010, 05:47

Multumesc la toti care mi-ati raspuns.
Am folosit varianta lui Silviu in OnInitDialog si a mers din prima.

User avatar
Silviu Ardelean
Senior
Senior
Posts: 1175
Joined: 12 Jul 2007, 09:22
Judet: Timiş
Location: Timisoara
Contact:

Re: aplicatie deschisa de 2 ori

Post by Silviu Ardelean » 28 Apr 2010, 09:42

Ti-as recomanda sa o faci in InitInstance() din clasa aplicatie, chiar la inceput, inaite de initializarea controalelor.
Desi nu ma uitasem inainte de-a posta exemplul pe link-ul lui Ovidiu, daca te uiti cu atentie, in ultimul exemplu, si Ovidiu face exact acelasi lucru. :)

User avatar
MrSmersh
Microsoft MVP
Microsoft MVP
Posts: 289
Joined: 20 Jul 2007, 10:18
Location: Timisoara
Contact:

Re: aplicatie deschisa de 2 ori

Post by MrSmersh » 28 Apr 2010, 23:56

Yee aici (nu ajunge mina lunga a ... :biggrin: ) pot sa recomand Richter Advanced Windows Programming care pe larg trateaza subiectul...
Si mutex e o idee buna

User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3778
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

Re: aplicatie deschisa de 2 ori

Post by Ovidiu Cucu » 29 Apr 2010, 17:13

MrSmersh wrote:Yee aici (nu ajunge mina lunga a ... :biggrin: ) pot sa recomand Richter Advanced Windows Programming care pe larg trateaza subiectul...
Si mutex e o idee buna
Acum si-n pururea si-n vecii veciloor....
Richter Miluieesteeeeeee!


:biggrin:

User avatar
cristianamarie
Membru++
Membru++
Posts: 480
Joined: 12 Mar 2009, 18:47
Judet: Iaşi
Location: Iasi

Re: aplicatie deschisa de 2 ori

Post by cristianamarie » 03 May 2010, 15:46

Mutex e cel mai corect.
Cu amendamentul ca numele mutex-ului trebuie prefixat cu "Global\\" sau "Local\\". In primul caz, e per computer (o instanta in oricare sesiune), in al doilea e per sesiune (o instanta per sesiune). Implicit cred ca e Local.
Nuclear launch detected

Post Reply