Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

А зачем нужны Атомы?


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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо