Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Capturer le contenu d'une fenetre

8 réponses
Avatar
Pif
Bonjour, pour ceux qui connaissent mac, l'idée est un peu la meme que
leur docking :

je voudrais dans un application pourvoir récupérer la liste des fenetres
et pouvoir en visualiser une miniature dans mon programme...

Quelqu'un a une idée ? Eventuellement, et plus spécifiquement,
j'aimerais la liste des fenetres de navigateur, et éventuellement
récupérer le contenu de la page par exemple en plus ...



merci !

8 réponses

Avatar
jlp
Pas tout compris mais regarder autour de
java.awt.Robot
la methode createScreenCapture
puis certainement associé à du JNI pour afficher la fenetre en foreground
avant de la capturer.

"Pif" a écrit dans le message de
news:e00p3r$379$
Bonjour, pour ceux qui connaissent mac, l'idée est un peu la meme que
leur docking :

je voudrais dans un application pourvoir récupérer la liste des fenetres
et pouvoir en visualiser une miniature dans mon programme...

Quelqu'un a une idée ? Eventuellement, et plus spécifiquement,
j'aimerais la liste des fenetres de navigateur, et éventuellement
récupérer le contenu de la page par exemple en plus ...



merci !


Avatar
fd
Pas tout compris mais regarder autour de
java.awt.Robot
la methode createScreenCapture
puis certainement associé à du JNI pour afficher la fenetre en foreground
avant de la capturer.

Robot, j'adore .. mais il me semble qu'il y a du nouveau pour les

screenshots en 1.5, je vais jeter un coup d'oeil
tu peux faire ta capture en utilisant un window listerner et en
declachant ton screenshot sur le windowDeactivated

(pour ceux qui suive le groupe, je n'ai pas bu mon café d'apres manger,
alors il se peut que je dise encore des conneries)

Avatar
fd
Robot, j'adore .. mais il me semble qu'il y a du nouveau pour les
screenshots en 1.5, je vais jeter un coup d'oeil
tu peux faire ta capture en utilisant un window listerner et en
declachant ton screenshot sur le windowDeactivated

(pour ceux qui suive le groupe, je n'ai pas bu mon café d'apres manger,
alors il se peut que je dise encore des conneries)


bein oui, j'ai dit une connerie .. vu que c'est pas ton prog java que tu
veux capturer ... tu peux utiliser robot mais pas mon window listener
fumeux ... allez, vite , un bon café ;)

Avatar
jlp
"fd" a écrit dans le message de
news:4423f9f4$0$12878$

Robot, j'adore .. mais il me semble qu'il y a du nouveau pour les
screenshots en 1.5, je vais jeter un coup d'oeil
tu peux faire ta capture en utilisant un window listerner et en
declachant ton screenshot sur le windowDeactivated

(pour ceux qui suive le groupe, je n'ai pas bu mon café d'apres manger,
alors il se peut que je dise encore des conneries)


bein oui, j'ai dit une connerie .. vu que c'est pas ton prog java que tu
veux capturer ... tu peux utiliser robot mais pas mon window listener
fumeux ... allez, vite , un bon café ;)
d'où hélas le JNI,

mais peut-être avec Mustang ( 6.0 ) ....


Avatar
Pif
Tu fais quoi exactement avec le JNI ?


"fd" a écrit dans le message de
news:4423f9f4$0$12878$
Robot, j'adore .. mais il me semble qu'il y a du nouveau pour les
screenshots en 1.5, je vais jeter un coup d'oeil
tu peux faire ta capture en utilisant un window listerner et en
declachant ton screenshot sur le windowDeactivated

(pour ceux qui suive le groupe, je n'ai pas bu mon café d'apres manger,
alors il se peut que je dise encore des conneries)
bein oui, j'ai dit une connerie .. vu que c'est pas ton prog java que tu

veux capturer ... tu peux utiliser robot mais pas mon window listener
fumeux ... allez, vite , un bon café ;)
d'où hélas le JNI,

mais peut-être avec Mustang ( 6.0 ) ....






Avatar
jlp
tu recupères le handle de ( ou des fenetres) la fenetre à l'aide des API
Windows Microsoft, tu en met une en foreground et apres tu prends l'image
avec Robot
"Pif" a écrit dans le message de
news:e0astg$1c3$
Tu fais quoi exactement avec le JNI ?


"fd" a écrit dans le message de
news:4423f9f4$0$12878$
Robot, j'adore .. mais il me semble qu'il y a du nouveau pour les
screenshots en 1.5, je vais jeter un coup d'oeil
tu peux faire ta capture en utilisant un window listerner et en
declachant ton screenshot sur le windowDeactivated

(pour ceux qui suive le groupe, je n'ai pas bu mon café d'apres
manger,




alors il se peut que je dise encore des conneries)
bein oui, j'ai dit une connerie .. vu que c'est pas ton prog java que

tu



veux capturer ... tu peux utiliser robot mais pas mon window listener
fumeux ... allez, vite , un bon café ;)
d'où hélas le JNI,

mais peut-être avec Mustang ( 6.0 ) ....








Avatar
Pif
J'ai jamais utilisé JNI, tu as 1 ou deux pointeurs (lien, nom de
classe, etc.) qui me dirigent vers ce qui permet de lister les fenetres
du système par exemple ?

merci


tu recupères le handle de ( ou des fenetres) la fenetre à l'aide des API
Windows Microsoft, tu en met une en foreground et apres tu prends l'image
avec Robot




Avatar
jlp
"Pif" a écrit dans le message de
news:e0balk$5r7$
J'ai jamais utilisé JNI, tu as 1 ou deux pointeurs (lien, nom de
classe, etc.) qui me dirigent vers ce qui permet de lister les fenetres
du système par exemple ?

merci


tu recupères le handle de ( ou des fenetres) la fenetre à l'aide des
API


Windows Microsoft, tu en met une en foreground et apres tu prends
l'image


avec Robot


Il y a un tutorial donné avec le JDK et sur le site de


sunhttp://java.sun.com/developer/onlineTraining/Programming/JDCBook/jni.html
. En fait les fonctions sont données dans les dll Windows
un extrait pour un exemple de fichier .c que j'ai utilisé :
#include <windows.h>
#include <tlhelp32.h>
#include <stdio.h>
#include <string.h>
#include <psapi.h>

// exemple de fonctiobn JNI :
JNIEXPORT jint JNICALL Java_RobotSaisieJLPV4_KeyLogJava_getWindowHandle
(JNIEnv *env, jobject obj)
{
jint hwnd = (jint) GetForegroundWindow();
printf(" hwnd = %d n",hwnd);
return hwnd;
}

JNIEXPORT jint JNICALL Java_RobotSaisieJLPV4_KeyLogJava_setFocus
(JNIEnv *env, jobject obj, jint hwnd)
{
jint hwnd2=(jint)setFocus((HWND)((int) hwnd) );
return hwnd2;
}

JNIEXPORT jboolean JNICALL
Java_RobotSaisieJLPV4_KeyLogJava_setForegroundWindow
(JNIEnv *env, jobject obj, jint hwnd)
{
jboolean retourúLSE;
retour=SetForegroundWindow((HWND) ((int) hwnd));
return retour;
}

JNIEXPORT jint JNICALL Java_RobotSaisieJLPV4_KeyLogJava_getMousePosX
(JNIEnv *env, jobject jobj)

{
POINT pt;
GetCursorPos(&pt);

printf ("X =%d n",pt.x);
return ((jint) pt.x);
}


JNIEXPORT jint JNICALL Java_RobotSaisieJLPV4_KeyLogJava_getMousePosY
(JNIEnv *env, jobject obj)
{
POINT pt;
GetCursorPos(&pt);

printf ("Y =%d n",pt.y);
return ((jint) pt.y);

}

et les fonctions JNI ci-dessus représentent des methodes avec le
modificateur native de la classe RobotSaisieJLPV4.KeyLogJava