На win2000 планировщик запускает приложение которое в свою очередь создает несколько процессов с консольными окнами, в которые происходит вывод.
Вопрос: когда я делаю logoff (отлогиниваюсь) с машины, создаются ли консольные окна ???
Дело в том что в таком режиме не отрабатывается отправка сообщений окнам, как буд-то их нет и вовсе, причем при запуске того же задания при залогиненом состоянии, все нормально проходит.
___________________________________
Хорошо жить хорошо когда жить хорошо
Здравствуйте, Nuclear, Вы писали:
N>На win2000 планировщик запускает приложение которое в свою очередь создает несколько процессов с консольными окнами, в которые происходит вывод. N>Вопрос: когда я делаю logoff (отлогиниваюсь) с машины, создаются ли консольные окна ???
создаются, только на невидимом рабочем столе того сеанса, который создается, когда планировщик запускает приложение под указанным ему пользователем
N>Дело в том что в таком режиме не отрабатывается отправка сообщений окнам, как буд-то их нет и вовсе, причем при запуске того же задания при залогиненом состоянии, все нормально проходит.
Здравствуйте, Nuclear, Вы писали:
N>На win2000 планировщик запускает приложение которое в свою очередь создает несколько процессов с консольными окнами, в которые происходит вывод. N>Вопрос: когда я делаю logoff (отлогиниваюсь) с машины, создаются ли консольные окна ???
N>Дело в том что в таком режиме не отрабатывается отправка сообщений окнам, как буд-то их нет и вовсе, причем при запуске того же задания при залогиненом состоянии, все нормально проходит.
Скорее всего проблема в том, что твой scheduler (планировщик) запускается не под пользователем System, а под пользователем под которым залогинился, следовательно когда ты делаешь logoff процесс рубится.
Попробуй запускать свой scheduler при startup машини, под пользователем System
Здравствуйте, Odi$$ey, Вы писали:
OE>Здравствуйте, Nuclear, Вы писали:
N>>На win2000 планировщик запускает приложение которое в свою очередь создает несколько процессов с консольными окнами, в которые происходит вывод. N>>Вопрос: когда я делаю logoff (отлогиниваюсь) с машины, создаются ли консольные окна ???
OE>создаются, только на невидимом рабочем столе того сеанса, который создается, когда планировщик запускает приложение под указанным ему пользователем
N>>Дело в том что в таком режиме не отрабатывается отправка сообщений окнам, как буд-то их нет и вовсе, причем при запуске того же задания при залогиненом состоянии, все нормально проходит.
OE>а откуда отправляются сообщения?
последовательность такая: планировщик запускает программку, та в свою очередь запускает другую через CreateProcess при этом программка работает в отдельном окошке, потом основная прога закрывает запущенную путем посылки ее окну WM_CLOSE. Вот этот этап с посылкой WM_CLOSE и не отрабатывает. Может есть какие-нибудь особенности при работе с окнами в таком режиме ???
___________________________________
Хорошо жить хорошо когда жить хорошо
Здравствуйте, 4igi, Вы писали:
4>Здравствуйте, Nuclear, Вы писали:
N>>На win2000 планировщик запускает приложение которое в свою очередь создает несколько процессов с консольными окнами, в которые происходит вывод. N>>Вопрос: когда я делаю logoff (отлогиниваюсь) с машины, создаются ли консольные окна ???
N>>Дело в том что в таком режиме не отрабатывается отправка сообщений окнам, как буд-то их нет и вовсе, причем при запуске того же задания при залогиненом состоянии, все нормально проходит.
4>Скорее всего проблема в том, что твой scheduler (планировщик) запускается не под пользователем System, а под пользователем под которым залогинился, следовательно когда ты делаешь logoff процесс рубится. 4>Попробуй запускать свой scheduler при startup машини, под пользователем System
Планировщик работает нормально и все запускает как и положено, более подробно проблему я описал выше в ответе Одисею.
___________________________________
Хорошо жить хорошо когда жить хорошо
N>последовательность такая: планировщик запускает программку, та в свою очередь запускает другую через CreateProcess при этом программка работает в отдельном окошке, потом основная прога закрывает запущенную путем посылки ее окну WM_CLOSE.
Не исключено, что к тому времени, когда ты шлешь WM_CLOSE, то окно уже закрыто вместо с процессом. В каком порядке Windows закрывает процессы — ее дело. Попробуй в том процессе ловить WM_ENDSESSION. Оно должно придти и
lParam
If this parameter includes ENDSESSION_LOGOFF, the user is logging off;
Еще можно проверить приход WM_QUERYENDSESSION.
Впрочем, все это годится, если там у тебя GUI окно. Если там консольное окно, то проще всего в консольном приложении зарегистрировать обработчик SetConsoleCtrlHandler и посмотреть, что он будет получать.
И еще. Как шлешь WM_CLOSE — PostMessage или SendMessage? PostMessage ставит в очередь, а до нее дело может и не дойти.
With best regards
Pavel Dvorkin
With best regards
Pavel Dvorkin
Re[4]: а создаются ли окна при logoff ???
От:
Аноним
Дата:
16.02.05 10:36
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>И еще. Как шлешь WM_CLOSE — PostMessage или SendMessage? PostMessage ставит в очередь, а до нее дело может и не дойти.
хм, сейчас отсылается через PostMessage, попробую через SendMessage сделать
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Здравствуйте, Nuclear, Вы писали:
PD>И еще. Как шлешь WM_CLOSE — PostMessage или SendMessage? PostMessage ставит в очередь, а до нее дело может и не дойти.
SendMessage не помог (((
___________________________________
Хорошо жить хорошо когда жить хорошо
В общем я так понимаю что окна не создаются в том виде к которому мы привыкли или же сообщения посланные через SendMessage или PostMessage ими не обрабатываются.
___________________________________
Хорошо жить хорошо когда жить хорошо