Javascript pour récupérer le HWND d'une fenêtre Windows

Javascript pour récupérer le HWND d'une fenêtre Windows - HTML/CSS - Programmation

Marsh Posté le 18-06-2009 à 11:50:21    

Bonjour,
 
Voici mon problème. Je souhaiterais à partir d'une page web pouvoir gérer les fenêtres Windows ouvertes par l'utilisateur (ouvrir, fermer les fenêtres). Je souhaite donc passer par les fonctions EnumWindows, GetWindow et CloseWindow de la librairie USER32.DLL.
 
Evidemment cela n'est pas possible directement en Javascript car le navigateur n'a pas accès aux fonctions Windows de la librairie USER32.DLL. Je pense donc utiliser un Activex.
 
L'activex WScript.Shell permet de pouvoir utiliser la fonction RUN et lancer des fonctionnalités Windows.
 
Ainsi, par exemple le code suivant fonctionne à partir d'une page web (testé):
 
var WShell = new ActiveXObject("WScript.Shell" );
WShell.Run("rundll32.exe user32.dll,LockWorkStation" );
 
J'arrive donc à accéder à la procédure LockWorkStation de la librairie user32.
 
Par contre, pour utiliser des fonctions retournant des valeurs, tel que EnumWindows, là je bloque.
 
En effet, la ligne de code suivante
var = WShell.Run("rundll32.exe user32.dll,EnumWindows" );
 
ne retourne pas la valeur de la fonction EnumWindows contenue dans la librairie user32, mais retourne 0 ou 1 (la valeur du WShell.run!
 
Comment donc récupérer la valeur de la fonction EnumWindows afin de récupérer les handler (HWND) des fenêtres actives, pour pouvoir effectuer ensuite un CloseWindow sur une fenêtre spécifique?
 
En gros, j'aimerais faire la chose suivante à partir de Javascript:
 
var listeFenetres = monActiveX.listeDesFenetresWindows.
monActiveX.CloseWindow(listeFenetres[2]);
 
Merci d'avance pour toutes vos réponses!

Reply

Marsh Posté le 18-06-2009 à 11:50:21   

Reply

Marsh Posté le 22-06-2009 à 11:50:16    

Aucune piste?

Reply

Marsh Posté le 22-06-2009 à 12:17:41    

en javascript tu peux fermer des fenetres que tu as ouvert via javascript


---------------

Reply

Marsh Posté le 22-06-2009 à 12:44:49    


bonjour,
 
>>j'aimerais faire la chose suivante
...et tu décris un activeX.
 
il te reste à l'écrire cet activeX !
 
si tu veux une ch'tiote explication basique :
lis : http://marcel-bultez.chez-alice.fr [...] JS_DLL.htm
 
c'est un exemple d'activeX écrit avec VB, mais
tu feras la même chose avec n'importe quel langage.
 
@+

Reply

Marsh Posté le 22-06-2009 à 13:25:50    

Juste une précision sur EnumWindows : cette fonction ne fonctionne que si on lui transmet un pointeur de fonction callback en paramètre, laquelle fonction devra traiter les handles qu'EnumWindows lui transmet.
Donc je ne sais pas trop ce que tu essaies de faire quand tu dis que tu veux "récupérer la valeur de la fonction EnumWindows", vu que EnumWindows ne renvoie qu'un booléen pour dire si elle a abouti ou non.

 

edit: laisse tomber, j'ai lu de travers. mais l'avis ci-dessous reste valable

 

Enfin, mais c'est un avis personnel, un site qui se permet de fermer des fenêtres que j'ai ouvertes moi même (donc en dehors de tout popup de pub), je le bannis de toute visite ultérieure et j'envoie un courrier à l'anthrax à son auteur

Message cité 1 fois
Message édité par Harkonnen le 22-06-2009 à 13:34:36

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 22-06-2009 à 17:48:56    

flo850 a écrit :

en javascript tu peux fermer des fenetres que tu as ouvert via javascript


 
Oui en effet, mais la ce ne sont pas des fenêtres IE lancées en javascript mais toutes sortes d'applications Windows.
 

bul_3 a écrit :


bonjour,
 
>>j'aimerais faire la chose suivante
...et tu décris un activeX.
 
il te reste à l'écrire cet activeX !
 
si tu veux une ch'tiote explication basique :
lis : http://marcel-bultez.chez-alice.fr [...] JS_DLL.htm
 
c'est un exemple d'activeX écrit avec VB, mais
tu feras la même chose avec n'importe quel langage.
 
@+


 
Merci!
 

Harkonnen a écrit :

Juste une précision sur EnumWindows : cette fonction ne fonctionne que si on lui transmet un pointeur de fonction callback en paramètre, laquelle fonction devra traiter les handles qu'EnumWindows lui transmet.
Donc je ne sais pas trop ce que tu essaies de faire quand tu dis que tu veux "récupérer la valeur de la fonction EnumWindows", vu que EnumWindows ne renvoie qu'un booléen pour dire si elle a abouti ou non.
 
edit: laisse tomber, j'ai lu de travers. mais l'avis ci-dessous reste valable
 
Enfin, mais c'est un avis personnel, un site qui se permet de fermer des fenêtres que j'ai ouvertes moi même (donc en dehors de tout popup de pub), je le bannis de toute visite ultérieure et j'envoie un courrier à l'anthrax à son auteur


 
Oui en effet, EnumWindows ne s'utilise pas tout à fait comme dans mon exemple, c'était un exemple grossier pour dire que je veux connaitre la liste des fenêtres des applications Windows ouvertes.
 
Pour en venir au fait que le système que je veux mettre en place s'apparente à un hack je suis tout à fait d'accord avec toi. Seulement il ne s'agit pas d'un site web ouvert, c'est une application intranet. En fait pour résumer, via l'application web, l'utilisateur peut lancer des instances de connexion Citrix. Le but est de n'avoir, pour diverses raisons, qu'une seule fenêtre Citrix à la fois d'ouverte. Donc lorsque l'utilisateur se connecte à ma page, je veux vérifier qu'il n'y a pas de Citrix ouvert, si c'est le cas, je veux fermer celle déjà ouverte. C'est pour cela que j'essaye de voir toutes les applis Windows qui tourne, et fermer celle que je veux....

Reply

Sujets relatifs:

Leave a Replay

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