J'ai plusieurs processus planifiés dans mon environnement Windows 7, principalement pour les sauvegardes, qui sont censés s'exécuter en arrière-plan.
Cependant, au lieu de simplement faire son travail en arrière-plan, le planificateur de tâches affiche une fenêtre noire (comme sur la console) "taskeng.exe". La fenêtre passe devant toutes les autres fenêtres. Heureusement, cela ne vole pas le focus de mon clavier, mais il bloque la vue sur tout.
Existe-t-il un moyen d'éviter cette fenêtre - ou au moins de la faire apparaître en arrière-plan sans voler mon focus VISUEL?
Exemple modifié après l'application de la prime:
Voici ma dernière tentative d'utilisation du truc WScript (dans un fichier nommé RunSignatured.bat):
Set Shell = CreateObject("WScript.Shell")
Shell.Run C:\Users\danh\Bin\signatured.bat, 0, False
Le fichier signatured.bat contient:
cd C:\Users\danh\bin
"C:\Program Files\Java\jre7\bin\java.exe" Signature
Réponses:
Plus précisément à la prime / exemple de Daniel R Hicks, mais je pense qu'il peut toujours être appliqué au problème d'origine:
S'il s'agit d'un fichier de commandes en cours de lancement à partir du Planificateur de tâches, au lieu de simplement lancer le fichier de commandes réduit / invisible, vous devrez probablement également modifier le fichier de commandes lui-même pour exécuter ses commandes de manière invisible.
Alors changez:
Pour quelque chose comme:
Ou peut-être éliminer complètement le fichier de commandes et tout faire à partir du script (VBS) que vous lancez directement à partir du Planificateur de tâches.
Quelque chose comme:
Solution mise en œuvre par DanH, en réponse aux suggestions de techie007, satisfaisant la prime:
Un fichier, nommé RunSignatured.vbs, contenant:
Notez que ce qui précède repose sur java.exe étant dans le chemin d'accès, car la technique ne fonctionne pas avec le blanc dans Program Files lors de la spécification d'un chemin d'accès complet. Il existe sans aucun doute d'autres façons de contourner ce problème, mais c'est à découvrir par d'autres.
Ajoutez ensuite le
RunSignature.vbs
nom "programme / script" dans "Action" dans le Planificateur de tâches.la source
start /b
approche. Rien ne semblait éliminer la fenêtre - je pense qu'elle a été créée au moment où vous commencez à exécuter le fichier bat, donc il est trop tard.java
le chemin de recherche est OK.)Vous pouvez exécuter les tâches planifiées en tant qu'utilisateur différent, de cette façon, elles n'interagiront pas du tout avec le bureau interactif de votre compte normal. Cela semble certainement fonctionner sur les serveurs Windows2003 que j'administre. Veillez simplement à vous assurer que les autorisations de fichier et les autres détails d'authentification sont définis de telle sorte que les tâches puissent accéder à ce dont elles ont besoin lorsqu'elles ne sont pas cet utilisateur différent.
Edit: Ou au lieu d'exécuter directement un outil de console, vous pourriez avoir un petit script qui l'exécute en utilisant WScript.Shell.Run avec l'option "minimiser, pas de changement de focus":
puis exécutez-le avec le planificateur de tâches (la ligne de commande étant quelque chose comme
wscript c:\scripts\test.vbs
) au lieu d'appeler directement l'outil. Vous devriez également pouvoir appeler des fichiers batch et d'autres scripts de cette façon. Il existe également une option "complètement masquer" (remplacez le 7 ci-dessus par un 0), bien que dans les deux cas, la fonction masquer / minimiser ne contrôle que la fenêtre initiale: si l'outil s'ouvre plus lui-même, ils peuvent toujours voler le focus comme auparavant.Voir http://msdn.microsoft.com/en-us/library/d5fk67ky%28VS.85%29.aspx pour une liste complète des options de la méthode d'exécution.
la source
Essayez d'exécuter votre tâche planifiée comme ceci:
Le
start /b
devrait démarrer l'application sans créer de nouvelle fenêtre.Si cela ne fonctionne pas, vous pouvez créer un script AutoIt autonome qui masquera la fenêtre taskeng.exe. Les scripts AutoIt peuvent être compilés en un fichier .exe.
Le fichier .exe serait la première ligne de votre fichier mybackup.bat. Le code AutoIt ressemblerait à ceci:
la source
Essayez 4trayMinimizer . Vous pouvez définir des applications masquées par défaut.
la source
Le moyen le plus simple de masquer une application lancée à partir du Planificateur de tâches est de la définir sur "Exécuter, que l'utilisateur soit connecté ou non". Ce paramètre se trouve dans l'onglet Général des propriétés de tâche planifiée.
la source
Voici le script SyncToy que j'utilise. Remarquez les multiples guillemets autour de l'emplacement du fichier:
la source
Apparemment, vous avez installé l' interface graphique SQLyog MySQL , qui a planifié l'exécution de l' agent de travail SQLyog . Il semble que ce soit une application console qui n'essaye pas de se cacher.
Vous devez rechercher dans le Planificateur de tâches une tâche faisant référence à SQLyog et corriger son entrée. S'il s'agit d'un appel cmd, essayez d'ajouter
/b
à la liste des paramètres. S'il ne s'agit que d'un appel à un exécutable, vous pouvez le corriger au vu de ma réponse .Si vous rencontrez des problèmes pour localiser cette entrée, utilisez les exécutions automatiques pour trouver comment SQLyog est démarré. Vous pouvez également utiliser regedit pour rechercher toutes les mentions de SQLyog ou quel que soit le nom de son répertoire d'installation.
Vous pouvez bien sûr également désinstaller l'interface graphique SQLyog MySQL, si vous n'en avez pas besoin.
Si vous n'avez pas installé l'interface graphique SQLyog MySQL, votre ordinateur peut être infecté. Vous pouvez utiliser Process Monitor pour vérifier quand la fenêtre apparaît, pour voir s'il s'agit du taskeng.exe de system32 ou de l'un des sosies de Taskeng.exe .
la source
J'avais le problème exact en utilisant SQLyog après avoir fait des recherches, je l'ai corrigé en créant un fichier appelé
invisible.vbs
et en insérant ce code:Ensuite, créez un planificateur de tâches pour exécuter le
invisible.vbs
fichier et c'est tout!la source