FindWindow не находит окна
От: FMikle  
Дата: 02.07.03 08:13
Оценка:
У меня сложилась следующая проблема.
1) Существует Сервис который пускается под профилем системы с параметром "Разрешить взаимодействие с рабочим столом". В этом сервисе создаётся окно для принятия сообщений.
2) Существует my.dll — библиотека ActiveX работающая под IIS в ней есть метода которая должна найти окно созданное сервисом и послать в него сообщение.
Так вот проблема в том что FindWindow возвращает 0 в то время как окно существует. И если я делаю FindWindow для сервисного окна из другого простого приложения то эта функция работает как надо, и находит его !
Кто может быть сталкивался с такой проблемой ? или подкинет свежую идею !
Re: FindWindow не находит окна
От: skyline Россия  
Дата: 02.07.03 09:23
Оценка:
Здравствуйте, FMikle, Вы писали:

FM>У меня сложилась следующая проблема.

FM>1) Существует Сервис который пускается под профилем системы с параметром "Разрешить взаимодействие с рабочим столом". В этом сервисе создаётся окно для принятия сообщений.
FM>2) Существует my.dll — библиотека ActiveX работающая под IIS в ней есть метода которая должна найти окно созданное сервисом и послать в него сообщение.
FM>Так вот проблема в том что FindWindow возвращает 0 в то время как окно существует. И если я делаю FindWindow для сервисного окна из другого простого приложения то эта функция работает как надо, и находит его !
FM>Кто может быть сталкивался с такой проблемой ? или подкинет свежую идею !

Попробуй FindWindowEx, прочитай статью на этом сайте о предотвращении повторного запуска приложения (так есть пара ласковых о FindWindow), приведи код.
If the milk turns out to be sour,
I ain't the kind of pussy to drink it
Re: FindWindow не находит окна
От: EM Великобритания  
Дата: 02.07.03 09:26
Оценка:
Здравствуйте, FMikle, Вы писали:

FM>У меня сложилась следующая проблема.

FM>1) Существует Сервис который пускается под профилем системы с параметром "Разрешить взаимодействие с рабочим столом". В этом сервисе создаётся окно для принятия сообщений.
FM>2) Существует my.dll — библиотека ActiveX работающая под IIS в ней есть метода которая должна найти окно созданное сервисом и послать в него сообщение.
FM>Так вот проблема в том что FindWindow возвращает 0 в то время как окно существует. И если я делаю FindWindow для сервисного окна из другого простого приложения то эта функция работает как надо, и находит его !
FM>Кто может быть сталкивался с такой проблемой ? или подкинет свежую идею !


В таких случаях полезно GetLastError() посмотреть.
Вообще, если код тот же самый работает из другого процесса, то дело скорее всего в правах. Еще проверь валидность строки, например не запихал ли ты уникодину в FindWindowA и т.д. ...
Опыт — это такая вещь, которая появляется сразу после того, как была нужна...
Re[2]: FindWindow не находит окна
От: FMikle  
Дата: 02.07.03 12:07
Оценка:
Здравствуйте, skyline, Вы писали:

S>Попробуй FindWindowEx, прочитай статью на этом сайте о предотвращении повторного запуска приложения (так есть пара ласковых о FindWindow), приведи код.

Статью прочитал и у меня возникла мысль — не кроется ли проблема в том что у IIS-а существует другой рабочий стол, на котором я и пытаюсь искать своё окно? Если это так то как узнать имя рабочего стола моего сервиса и поменять его поменять?
FindWindowEx так же ничего не дал, EnumWindows ни разу не попадает в callback функцию как будто ни одного окна нету.
Re[2]: FindWindow не находит окна
От: FMikle  
Дата: 02.07.03 12:10
Оценка:
Здравствуйте, EM, Вы писали:

EM>В таких случаях полезно GetLastError() посмотреть.

EM>Вообще, если код тот же самый работает из другого процесса, то дело скорее всего в правах. Еще проверь валидность строки, например не запихал ли ты уникодину в FindWindowA и т.д. ...
GetLastError возвращает "Операция завершена успешно". Со строкой всё в порядке — проверял.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.