[Résolu][Batch] handle de la fenêtre active

handle de la fenêtre active [Résolu][Batch] - Shell/Batch - Programmation

Marsh Posté le 11-07-2008 à 12:27:45    

Bonjours,
 
Petite question de débutant pour batch:
 
Je voudrais savoir qu'elle est la commande qui permet de renvoyer le handle de la fenêtre active sous variable. (sans connaitre le nom de la fenêtre)
Si elle n'est pas d'origine dans systèm32, où la télécharger ?
 
Merci :)


Message édité par vengil le 19-10-2008 à 23:37:17
Reply

Marsh Posté le 11-07-2008 à 12:27:45   

Reply

Marsh Posté le 11-07-2008 à 13:40:46    

%~dp0%

Reply

Marsh Posté le 11-07-2008 à 14:47:26    

j'ai fait "echo %~dp0%" alors que notepad était au premier plan.
Je trouve "C:\Documents and Settings\****\Bureau", alors que j'attends le handle du notepad ouvert.
 
J'ai surement oublié quelque chose de fondamentale ^^'

Reply

Marsh Posté le 11-07-2008 à 14:51:21    

pardon je croyais que tu parlais du script actif.

Reply

Marsh Posté le 11-07-2008 à 16:18:05    

On ne peut pas connaitre la fenetre active en batch, sauf si c'est le batch qui la lancé, mais dans ce cas là on la connait...
Après je ne sais pas trop de quoi tu parles en disant "handle", mais je ne pense pas qu'on peut récuperer ça en batch, le PID on peut par contre.

Reply

Marsh Posté le 11-07-2008 à 20:10:53    

Heu... je vois pas trop ce que c'est que le PID ^^'
 
Je cherche le numéraux qui peut identifier une fenêtre.
Je sait qu'on peut le retrouver si on connait une partit du nom de celle-ci (déjà fait). Mais là: on ne connait pas son nom, elle est seulement au premier plan.

Reply

Marsh Posté le 12-07-2008 à 12:35:21    

vengil a écrit :

Heu... je vois pas trop ce que c'est que le PID ^^'
 
Je cherche le numéro qui peut identifier une fenêtre.
Je sais qu'on peut le retrouver si on connait une partie du nom de celle-ci (déjà fait). Mais là : on ne connait pas son nom, elle est seulement au premier plan.


 
De mémoire le PID c'est le code qui a été attribué à un processus.
En batch tu peux avoir un tableau des processus et de leur PID avec la fonction tasklist.
Quand tu parles du 'numéro qui peut identifier une fenêtre', tu dois parler du PID sans le savoir.

Reply

Marsh Posté le 12-07-2008 à 13:13:26    

En sachant seulement qu'elle est au premier plan, en batch on ne peut pas récuperer le PID.
En connaissant le nom du processus on peut.

Reply

Marsh Posté le 12-07-2008 à 13:33:00    

J'ai fait quelques tests: Le PID est spécifique d'un programme, alors que le handle est spécifique d'une fenêtre donnée.
En clair, si j'ouvre deux fenêtres firefox: je trouve un PID pour le processus "firefox.exe", et je trouve aussi un numéro différant pour chacune des fenêtres firefox ouvertes. Ceci permet d'agir seulement sur la fenêtre voulu, et non sur le processus entier.
Tous ceci est possible par batch si on connait une partie du nom de la fenêtre.
 
Windows doit bien stocker quelque par l'information qui stipule que telle fenêtre est active et que telle autre est en arrière plan. Il me semble que cette tâche devrait être possible par batch...


Message édité par vengil le 12-07-2008 à 18:13:59
Reply

Marsh Posté le 12-07-2008 à 20:41:22    

En batch, d'après ce que je sais, c'est a dire beaucoup je pense, c'est impossible de savoir quelle fenetre est active.
En vbs peut etre ?
Je rapelle que le batch n'est pas un language de programmation... On peut coder des bons trucs mais sa va pas trop loin non plus.
Essaye de chercher du coté d'AutoIt qui rajoute certaine fonction au batch, mais sinon je pense que le vbs te sera plus approprié peut etre ?

Reply

Marsh Posté le 12-07-2008 à 20:41:22   

Reply

Marsh Posté le 14-07-2008 à 10:05:54    

Bon, je vais chercher de ce côté là.
Merci.


Message édité par vengil le 14-07-2008 à 10:06:42
Reply

Marsh Posté le 19-10-2008 à 23:31:10    

blastkiller a écrit :

En batch, d'après ce que je sais, c'est a dire beaucoup je pense, c'est impossible de savoir quelle fenetre est active.


 
Et si !
 
Voila que trois mois après ce poste je trouve la réponse par hasard : NirCmd
Avec cette commande d'à peine 30 ko, on peut faire un nombre impressionnant de choses. Notamment: changer le titre de la fenêtre au premier plan. Une fois changé, le handle est très facilement trouvable.
Mais les fonctionnalité ne s'arrête pas là: On peut aussi fermer une fenêtre bien précise sans fermer tous le processus ! Se qui fini de résoudre un autre de mes post.
 
Je donne le lien du forum qui m'a permit de trouver: http://astase.com/forums/
 
J'espère que ça aidera du monde ;)


Message édité par vengil le 19-10-2008 à 23:31:46
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed