![]() |
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]() ![]() ![]() |
|
MbIcJIuBcJIyX |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 8.8.2008 Репутация: нет Всего: нет |
Приветствую.
Такая проблема, сделал сервис который должен получать сигнал от приложения, в приложении создаю CreateEvent, посылаю SetEvent, а в сервисе ловлю событие с помощью OpenEvent и WaitForSingleObject, в XP все прекрасно работает, но в Висте увы нет. пробывал наоборот, в сервисе делать CreateEvent и WaitForSingleObject, а в приложении OpenEvent и SetEvent, ни в XP не в висте не работает. собственно вопрос, почему на висте не работает? у CreateEvent есть интересный параметр, типа TSecurityAttributes, честно говорят не очень разбираюсь в этом, нашел пару примеров в Инете заполучения этого параметра, но при этом вылетает ошибка Отказано в доступе. пример:
как же все таки послать сигнал из приложения сервису, нужен исключительно сигнал, т.к. никаких данных передать не нужно. |
|||
|
||||
safright |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 1.7.2008 Где: Тольятти Репутация: нет Всего: нет |
Врядли поможет, но вот небольшой ликбез: каждый процесс, шире - действие программы, имеют некоторый дескриптор безопасности (не путать с дескриптором окна). В дескрипторе содержится довольно много инфы, ключевой является маска доступа: к чему имеет право обращаться/изменять/удалять и т.д. процесс с данным дескриптором. В WinXP за дескриптор безопасности пользователя отвечает winlogon (можно на него глянуть в process manager'е), т.е. все действия пользователя выполняются с дескриптором безопасности, который задан для этого процесса. Программы, запускаемые пользователем обычно имеют дескриптор безопасности от explorer.exe (опять же можно посмотреть в дереве процессов). Хотя есть возможность поместить его в srvices...
В общем, по моему непрофессиональному мнению: причина может быть в том, что сервису не хватает прав доступа (возможно - как раз стоит поместить его в уровень повыше), либо, что оч возможно - "Винда свято мешает юзеру сделать что-то опасное". Отключи всю защиту - мб дело в файрволле. |
|||
|
||||
MbIcJIuBcJIyX |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 8.8.2008 Репутация: нет Всего: нет |
Способ: отключить защиту не приемлем в моем случае
![]() я шароварщик, пишу для публики ![]() возможно есть другой способ подать сигнал из приложения сервису? |
|||
|
||||
BaD_SeCt0R |
|
|||
![]() Lazy Coder ![]() ![]() Профиль Группа: Участник Сообщений: 432 Регистрация: 9.10.2006 Где: Анапа Репутация: 3 Всего: 18 |
MMF? -------------------- Кто владеет информацией - владеет миром. (С) Френсис Бэкон. |
|||
|
||||
MbIcJIuBcJIyX |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 8.8.2008 Репутация: нет Всего: нет |
MMF?
|
|||
|
||||
BaD_SeCt0R |
|
|||
![]() Lazy Coder ![]() ![]() Профиль Группа: Участник Сообщений: 432 Регистрация: 9.10.2006 Где: Анапа Репутация: 3 Всего: 18 |
-------------------- Кто владеет информацией - владеет миром. (С) Френсис Бэкон. |
|||
|
||||
MbIcJIuBcJIyX |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 8.8.2008 Репутация: нет Всего: нет |
разве MMF может дать сигнал? это скорей для обмена данными, как сервис узнает что я создал file mapping?
CreateFileMapping так же как и CreateEvent имеет параметр типа PSecurityAttributes, что то мне подсказывает что я столкнусть с той же проблемой в висте. |
|||
|
||||
BaD_SeCt0R |
|
|||
![]() Lazy Coder ![]() ![]() Профиль Группа: Участник Сообщений: 432 Регистрация: 9.10.2006 Где: Анапа Репутация: 3 Всего: 18 |
прости, значит не так понял А вообще вариантов масса. Сокеты, пайпы, можно даже сделать сервису невидимое окошко и слать туда сообщения. -------------------- Кто владеет информацией - владеет миром. (С) Френсис Бэкон. |
|||
|
||||
MbIcJIuBcJIyX |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 8.8.2008 Репутация: нет Всего: нет |
сокеты и пайпы я оставил как запасной вариант, от без исходности если что
![]() а с невидимым окошком на висте уже не прокатывает, на XP без проблем. |
|||
|
||||
BaD_SeCt0R |
|
|||
![]() Lazy Coder ![]() ![]() Профиль Группа: Участник Сообщений: 432 Регистрация: 9.10.2006 Где: Анапа Репутация: 3 Всего: 18 |
Да и вообще окно может стать причиной нестабильности сервиса. -------------------- Кто владеет информацией - владеет миром. (С) Френсис Бэкон. |
|||
|
||||
safright |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 1.7.2008 Где: Тольятти Репутация: нет Всего: нет |
Не помню, ибо не знаю, но можно еще иконку в трей пихнуть - она, кажется, тож получает дескриптор
![]() Это сообщение отредактировал(а) safright - 17.8.2008, 16:48 |
|||
|
||||
MbIcJIuBcJIyX |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 8.8.2008 Репутация: нет Всего: нет |
Иконка в трей к сожалению тоже не вариант.
|
|||
|
||||
Virtuals |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 476 Регистрация: 27.11.2006 Репутация: 4 Всего: 11 |
MbIcJIuBcJIyX,
может попробовать Mutexes или Semaphores |
|||
|
||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 16 Всего: 89 |
http://www.delphikingdom.com/table/search....=0&Count=20
В частности: http://www.delphikingdom.com/asp/answer.asp?IDAnswer=60360 -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: WinAPI и системное программирование" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |