Зупиніть спливаюче вікно taskeng.exe


18

У мене в середовищі Windows 7 заплановано кілька процесів, в основному для створення резервних копій, які повинні працювати у фоновому режимі.

Однак замість того, щоб просто працювати тихо у фоновому режимі, планувальник завдань спливає чорне (консольне типу) "taskeng.exe" вікно. Вікно йде перед усіма іншими вікнами. На щастя, це не вкрадає фокус моєї клавіатури, але блокує погляд на все.

taskeng.exe

Чи є спосіб уникнути цього вікна - або, принаймні, він з’явиться у фоновому режимі, не вкравши мій фокус VISUAL?

Приклад відредагований після виграшу баунті:

Ось моя остання спроба використання вмісту WScript (у файлі під назвою RunSignactured.bat):

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

Файл signagated.bat містить:

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

Я шукаю рішення для цієї проблеми, яка працює на Vista SP2 без встановлення інших інструментів і виконає простий (але постійно працює - за таймером) додаток Java від Task Scheduler. Раніше я працював так чи інакше, перш ніж мій інсталятор був шланг, але не можу зрозуміти, як це зробити зараз, коли я відновив (свого роду) свою коробку. (Я не змусив схему WshShell працювати - цільовий файл bat, мабуть, ніколи не запускається (або вбивається негайно з якихось причин).)
Daniel R Hicks

(У програми Java є власний внутрішній цикл таймера, це означає, що вона продовжує працювати після її запуску.)
Даніель Р Хікс

@DanielRHicks перевірити це рішення SU, можливо, воно може вам допомогти.
avirk

Чи можете ви надати фактичну команду, яку виконує Завдання?
Ƭᴇcʜιᴇ007

@ techie007 - Дивіться вище, як тільки редакція буде затверджена.
Даніель Р Хікс

Відповіді:


8

Більш конкретно, до принаду / прикладу Даніеля Р Хікса, але я думаю, що це все ще може бути застосовано до початкової проблеми:

Якщо це пакетний файл, що запускається з програми планування завдань, то замість того, щоб просто запустити пакетний файл мінімізований / невидимий, вам, ймовірно, також потрібно змінити сам пакетний файл, щоб його команди були непомітні.

Тому змініть:

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, що задовольняє виграш:

Один файл, названий RunSignarated.vbs, містить:

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

Зауважте, що вище покладається на те, що java.exe перебуває у шляху, оскільки методика не працює з порожнім у файлах програми, коли вказується повний шлях. Немає сумнівів, що інші способи подолати цю проблему, але це є для інших.

Потім додайте RunSignature.vbsяк "програму / сценарій" ім'я в "Дія" в Планувальнику завдань.


1
Я спробував численні варіанти start /bпідходу. Начебто нічого не усувало вікно - я думаю, це створено до моменту, коли ви починаєте виконувати файл bat, тому до цього часу вже пізно.
Даніель Р Хікс

Для другого підходу, коли я намагаюся запустити його безпосередньо (двічі клацнувши по файлу), я отримую "Рядок: 3 Помилка: Система не може знайти вказаний файл".
Даніель Р Хікс

Це був приклад, не повністю перевірений код. ;) Чи існує java.exe у наданому шляху? Можливо, спробуйте запустити щось просте, наприклад "notepad.exe", оскільки java.exe іноді може мати дивні химерності.
Ƭᴇcʜιᴇ007

(Зверніть увагу на проблему з порожнім у назві шляху - не зрозуміло, як з цим боротися.)
Даніель Р Хікс

(Але видалення шляху, здається, працює! Мабуть java, пробирається в пошуковий шлях ОК.)
Даніель Р Хікс

4

Ви можете виконувати заплановані завдання як інший користувач, таким чином вони взагалі не будуть взаємодіяти з інтерактивним робочим столом вашого облікового запису. Це, звичайно, працює на серверах Windows2003, якими я адмініструю. Будьте обережні, щоб переконатися, що права доступу до файлів та інші відомості про автентифікацію встановлені таким чином, що завдання можуть отримати доступ до того, що їм потрібно, коли не для цього іншого користувача.

Редагувати: Або замість того, щоб безпосередньо запустити консольний інструмент, у вас може бути невеликий скрипт, який запускає його за допомогою 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), хоча в будь-якому випадку приховування / мінімізація лише керує початковим вікном: якщо інструмент відкриється більше, тоді вони все ще можуть вкрасти фокус, як і раніше.

Повний список параметрів методу запуску дивіться на http://msdn.microsoft.com/en-us/library/d5fk67ky%28VS.85%29.aspx .


Боюся, що це неможливо, тому що мені потрібні мої облікові дані kerberos для деяких завдань.
BlaM

Ви можете спробувати запустити завдання побічно і за допомогою методу запуску хоста сценарію Windows, який дозволяє вам трохи контролювати, як представлено початкове вікно завдання. Див. Редагування.
Девід Спіллетт

Подібне запитання, з тією ж відповіддю на використання vbs: serverfault.com/questions/9038/…
Ентоні Хацопулос,

3

Спробуйте виконати заплановане завдання так:

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)

1
Здається, це не працює.
Даніель Р Хікс

1
Нарешті рішення, яке працювало для мене! Але лише після перезавантаження.
Фабіан Рьолінг

btw, замість того, щоб робити c: \ Windows \ System32 \ cmd.exe, ви можете просто зробити% COMSPEC%, який встановлений для використовуваного інтерпретатора командного рядка. Більше інформації див: en.wikipedia.org/wiki/COMSPEC
Brent Rittenhouse


2

Найпростіший спосіб приховати додаток, запущений із планувальника завдань, - встановити його на "Запустити, чи користувач увійшов чи ні". Цей параметр можна знайти на загальній вкладці Властивості запланованої задачі.


1

Ось сценарій SyncToy, який я використовую. Зверніть увагу на кілька лапок навколо розташування файлу:

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

0

Мабуть, ви встановили SQLyog MySQL GUI , який запланував виконання агента роботи SQLyog . Схоже, це консольний додаток, який не намагається приховати себе.

Ви повинні шукати в Планувальнику завдань завдання, що стосується SQLyog, і виправити його запис. Якщо це виклик cmd, спробуйте додати його /bдо списку параметрів. Якщо це лише виклик виконуваного файлу, ви можете виправити це з огляду на мою відповідь .

Якщо у вас є проблеми з пошуком цього запису, використовуйте autoruns, щоб знайти спосіб запуску SQLyog. Ви також можете використовувати regedit для пошуку всіх згадок про SQLyog або будь-якої іншої назви його інсталяційного каталогу.

Звичайно, ви також можете видалити SQLyog MySQL GUI, якщо він вам не потрібен.

Якщо ви не встановили SQLyog MySQL GUI, то ваш комп'ютер може бути заражений. Ви можете скористатися Монітором процесів, щоб перевірити, коли з’являється спливаюче вікно, щоб побачити, чи це Taskeng.exe з system32 або один із подібних елементів Taskeng.exe .


Вже розміщена в іншій відповіді, схоже, не працює .
Тамара Війсман

@TomWijsman: Якщо ви посилаєтесь на "/ b" частину, я включив її лише для повноти.
harrymc

0

У мене виникли точні проблеми з використанням 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файлу, і все!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.