Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Windows > Нет окна приложения, запущенного планировщиком


Автор: borisbn 29.3.2010, 12:46
В Windows Server 2003 при добавлении задания в Windows Task Scheduler с типом "launch when computer starts" приложение запускается, но его окна на экране нет.
Добавляю приложение в Scheduler под удалённым доступом (mstsc /admin) под пользователем Administrator, задаю тип запуска "launch when computer starts", перегружаю OS, захожу удалённо (mstsc /admin) под пользователем Administrator и вижу приложение в диспетчере задач, а окна приложения - нет.
Кто-нибудь знает, как заставить отображать окно приложения, запущенного Scheduler'ом ?

Автор: mihanik 29.3.2010, 16:03
Если повесил запуск на "launch when computer starts" , то всё правильно.
Окно ты не увидишь...
Как-то так...
Или меняй тип запуска на "при входе в систему" и делай автоматический вход для учётки, или...

Автор: borisbn 29.3.2010, 16:47
Цитата(mihanik @  29.3.2010,  16:03 Найти цитируемый пост)
меняй тип запуска на "при входе в систему"

по сути это не отличается от добавления ярлыка в Автозагрузку, а при повторном логине с другого терминала (без ключа /admin), моя программа запустится второй раз, а мне этого не нужно. 

Автор: Akina 29.3.2010, 16:52
Цитата(borisbn @  29.3.2010,  17:47 Найти цитируемый пост)
по сути это не отличается от добавления ярлыка в Автозагрузку

Отличается радикальнейшим образом.

Цитата(borisbn @  29.3.2010,  17:47 Найти цитируемый пост)
при повторном логине с другого терминала (без ключа /admin), моя программа запустится второй раз

Вот это и объезжай. Тем более что сие вовсе не так уж и сложно.

Автор: borisbn 29.3.2010, 22:58
Akina,
1. А чем всё-таки отличается?
2. Именованный mutex мне не пойдёт, т.к. в зависимости от конфигурации компьютера я запускаю или 1 или 2 или 4 экземпляра программы (хотя и это всё можно учесть). А если программа не моя?
и наконец
3. Хотелось бы знать, можно ли планировщиком, в автозагрузке или другими стандартными средствами запустить приложение ОДИН раз при старте компьютера, но так, чтобы его окно было видно во всех сессиях на всех desktop'ах всех пользователей?  

Автор: Akina 30.3.2010, 07:47
Цитата(borisbn @  29.3.2010,  23:58 Найти цитируемый пост)
чем всё-таки отличается?

Программа работает со вполне определённым десктопом. 

Цитата(borisbn @  29.3.2010,  23:58 Найти цитируемый пост)
Именованный mutex мне не пойдёт, т.к. в зависимости от конфигурации компьютера я запускаю или 1 или 2 или 4 экземпляра программы (хотя и это всё можно учесть). 

Скажем для 4 - искать свободный мьют среди Mutex0...Mutex3.

Цитата(borisbn @  29.3.2010,  23:58 Найти цитируемый пост)
А если программа не моя?

Придётся делать запускающую обёртку, считающую количество уже запущенных экземпляров.

Цитата(borisbn @  29.3.2010,  23:58 Найти цитируемый пост)
можно ли планировщиком, в автозагрузке или другими стандартными средствами запустить приложение ОДИН раз при старте компьютера, но так, чтобы его окно было видно во всех сессиях на всех desktop'ах всех пользователей?   

Да, можно - ведь мотающиеся в трее приложения (тот же антивирь) с этим вполне справляются...

Кстати, если уж это ТВОЯ программа - почему она не служба? Это снимет кучу проблем в осуществлении описанного выше.

Автор: borisbn 30.3.2010, 08:56
Цитата(Akina @  30.3.2010,  07:47 Найти цитируемый пост)
Программа работает со вполне определённым десктопом

т.е., если я правильно понял, программа, запущенная планировщиком и программа, запущенная из автозапуска, работают с разными десктопами ?
Цитата(Akina @  30.3.2010,  07:47 Найти цитируемый пост)
Кстати, если уж это ТВОЯ программа - почему она не служба?

она у меня кроссплатформенная, и делать windows-службу нет желания, делать же по #ifdef'ам службу или демона - тем более.

И всё-таки, можно ли запустить обычное приложение так, чтобы его окно было видно если не на всех десктопах, то, хотя бы, на всех десктопах одного пользователя ?

Автор: Akina 30.3.2010, 09:15
Цитата(borisbn @  30.3.2010,  09:56 Найти цитируемый пост)
т.е., если я правильно понял

Совершенно верно.

Цитата(borisbn @  30.3.2010,  09:56 Найти цитируемый пост)
можно ли запустить обычное приложение так, чтобы его окно было видно если не на всех десктопах, то, хотя бы, на всех десктопах одного пользователя ? 

Придётся энумить все десктопы - соответственно кроссплатформенность псу под хвост smile

А почему ты не хочешь кроссполатформенный функционал плюс ОС-зависимый интерфейс? поделить на модули...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)