Pare a janela do taskeng.exe de aparecer

17

Eu tenho vários processos agendados no meu ambiente do Windows 7, principalmente para backups, que devem ser executados em segundo plano.

No entanto, em vez de apenas fazer o trabalho silenciosamente em segundo plano, o agendador de tarefas abre uma janela preta (console like) "taskeng.exe". A janela vai na frente de todas as outras janelas. Felizmente, ele não rouba meu foco no teclado, mas bloqueia a visão de tudo.

Existeumamaneiradeevitaressajanela-ou,pelomenos,apareceremsegundoplanosemroubarmeufocoVISUAL?

Exemploeditadodepoisdarecompensaaplicada:

AquiestáminhaúltimatentativadeusaromaterialdoWScript(emumarquivochamadoRunSignatured.bat):

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

O arquivo signatured.bat contém:

cd C:\Users\danh\bin
"C:\Program Files\Java\jre7\bin\java.exe" Signature
    
por BlaM 12.11.2010 / 11:16

8 respostas

6

Mais especificamente ao exemplo / recompensa de Daniel R Hicks, mas acho que ainda pode ser aplicado ao problema original:

Se for um arquivo de lote sendo iniciado no Agendador de Tarefas, em vez de apenas iniciar o arquivo em Lotes minimizado / invisível, você provavelmente também precisará modificar o arquivo em lote para executá-lo de forma invisível.

Então mude:

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

Para algo como:

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

Ou talvez elimine completamente o arquivo em lote e faça tudo apenas com o script (VBS) iniciado diretamente do Agendador de Tarefas.

Algo como:

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

Solução implementada pelo DanH, em resposta às sugestões do techie007, satisfazendo a recompensa:

Um arquivo chamado RunSignatured.vbs, contendo:

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

Observe que o acima depende do java.exe estar no caminho, uma vez que a técnica não funciona com o espaço em branco nos Arquivos de Programas ao especificar um caminho completo. Não há dúvidas de outras maneiras de contornar esse problema, mas isso é para os outros descobrirem.

Em seguida, adicione RunSignature.vbs como o nome "programa / script" na "Ação" no Agendador de Tarefas.

    
por 22.09.2012 / 19:18
4

Você pode executar as tarefas agendadas como um usuário diferente, de modo que elas não interajam com a área de trabalho interativa de sua conta normal. Isso certamente parece funcionar nos servidores Windows2003 que eu administro. Apenas tenha cuidado para garantir que as permissões de arquivo e outros detalhes de autenticação sejam definidos de forma que as tarefas possam acessar o que precisam quando un, como esse usuário diferente.

Editar: Em vez de executar uma ferramenta de console diretamente, você pode ter um pequeno script que o executa usando o WScript.Shell.Run com a opção "minimizar, sem alteração de foco":

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

execute isso com o agendador de tarefas (a linha de comando é algo como wscript c:\scripts\test.vbs ) em vez de chamar a ferramenta diretamente. Você deve poder chamar arquivos em lote e outros scripts dessa maneira também. Há também uma opção "ocultar completamente" (substitua o 7 acima por um 0), embora em ambos os casos o hide / minimize apenas controle a janela inicial: se a ferramenta abrir mais, ela ainda poderá roubar o foco como antes. p>

Veja o link para obter uma lista completa de opções para a execução método.

    
por 12.11.2010 / 11:55
3

Tente executar sua tarefa agendada assim:

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

O start /b deve iniciar o aplicativo sem criar uma nova janela.

Se isso não funcionar, crie um script autônomo AutoIt que ocultará a janela taskeng.exe. Os scripts AutoIt podem ser compilados em um .exe.

O .exe seria a primeira linha do seu arquivo mybackup.bat. O código AutoIt ficaria assim:

WinSetState("taskeng", @SW_HIDE)
    
por 17.04.2012 / 14:13
2

Experimente o 4trayMinimizer . Você pode definir aplicativos ocultos por padrão.

    
por 17.03.2012 / 11:06
2

A maneira mais simples de ocultar um aplicativo iniciado a partir do Agendador de Tarefas é defini-lo como "Executar se o usuário está conectado ou não". Essa configuração pode ser encontrada na guia Geral das Propriedades da tarefa agendada.

    
por 02.06.2015 / 06:32
1

Aqui está o script SyncToy que eu uso. Observe as várias aspas ao redor do local do arquivo:

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

Aparentemente, você instalou a SQLyog MySQL GUI , que programou a execução do SQLyog Job Agent . Parece que é um aplicativo de console que não tenta se esconder.

Você deve procurar no Agendador de Tarefas uma tarefa referente ao SQLyog e corrigir sua entrada. Se for uma chamada de cmd, tente adicionar /b à lista de parâmetros. Se é apenas uma chamada para um executável, você pode corrigi-lo em vista de esta minha resposta .

Se você tiver problemas para localizar esta entrada, use autoruns para descobrir como o SQLyog foi iniciado. Você também pode usar o regedit para procurar todas as menções do SQLyog ou qualquer que seja o nome do seu diretório de instalação.

Você pode também desinstalar o SQLyog MySQL GUI, se você não precisar dele.

Se você não instalou o SQLyog MySQL GUI, seu computador pode estar infectado. Você pode usar o Process Monitor para verificar quando o pop-up aparece, para ver se é o taskeng. exe do system32 ou de um dos semelhantes ao Taskeng.exe .

    
por 22.09.2012 / 09:43
0

Eu estava tendo o problema exato usando SQLyog depois de fazer algumas pesquisas eu corrigi-lo criando um arquivo chamado invisible.vbs e inserindo este código:

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

Em vez de criar um Agendador de Tarefas para executar o arquivo invisible.vbs e pronto!

    
por 26.02.2013 / 18:22