Остановить окно taskeng.exe от всплытия

У меня есть несколько процессов, запланированных в моей среде Windows 7, главным образом для резервных копий, которые должны выполняться в фоновом режиме.

Однако вместо того, чтобы просто делать это тихо, в фоновом режиме, планировщик задач выдает черное (консольное) окно «taskeng.exe». Окно идет перед всеми другими окнами. К счастью, он не украл мой фокус клавиатуры, но он блокирует представление обо всем.

taskeng.exe

Есть ли способ избежать этого окна – или, по крайней мере, он появляется в фоновом режиме, не крадя мой фокус VISUAL?

Пример, отредактированный после применения баунти:

Вот моя последняя попытка использовать материал WScript (в файле RunSignatured.bat):

Set Shell = CreateObject("WScript.Shell") Shell.Run C:\Users\danh\Bin\signatured.bat, 0, False 

Файл signatured.bat содержит:

 cd C:\Users\danh\bin "C:\Program Files\Java\jre7\bin\java.exe" Signature 

    Точнее, на награду Daniel R Hicks / example, но я думаю, что она может быть применена к исходной проблеме:

    Если это пакетный файл, запущенный из планировщика заданий, то вместо того, чтобы просто запускать пакетный файл с минимальным / невидимым, вам, вероятно, также нужно будет изменить сам пакетный файл, чтобы незаметно выполнять его команды.

    Итак, измените:

     cd C:\Users\danh\bin "C:\Program Files\Java\jre7\bin\java.exe" Signature 

    К чему-то вроде:

     cd C:\Users\danh\bin start /b "C:\Program Files\Java\jre7\bin\java.exe" Signature 

    Или, возможно, полностью уничтожить командный файл и просто сделать все из сценария (VBS), который вы запускаете непосредственно из Планировщика заданий.

    Что-то вроде:

     Set Shell = CreateObject("WScript.Shell") Shell.CurrentDirectory = "C:\Users\danh\bin" Shell.Run "C:\Program Files\Java\jre7\bin\java.exe Signature", 0, False 

    Решение, внедренное DanH, в ответ на предложения techie007, удовлетворяющее щедрость:

    Один файл с именем RunSignatured.vbs, содержащий:

     Set Shell = CreateObject("WScript.Shell") Shell.CurrentDirectory = "C:\Users\danh\bin" Shell.Run "java.exe Signature", 0, False 

    Обратите внимание, что вышеописанное связано с тем, что java.exe находится в пути, поскольку этот метод не работает с пустым в Program Files при указании полного пути. Нет никаких сомнений в других способах решения этой проблемы, но для других это можно обнаружить.

    Затем добавьте RunSignature.vbs качестве имени «program / script» в «Action» в «Планировщик заданий».

    Вы можете запускать запланированные задачи как другой пользователь, таким образом, они вообще не будут взаимодействовать с интерактивным рабочим столом обычной учетной записи. Это, безусловно, работает на серверах Windows2003, которыми я управляю. Просто будьте осторожны, чтобы убедиться, что права доступа к файлам и другие данные проверки подлинности установлены таким образом, что задачи могут получить доступ к тому, что им нужно, когда un как этот другой пользователь.

    Изменить. Или вместо непосредственного запуска консольного инструмента у вас может быть небольшой скрипт, который запускает его с помощью WScript.Shell.Run с параметром «свернуть, не менять фокус»:

     ' sample script: c:\scripts\test.vbs Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "c:\location\of\tool\utility.exe", 7 

    Затем запустите это с помощью планировщика задач (в командной строке что-то вроде wscript c:\scripts\test.vbs ) вместо прямого вызова инструмента. Вы также должны иметь возможность вызывать пакетные файлы и другие скрипты. Существует также опция «полностью спрятать» (замените 7 выше на 0), хотя в любом случае «hide / minim» только управляет начальным окном: если инструмент открывается сам по себе, они могут по-прежнему украсть фокус, как и раньше.

    См. http://msdn.microsoft.com/en-us/library/d5fk67ky%28VS.85%29.aspx для получения полного списка параметров метода.

    Попробуйте 4trayMinimizer . Вы можете определить приложения, которые скрыты по умолчанию.

    Попробуйте выполнить запланированную задачу следующим образом:

      C: \ Windows \ System32 \ cmd.exe / c start /bc:\fullpath\mybackup.bat 

    start /b должно запускать приложение без создания нового окна.

    Если это не сработает, вы можете создать автономный скрипт AutoIt , который скроет окно taskeng.exe. Скрипты AutoIt могут быть скомпилированы в .exe.

    .exe будет первой строкой в ​​файле mybackup.bat. Код AutoIt будет выглядеть так:

      WinSetState ("taskeng", @SW_HIDE) 

    Самый простой способ скрыть приложение, запущенное из Планировщика заданий, – установить его «Запустить, был ли пользователь включен или нет». Этот параметр можно найти на вкладке «Общие» свойств запланированной задачи.

    Вот сценарий SyncToy, который я использую. Обратите внимание на несколько котировок вокруг местоположения файла:

     ' SyncToy Scheduler Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run """C:\Program Files\SyncToy 2.1\SyncToyCmd.exe"" -R" ,7 

    По-видимому, вы установили SQLyog MySQL GUI , который запланировал выполнение SQLyog Job Agent . Похоже, это консольное приложение, которое не пытается скрыть себя.

    Вы должны посмотреть в Планировщике задач для задания, ссылающегося на SQLyog и исправить его запись. Если это вызов cmd, попробуйте добавить /b в список параметров. Если это просто вызов исполняемого файла, вы можете исправить его с учетом этого моего ответа .

    Если у вас возникли проблемы с поиском этой записи, используйте автозапуск, чтобы узнать, как запускается SQLyog. Вы также можете использовать regedit для поиска всех упоминаний SQLyog или любого другого имени его каталога установки.

    Разумеется, вы также можете удалить SQLyog MySQL GUI, если вам это не нужно.

    Если вы не установили SQLyog MySQL GUI, ваш компьютер может быть заражен. Вы можете использовать Process Monitor, чтобы проверить, когда появляется всплывающее окно, чтобы узнать, является ли это taskeng.exe из system32 или одним из Look Alike of Taskeng.exe .

    У меня была точная проблема с использованием SQLyog после выполнения некоторых исследований, я исправил ее, создав файл invisible.vbs и вставив этот код:

     Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.CurrentDirectory = "C:\Program Files (x86)\SQLyog\" WshShell.Run "SJA.exe C:\Users\REPLACE_UR_USER\Desktop\test.xml -lC:\Users\REPLACE_UR_USER\AppData\Roaming\SQLyog\sja.log -sC:\Users\REPLACE_UR_USER\AppData\Roaming\SQLyog\sjasession.xml ", 0 

    Затем создайте планировщик заданий для запуска файла invisible.vbs и все!

    Interesting Posts

    Почему не является массивом общего типа?

    Различные типы streamобезопасных наборов в Java

    Как запустить тестовые примеры JUnit из командной строки

    Удаление границы изображения в Chrome / IE9

    Могу ли я установить высоту div на основе процентной ширины?

    Каково максимальное значение пикселя для свойств ширины и высоты CSS?

    Невозможно просмотреть историю браузера в IE9

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

    Как обновить объект из формы редактирования в Django?

    Как отформатировать строку в качестве номера телефона в C #

    Каковы отношения между Any, AnyVal, AnyRef, Object и как они отображаются при использовании в Java-коде?

    Как избежать символа буквенного процента, когда включена опция NO_BACKSLASH_ESCAPES?

    Множественное наследование в C #

    Как получить список активных драйверов, статически встроенных в ядро ​​linux?

    Как найти файлы, которые не содержат заданный шаблон строки?

    Давайте будем гением компьютера.