![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Mutex handle [D6, Win2k]
Pashkerton © (2004-09-09 14:14:00)Добрый день, и непосредственно к делу.
Есть Form и на ней Edit и 2 кнопки. При создании формы создаётся Mutex 'MyMytex' и в Edit выводится его Handle.
Button1Click
Mutex := CreateMutex(nil, False, 'MyMutex');
if Mutex = 0 then
MessageBox(0,'Can not create', 'error',MB_OK or MB_ICONSTOP)
else if GetLastError = ERROR_ALREADY_EXISTS then
MessageBox(0,'Already exist', 'error',
MB_OK or MB_ICONSTOP);
edit.Text:=IntToStr(Mutex);
Button2Click
CloseHandle(Mutex)
Если я сначала нажму на Button2 а потом на Button1, то в Edit будет тот же handle что и был.
Если сразу нажму на Button1, то появляется сообщение 'Already exist', но в Edit теперь совсем другой Handle. Вопрос почему другой handle?
Ega23 (2004-09-09 14:32:00) [1]
hnd:=CreateMutex(nil, false, PChar(ss) );
if GetLastError = ERROR_ALREADY_EXISTS then
begin
Beep(100,200); //MessageBeep ->in WinProcs
bo:=ReleaseMutex(hnd);
Halt(1);
end;
Pashkerton (2004-09-09 14:28:00) [2](ОТСЮДА)При создании формы(onCreate) создаётся Mutex 'MyMytex' и в Edit выводится его Handle. И при нажатии на кнопку я пытаюсь создать с таким же идентификатором, т.е. 'MyMytex'.
Digitman (2004-09-09 14:22:00) [3]
> Если я сначала нажму на Button2 а потом на Button1, то в
> Edit будет тот же handle что и был
был ? а откуда он взялся-то ДО этого ?
создание мьютекса у тебя - по кнопке1, а ты после старта сначала кнопку2 давишь, и только потом кнопку1 ..
??
Poirot (2004-09-09 14:18:00) [4]Я наверное уже старею.. что значит какой и был.. а какой был?!?!?! Мусор?!!!
Поточнее пожалуйста:)) 4ак то воспроизводить вашуц проблему не хоца:))
Ega23 (2004-09-09 14:17:00) [5]А ты на хэндл не смотри, он какой угодно может быть. Это как системе вздумается, такой индекс она тебе и присвоит.