ďťż

Ładny brzuch

Witam Wszystkich

Mam taki oto kod (w .DPRce):
// ... uses  {...} Windows; var Ex : Integer; hM : HDC; begin // ...  hM:=CreateFileMapping(THANDLE($FFFFFFFF),nil,  PAGE_READONLY,0,32,'ApplicationTestMap');  if GetLastError=ERROR_ALREADY_EXISTS then  begin   MessageBox(Application.Handle, 'Program jest już uruchomiony !!!', 'OpenProgs', MB_ICONWARNING);   Application.Terminate;   CloseHandle(hM);  end; // ... end.

Dzięki niemu, nie mozliwe staje sie ponowne otwarcie aplikacji.

Ale co, jesli ten sam kod wrzuce do drugiego, innego programu oraz go odpale?
- Nie mozliwe staje sie uruchomienie tego drugiego programu...

W jaki sposob mozna 'uleczyc' tego buga?

DJ ProG



hmm... ciekawe... Sprobuj tego

Wystarczy zmień ApplicationTestMap na coś innego w drugim programie ;)
Poprzedni temat http://forum.ks-eksp...showtopic=39800

if WaitForSingleObject(CreateMutex(nil,false,'Nasz programik'),100)=0 then begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end else {messagebox...}
Użytkownik Cyrkiel edytował ten post 24 maj 2005, 17:07
DJ Scratcher (twórca tamtego tematu), to ja - aktualnie mam nowy, wg. mnie lepszy. Ale sentyment zostaje i szkoda mi skasować tamtego profilu.

Kiedys sprawdzilem, Twoj kod, Cyrkiel, ale mi nie poszedl. Dzis sprawdze drugi raz...

Pozdrawiam, DJ ProG




(...) Kiedys sprawdzilem, Twoj kod, Cyrkiel, ale mi nie poszedl. Dzis sprawdze drugi raz...
Pozdrawiam, DJ ProG

Heh, nie wiedziałem :P I nadal mi to działa bez zarzutu - wyciągnąłem to debuggerem [ollydbg rlz] z jakiejś gry ;)

A jednak wtedy zle wpisalem Twoj kod, Cyrkiel... Poprostu nie dostawilem 'else'... Tylko sie nie smiej - gdy uzywalem tamtego kodu, bylem 'troche' mniej kumaty niz teraz...

Aha i zmiana ApplicationTestMap na cos innego byla dobrym pomyslem. Wielkie thx.

Wiec w skrocie: dzieki wszystkim i juz mozna zamknac toppic, bo kodziki (ktore chodza ;P ) sa powyzej!

Pozdrawiam, DJ ProG

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •