Mam zaplanowanych kilka procesów w moim środowisku Windows 7, głównie w przypadku kopii zapasowych, które powinny działać w tle.
Jednak zamiast po prostu działać cicho w tle, harmonogram zadań wyświetla czarne („konsolowe”) okno „taskeng.exe”. Okno przechodzi przed wszystkimi innymi oknami. Na szczęście nie kradnie mojej klawiatury, ale blokuje widok na wszystko.
Czy istnieje sposób na uniknięcie tego okna - a przynajmniej sprawienie, by pojawiło się w tle bez kradzieży mojego VISUAL focus?
Przykład edytowany po zastosowaniu nagrody głównej:
Oto moja ostatnia próba użycia rzeczy WScript (w pliku o nazwie RunSignatured.bat):
Set Shell = CreateObject("WScript.Shell")
Shell.Run C:\Users\danh\Bin\signatured.bat, 0, False
Plik Signatured.bat zawiera:
cd C:\Users\danh\bin
"C:\Program Files\Java\jre7\bin\java.exe" Signature
Odpowiedzi:
Mówiąc dokładniej, nagroda / przykład Daniela R. Hicksa, ale myślę, że nadal można go zastosować do pierwotnego problemu:
Jeśli jest to plik wsadowy uruchamiany z Harmonogramu zadań, to zamiast po prostu uruchomić plik wsadowy zminimalizowany / niewidoczny, prawdopodobnie musisz również zmodyfikować sam plik wsadowy, aby uruchomić polecenia niewidocznie.
Więc zmień:
Do czegoś takiego:
A może całkowicie wyeliminuj plik wsadowy i po prostu zrób wszystko ze skryptu (VBS), który uruchamiasz bezpośrednio z Harmonogramu zadań.
Coś jak:
Rozwiązanie wdrożone przez DanH, w odpowiedzi na sugestie techie007, spełniające nagrodę:
Jeden plik o nazwie RunSignatured.vbs, zawierający:
Należy zauważyć, że powyższe polega na tym, że java.exe znajduje się na ścieżce, ponieważ technika nie działa z pustą pozycją w Program Files podczas określania pełnej ścieżki. Nie ma wątpliwości, że istnieją inne sposoby obejścia tego problemu, ale inni mogą to odkryć.
Następnie dodaj
RunSignature.vbs
jako nazwę „programu / skryptu” w „Akcji” w Harmonogramie zadań.źródło
start /b
podejścia. Wydawało się, że nic nie eliminuje okna - myślę, że zostało utworzone przed rozpoczęciem wykonywania pliku nietoperza, więc jest już za późno.java
przejście do ścieżki wyszukiwania jest OK.)Możesz uruchamiać zaplanowane zadania jako inny użytkownik, w ten sposób nie będą oni w ogóle wchodzić w interakcje z pulpitem interaktywnym twojego normalnego konta. Z pewnością działa to na serwerach Windows2003, którymi administruję. Uważaj tylko, aby upewnić się, że uprawnienia do plików i inne szczegóły uwierzytelniania są ustawione tak, aby zadania miały dostęp do tego, czego potrzebują, gdy nie jest to inny użytkownik.
Edycja: Lub zamiast bezpośrednio uruchamiać narzędzie konsoli, możesz mieć mały skrypt, który uruchamia go za pomocą WScript.Shell.Run z opcją „minimalizuj, brak zmiany fokusa”:
następnie uruchom to za pomocą harmonogramu zadań (podobnie jak wiersz poleceń
wscript c:\scripts\test.vbs
) zamiast bezpośrednio wywoływać narzędzie. W ten sposób powinieneś być w stanie wywoływać pliki wsadowe i inne skrypty. Istnieje również opcja „całkowicie ukryj” (zamień 7 powyżej na 0), jednak w każdym przypadku ukryj / minimalizuj kontroluje tylko okno początkowe: jeśli narzędzie otworzy się bardziej, to może nadal kraść fokus jak poprzednio.Zobacz http://msdn.microsoft.com/en-us/library/d5fk67ky%28VS.85%29.aspx, aby uzyskać pełną listę opcji dla metody uruchamiania.
źródło
Spróbuj uruchomić zaplanowane zadanie w ten sposób:
start /b
Należy uruchomić aplikację bez tworzenia nowego okna.Jeśli to nie zadziała, możesz utworzyć samodzielny skrypt AutoIt , który ukryje okno taskeng.exe. Skrypty AutoIt można skompilować do pliku .exe.
Plik .exe byłby pierwszym wierszem w pliku mybackup.bat. Kod AutoIt wygląda następująco:
źródło
Wypróbuj 4trayMinimizer . Możesz zdefiniować aplikacje, które są domyślnie ukryte.
źródło
Najprostszym sposobem na ukrycie aplikacji uruchomionej w Harmonogramie zadań jest ustawienie jej na „Uruchom bez względu na to, czy użytkownik jest zalogowany”. To ustawienie można znaleźć na karcie Ogólne we właściwościach zaplanowanego zadania.
źródło
Oto skrypt SyncToy, którego używam. Zwróć uwagę na wiele cudzysłowów wokół lokalizacji pliku:
źródło
Najwyraźniej zainstalowałeś SQLyog MySQL GUI , który zaplanował wykonanie SQLyog Job Agent . Wygląda na to, że jest to aplikacja konsolowa, która nie próbuje się ukryć.
Powinieneś poszukać w Harmonogramie zadań zadania odnoszącego się do SQLyog i poprawić jego wpis. Jeśli jest to wywołanie cmd, spróbuj dodać
/b
do listy parametrów. Jeśli jest to tylko wywołanie pliku wykonywalnego, możesz to poprawić w świetle mojej odpowiedzi .Jeśli masz problemy ze zlokalizowaniem tego wpisu, użyj autoruns, aby dowiedzieć się, jak SQLyog jest uruchamiany. Możesz także użyć regedit do wyszukiwania wszystkich wzmianek o SQLyog lub jakiejkolwiek nazwie jego katalogu instalacyjnego.
Możesz oczywiście również odinstalować GUI SQLyog MySQL, jeśli go nie potrzebujesz.
Jeśli nie zainstalowano GUI SQLyog MySQL, komputer może być zainfekowany. Za pomocą Monitora procesów można sprawdzić, kiedy pojawi się wyskakujące okienko, aby sprawdzić, czy jest to taskeng.exe z systemu32, czy jeden z podobnych do Taskeng.exe .
źródło
dokładnie miałem problem z SQLyogiem po przeprowadzeniu pewnych badań, naprawiłem go tworząc plik o nazwie
invisible.vbs
i wstawiając ten kod:Następnie utwórz Harmonogram zadań, aby uruchomić
invisible.vbs
plik i to wszystko!źródło