SetSecurityInfo и Notification
От: Y2K  
Дата: 18.02.03 06:44
Оценка:
Доброго времени суток!
Столкнулся с проблемой. Пишу приложение, ведущее журнал печати на принтере.
Пользуюсь функциями Find*PrinterChangeNotification. Все работает без вопросов,
но есть желание, чтобы снять задачу можно было только с правами администратора.
Приведенный ниже код с вызовами SetSecurityInfo решает эту проблему, но
перестает работать функция FindFirstPrinterChangeNotification (возвращает
INVALID_HANDLE_VALUE). Кто сталкивался с подобной ситуацией, подскажите, пожалуйста,
из-за чего это происходит.


ACL = new _ACL;
if (InitializeAcl(ACL,sizeof(_ACL),ACL_REVISION) && (IsValidAcl(ACL)))
SetSecurityInfo(
GetCurrentProcess(),
SE_WINDOW_OBJECT/*SE_KERNEL_OBJECT*/,
DACL_SECURITY_INFORMATION,
NULL,
NULL,
ACL,
NULL);

hNotify = FindFirstPrinterChangeNotification(
m_hPrinter,
PRINTER_CHANGE_ALL,
0,
&m_no);

P.S. Я знаю, что самый правильный подход, создание службы. Но уже зацепился за проблему,
не отпускает
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.