![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
А зачем нужны Атомы?
Dima_dvp © (2003-11-13 01:05:00)
Уважаемые знатоки, зачем в систему Win32API введены, атомы. Не очень пойму их практического применения, разьве что сама система хранит там что-то (например сообщения, используемые разными сист прогами). Приведите пример использования (не код а идею) если есть возможность..
Digitman (2003-11-14 13:49:00) [1]
Удалено модератором
Dimka Maslov (2003-11-14 13:42:00) [2]
>Vlad Oshin © (14.11.03 13:18) [3]
Здесь не окна ищутся, а происходит обмен информацией между процессами.
Vlad Oshin (2003-11-14 13:18:00) [3]
> Digitman © (13.11.03 08:36) [1]
но можно же поискать само окно?
abc (2003-11-14 12:59:00) [4]
Удалено модератором
Digitman (2003-11-13 08:36:00) [5]
Атом - независимый именованый ресурс системы, глобально доступный всем процессам в контексте тек.сеанса работы ОС
Простой концептуальный пример :
некий процесс создал окно
hMyWindow = CreateWindow(...);
далее создал атом с именем "SomeProperty", получил, соответственно, его хэндл hAtom
hAtom = GlobalAddAtom("SomeProperty");
и вызвал ф-цию
SetProp(hMyWindow, hAtom, SomeAtomAssotiatedData)
тем самым сказав : отныне окно с хэндлом hMyWindow имеет св-во с именем, идентичным имени атома hAtom, и значением равным SomeAtomAssotiatedData
теперь некий другой процесс, в котором решается задача поиска окон по критерию наличия у них св-ва SomeProperty, поступает след.образом :
hSomeAtom = GlobalFindAtom("SomeProperty");
if hSomeAtom <> 0 then // ресурс существует !!
begin
// попытка получить знач-е возможно существующего св-ва окна
SomePropValue = GetProp(hSomeWindow, hSomeAtom);
if SomePropValue <> 0 then // окно имеет интересующее св-во со значением SomePropValue
...
else // окно не имеет интересующего св-ва
...
end;