Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Хочу все знать (http://forum.oszone.net/forumdisplay.php?f=23)
-   -   [решено] Запуск программы через Планировщик заданий (http://forum.oszone.net/showthread.php?t=319591)

The_Immortal 09-10-2016 20:55 2676425

Запуск программы через Планировщик заданий
 
Всех приветствую!

Т.к. вопрос у меня более познавательный и не относится к конкретной ОС, решил запостить в соответствующем разделе.

Итак. Имеем клиентскую ОС Windows NT версии 6.0 и далее (по поводу XP некоторых нюансов уже не вспомню). Через Планировщик заданий создаем задачу со следующими параметрами:

- выполнять от локальной учетной записи User для всех пользователей;
- выполнять при включении компьютера;
- процесс для выполнения, скажем, mspaint.exe.

Т.е. предположим, что есть некоторая программа (mspaint.exe чисто для примера), которая должна запускаться до входа пользователя в систему от имени локально пользователя User. И она действительно запускается. А теперь предположим, что пользователь User решил всё же войти в систему и получить доступ к этой самой программе (естественно, не перезапуская её). Но, увы, GUI программы (в данном случае Paint'а) будет недоступно. Т.е. даже нету "окна" для взаимодействия с программой.

Если говорить в терминах Диспетчера задач Windows 8/8.1/10, то в случае вышеописанного метода запуска программы Paint она попадает в Фоновые процессы, где нет "окон". При нормальном же запуске программы (уже после входа в систему) она попадает в Приложения, где уже возможно дальнейшее взаимодействие с программой.

Соответственно, вопрос: почему программа помещается в фоновые процессы и как можно решить подобную задачу, пользуясь исключительно Планировщиком заданий?


Благодарю!

dascon 09-10-2016 21:57 2676442

Попробуй с помощью start: start mspaint.exe

Vadikan 09-10-2016 23:02 2676458

The_Immortal, пример теоретический, а с практической точки зрения непонятно, зачем запускать до входа пользователя программу, с которой он потом будет взаимодействовать интерактивно.

The_Immortal 10-10-2016 00:50 2676480

Vadikan, есть программа, которая должна работать именно до входа в систему. Позже, возможно, потребуется лицезреть её интерактивно, т.к. таким образом можно будет увидеть возможные ошибки (логов программа не пишет).

dascon, туплю. Указал в качестве самой программы cmd.exe, в качестве её аргументов start mspaint.exe. mspaint вообще не запускается :-|

Amigos 10-10-2016 08:57 2676530

Цитата:

Цитата The_Immortal
есть программа, которая должна работать именно до входа в систему. Позже, возможно, потребуется лицезреть её интерактивно »

разделить программу на две части - "рабочую" - запускается через планировщик или как служба и не имеет интерфейса и "интерактивную" - запускается пользователем, имеет интерфейс и управляет "рабочей частью"

The_Immortal 10-10-2016 11:00 2676575

Amigos, будь я разработчиком, то обязательно прислушался :) Я же пользователь и довольствуюсь лишь одним экземпляром программы. В связи с этим мне надо как-то заставить программу впоследствии быть интерактивной с предварительным запуском через Планировщик.

Друзья, подскажите, пожалуйста, что там насчет варианта со start?

Charg 10-10-2016 11:23 2676581

Чтоб получить решение проблемы (или убедиться в его невозможности) нужно оперировать не гипотетическими примерами, а реальными.

The_Immortal 10-10-2016 11:29 2676584

Charg, я обрисовал задачу: заставить программу (Paint, к примеру) впоследствии быть интерактивной с предварительным запуском через Планировщик (подразумевается работа с одним и тем же экземпляром процесса).
Реальным примером я поделиться физически не могу, т.к. он недоступен в публичном виде.

P.S. Paint (mspaint.exe) - достаточно реальная программа :)

Amigos 10-10-2016 12:10 2676601

Цитата:

Цитата The_Immortal
я обрисовал задачу: заставить программу (Paint, к примеру) впоследствии быть интерактивной с предварительным запуском через Планировщик (подразумевается работа с одним и тем же экземпляром процесса). »

1 настроить автоматический логон выбранного пользователя.
Код:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"AutoAdminLogon"="1"
"DefaultUserName"="domain\\user"
"DefaultPassword"="userpassword"

2 в автозагрузку пользователя кинуть батник
Код:

echo проверка повторного запуска
tasklist | find "mspaint" > NUL
if %errorlevel%==0 goto povtor
start "mspaint" "c:\Windows\System32\mspaint.exe"
ping -n 5 localhost
rundll32.exe USER32.DLL LockWorkStation


:povtor

который
при первом запуске запускает mspaint и блокирует компьютер (если не наблюдать за компом, то можно не заметить автологона из пункта 1)
при повторном запуске (пользователь входит уже сам) при наличаи в памяти mspaint - ничего не делает.

рецепт, естественно, хоронит все дефолтные средства безопасности - тут тебе и пароль в открытом виде в реестре тут тебе и нулевая защита от неавторизованного доступа.

The_Immortal 10-10-2016 12:14 2676609

Amigos, спасибо за гибкость мысли! Настолько зациклился на Планировщике, что в другие стороны даже не смотрел.

P.S. Конечно, автологон бы лишний раз использовать не хотелось (именно по указанным Вами причинам), но, видимо, иначе никак. Хотя попробую поискать ещё решения.
В любом случае благодарю!


Время: 09:40.

Время: 09:40.
© OSzone.net 2001-