Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.31;
Скачать: CL | DM;

Вниз

запись в Tevent, созданном в другом процессе.   Найти похожие ветки 

 
HolyGlory   (2003-07-15 18:36) [0]

Создаю Tevent в одном процессе, открываю его в другом. SetEvent работает в первом, но не работает во втором. Ясень пень проблема в PSecurityAttributes . Каким образом инициализировать эту структуру так, чтобы была разрешена запись в Event из другого процесса?


 
HolyGlory   (2003-07-15 18:53) [1]

В MSDN сказано, что Event должен иметь EVENT_MODIFY_STATE установленным для возможности записи в него. Как этот EVENT_MODIFY_STATE установить?


 
panov ©   (2003-07-15 19:49) [2]

Ты бы привел в обоих процессах код с использованием Events


 
HolyGlory   (2003-07-16 14:51) [3]

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

Создание SecurityAttrbutes (без него не работало):
new(fDefSA);
fDefSA.nLength:=SizeOf(TSecurityAttributes);
fDefSA.bInheritHandle:=true;
new(sd);
fDefSA.lpSecurityDescriptor:=sd;
InitializeSecurityDescriptor(fDefSA.lpSecurityDescriptor,SECURITY_DESCRIPTOR_REVISION);
SetSecurityDescriptorDacl(fDefSA.lpSecurityDescriptor,false,nil,true);
SetSecurityDescriptorDacl(fDefSA.lpSecurityDescriptor,false,nil,true);

Создание евента:
fPReady:=TEvent.Create(fDefSA,false,false,fSyncPref+".PReady");

Ожидание:
if (fPReady.WaitFor(fPollingTime)=wrSignaled)then...
//Здесь всегда был WAIT_TIMEOUT

А вот другой процесс(VC++):
открытие евента:
strcpy(token, pref);
strcat(token, ".PReady");
SDArr[handle]->evPReady = OpenEvent(EVENT_ALL_ACCESS,1,token);
событие:
SetEvent(SDArr[handle]->evPReady);






 
HolyGlory   (2003-07-16 14:57) [4]


Уже ошибку заметил:
SetSecurityDescriptorDacl(fDefSA.lpSecurityDescriptor,false,nil,true);
SetSecurityDescriptorSacl(fDefSA.lpSecurityDescriptor,false,nil,true);




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

Текущий архив: 2003.07.31;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.074 c
14-100959
nick-from
2003-07-14 20:20
2003.07.31
17 элт монитор


3-100639
Vlad451
2003-07-10 16:08
2003.07.31
DBGrid - сделать активной строку, не прибегая к Click


1-100682
Альф
2003-07-18 10:36
2003.07.31
Привет :) Маленький вопрос по FastReport 2.4


6-100868
Леопольд (К)
2003-05-22 19:36
2003.07.31
Frame


3-100529
Buka
2003-07-01 19:23
2003.07.31
Можно ли принципиально увидеть русский текст?