2010-08-02 3 views
1

Je souhaite écrire un gestionnaire de fenêtres Windows 7 en Java, mais il y a quelques problèmes. Tout d'abord, comment puis-je manipuler la taille et la position d'une fenêtre qui n'appartient pas à ma propre application? En d'autres termes, comment puis-je manipuler les fenêtres d'autres applications?Manipulation de fenêtres à partir d'autres applications en Java

Et, en relation avec ma première question, est-il possible d'obtenir une liste de toutes les fenêtres actuelles?

Et, la dernière question: Java est-il adapté à cette tâche ou devrais-je jeter un oeil à C#?

Répondre

2

Premièrement: Java n'est probablement pas le langage le mieux adapté à cette tâche. Vous devez appeler l'API Windows native, donc C/C++ serait un ajustement naturel. Vous pouvez utiliser Java avec JNI, mais cela ne vaut probablement pas la peine. Je ne connais pas C#/Managed C++, donc je ne peux pas dire quelque chose à ce sujet.

Obtenir une liste de Windows actuelle: http://support.microsoft.com/kb/183009

Changer les positions des fenêtres:
SetWindowPos
SetWindowPlacement

Vous pouvez aussi avoir besoin de s'informer lors de chaque changement de fenêtre. Regardez par exemple SetWindowsHookEx, en particulier le CBTHook.

Editer: La dernière fois que j'ai essayé, il était toujours permis de changer les fenêtres des autres processus. Si cela n'est plus autorisé sous windows7, vous pouvez toujours installer un hook global et changer les fenêtres de l'intérieur du processus ...

+0

Je suis d'accord. Si vous allez être en interface avec le système d'exploitation sous-jacent, C/C++ serait un meilleur ajustement que Java. – Richard

Questions connexes