![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Глобальные системные флаги [D5, D7, Win2k, WinXP]
Dust © (2005-07-27 15:22:00)народ, как поставить уникальный глобальный системный флаг, проверить его наличие (соответственно потом удалить его)?
приведите пример плз.
Dust (2005-07-27 18:23:00) [1]
> Джо © (27.07.05 18:03) [5]
я хотел сказать, что вопрос исчерпан
Джо (2005-07-27 18:03:00) [2]
> [4] Dust © (27.07.05 18:02)
Ну, и - ?
Dust (2005-07-27 18:02:00) [3]Я уже использую мутексы, вот в таком контексте
.....
hMutex:=CreateMutex(nil,false,'check_param');
fErr := GetLastError <> ERROR_ALREADY_EXISTS;
CloseHandle (hMutex);
if fErr then begin
raise Exception.Create('Вместо TSMPPClient.Create следует вызывать '+#13#10+'TSMPPClient.CreateSMPPclient () :TSMPPClient ;');
exit;
end;
.....
потому как почитал в MSDN -
<
.....
If the function succeeds, the return value is a handle to the mutex object. If the named mutex object existed before the function call, the function returns a handle to the existing object and GetLastError returns ERROR_ALREADY_EXISTS. Otherwise, the caller created the mutex.
If the function fails, the return value is NULL. To get extended error information, call GetLastError.
....
>
Джо (2005-07-27 15:37:00) [4]И, вообще, неясно, что есть "флаг". В конце, концов, под это определение можно подсунуть использование общей области памяти посредством MMF.
Джо (2005-07-27 15:35:00) [5]Также можно использовать CreateMutex/OpenMutex
Джо (2005-07-27 15:34:00) [6]
> приведите пример плз.
GlobalAddAtom('PRIVET');
if GlobalFindAtom('PRIVET') <> 0 then
ShowMessage ('I got it!')