J'ai un processus démon que je lance sur ma machine toutes les heures et même si j'ai coché la Hidden
case, cela ne fonctionne pas.
Toutes les heures, la tâche est exécutée, mais la fenêtre de commande noire dans laquelle mon application de console .NET s'exécute est affichée. Cela reste visible jusqu'à la fin de la tâche, puis disparaît. C'est très énervant, car il apparaît et interrompt ce que je fais:
Je le veux vraiment caché, alors comment puis-je résoudre ce problème?
windows-7
task-scheduler
Joshua Frank
la source
la source
Réponses:
Cochez la case "Exécuter si l'utilisateur est connecté ou non" et le fichier exécutable s'exécutera en arrière-plan.
la source
Pourquoi la tâche planifiée de Windows 7 en cours d'exécution est-elle masquée? devrait expliquer pourquoi cela se produit.
En outre, cette description TechNet des propriétés de la tâche générale indique:
Cela n'implique-t-il pas que la case à cocher ne masque que la tâche elle-même à l'interface utilisateur du planificateur, et non au programme réel planifié?
la source
D'accord, après quelques recherches supplémentaires, j'ai trouvé cette réponse sur StackOverflow:
Un commentaire indique que cela confère tous les droits à la tâche, ce qui peut être gênant, mais acceptable dans ce cas.
Mais encore, que fait
Hidden
-il, s'il ne fait pas cela? Et pourquoi le compte utilisateur exécutant le programme aurait-il quelque chose à voir avec le fait qu'il soit visible?la source
SYSTEM
compte n'a pas accès aux fichiers cryptés EFS d'autres utilisateurs.LA SOLUTION ULTIME
Si ce sont des pactes pour vous, la solution ultime consiste à créer un fichier de script JS semblable à celui ci-dessous, qui exécutera votre commande dans une fenêtre masquée, attendra que votre commande se termine et renvoie son code d'erreur:
Enregistrez ce fichier comme js (myjob.js) et ajoutez ceci à votre planificateur de tâches: Profitez
la source
"Exécuter si l'utilisateur est connecté ou non" permettra à l'option masquée de fonctionner. Notez que vous devez fournir vos informations d'identification après avoir choisi cette option.
la source
Tous les deux :
empêchera la fenêtre de commande noire, mais soyez conscient des inconvénients: vous ne pourrez pas travailler avec certains outils d'automatisation d'interface graphique tels que 'AutoIt' ou SendKeys dans PowerShell, car Windows lance les tâches dans un environnement sans style.
la source
Je laisse les paramètres par défaut et écris de courts programmes personnalisés qui génèrent l'exécution sans afficher de fenêtre. Par exemple, pour exécuter un fichier de commandes sans ouvrir une fenêtre d'invite de commande, utilisez le code ci-dessous. Définissez la tâche pour générer "RunBatchFile.exe (path_to_batch_file)".
la source
ProcessWindowStyle.Hidden
partie spécifiquement, correct? Je vois quelque chose à ce sujet ici: msdn.microsoft.com/en-us/library/…J'avais ce problème avec les tâches planifiées Powershell (que je déployais via GPO). J'ai fini par l'envelopper dans une fenêtre de commande:
la source