Вниз
Скачать: CL | DM;

А зачем нужны Атомы?   Найти похожие ветки 

 
Dima_dvp ©   (2003-11-13 01:05) [0]

Уважаемые знатоки, зачем в систему Win32API введены, атомы. Не очень пойму их практического применения, разьве что сама система хранит там что-то (например сообщения, используемые разными сист прогами). Приведите пример использования (не код а идею) если есть возможность..


 
Digitman ©   (2003-11-13 08:36) [1]

Атом - независимый именованый ресурс системы, глобально доступный всем процессам в контексте тек.сеанса работы ОС

Простой концептуальный пример :

некий процесс создал окно

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;


 
abc   (2003-11-14 12:59) [2]

Удалено модератором


 
Vlad Oshin ©   (2003-11-14 13:18) [3]


> Digitman © (13.11.03 08:36) [1]

но можно же поискать само окно?


 
Dimka Maslov ©   (2003-11-14 13:42) [4]

>Vlad Oshin © (14.11.03 13:18) [3]
Здесь не окна ищутся, а происходит обмен информацией между процессами.


 
Digitman ©   (2003-11-14 13:49) [5]

Удалено модератором



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.017 c
1-63171
kdoe
2004-01-10 14:45
2004.01.20
Как добавить программу в автозагрузку виндоса ХР?


4-63440
tower
2003-11-14 10:23
2004.01.20
Отследить команду


1-63166
Delta
2004-01-06 15:09
2004.01.20
Подключить NetApi32.dll


7-63421
XsID
2003-11-02 20:18
2004.01.20
Как создать винчестер?


14-63327
Кукушкинд
2003-12-30 14:57
2004.01.20
MSDN




   Наверх