Réduire fenêtre grâce à son processus

geekploy Messages postés 130 Date d'inscription   Statut Membre Dernière intervention   -  
Quester4 Messages postés 136 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
J'ai régulièrement des fenêtres qui s'ouvrent liés à des programmes en arrière plan (comme l'antivirus, messageries ....). C'est un fonctionnement normal qui peut être gênant lorsque que je regarde un film, ou que je joue à un jeu, ou lorsque j'utilise word. Bref parfois ces fenêtres sont utiles parfois elles sont gênantes.

J'ai pensé créer un fichier batch qui tourne en arrière plan et kill les processus associés dès que les fenêtres s'ouvrent. Le problème c'est que je veux pas les tuer ou je peux pas les tuer (cf anti-virus).
C'est pourquoi je voudrai réduire ces fenêtres automatiquement pour plus qu'elles me gênent et que je puisse quand même les consulté si l'envi me prend.
Je suis très loin d'être fort en programmation (ayant quand même quelques bases), j'ai pas trouvé la commande en batch qui pourrai réduire un processus quand la fenêtre s'agrandit.
Je ne sais pas si c'est possible, j'ai regardé le tasklist et le taskkill de plus près mais j'ai pas l'impression que je puisse m'en servir.

Si quelqu'un connaissait un moyen de résoudre mon problème j'en serai ravi.
Merci.

ps : Si il existe une commande en VB.net je veux bien tester mais je suis encore plus un novice.
A voir également:

1 réponse

Quester4 Messages postés 136 Date d'inscription   Statut Membre Dernière intervention   126
 
Bonjour,

Il est impossible en Batch de masquer des fenêtres sans tuer leurs processus.
Éventuellement, tu peux faire comme ceci :

@echo off
taskkill Processus
start /min Emplacement_Application

Ce qui est tout bête, ça coupe le processus, puis ça le lance en fenêtre réduite. Comme cela, pas de notifications. Et normalement, un processus avec sa fenêtre minimisée ne fera pas de notifications supplémentaires (ensuite, tout dépend du logiciel), donc autant ne pas faire de boucle. Si tu y tiens, tu peux faire une boucle comme ceci :

@echo off
:Start
taskkill Processus
start /min Emplacement_Application
ping localhost -n 60>nul
goto :Start

Le ping va attendre 60 secondes... Avant d'étendre à nouveau l'application et de la relancer. Sinon, chaque seconde le processus sera redémarré, ce qui est assez contraignant au niveau mémoire vive/processeur.
0
geekploy Messages postés 130 Date d'inscription   Statut Membre Dernière intervention   2
 
Merci pour cette réponse. Je me doutais un peu que c'était impossible.
Cette solution est intéressante mais étant donné que je peux pas tuer le processus et qu'une boucle de ce genre est effectivement "contraignante". Je vais plutôt abandonner le batch.
Sais-tu si il est possible de faire ça avec un autre langage comme le visual basic ou autre ?
0
Quester4 Messages postés 136 Date d'inscription   Statut Membre Dernière intervention   126
 
Je ne sais pas vraiment...
Si tu relis mon paragraphe, tu remarqueras que j'ai intégré dans cet extrait de code la ligne :
ping localhost -n 60>nul
Cette ligne fait patienter pendant 60 secondes, avant de redémarrer les processus, ce qui est bien moins contraignant.
Tu peux bien sûr changer la valeur 60, mettre 600 (donc 10 minutes), 120 (2 minutes), ou autre. Voire même le conserver en fenêtre réduite sans faire de redémarrage... En enlevant le Goto :Start, et le label :Start.

Il doit être possible effectivement de faire ça avec d'autres langages, mais je ne m'y connais pas...
0
geekploy Messages postés 130 Date d'inscription   Statut Membre Dernière intervention   2
 
Oui j'avais bien vu, le soucis c'est que si la fenêtre reste 60s ouverte avant de se fermer ça sert pas à grand, je peux la fermer manuellement en bien moins de 60s.
Merci quand même.
0
Quester4 Messages postés 136 Date d'inscription   Statut Membre Dernière intervention   126
 
Le but est justement de garder ouverte mais réduite la fenêtre du processus, de sorte à ce qu'elle se considère comme ayant une fenêtre ouverte, et n'affiche pas de notifications.
0