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

Screenshot du bureau en "background"

8 réponses
Avatar
RougailSaucisse
Bonjour à tous,

Je suis actuellement en train de developper un programme (en c#, eh oui
désolé pour ceux qui ne considère pas ca comme un "vrai" language :p) et il
se trouve que je doive faire quelques appels à certaines fonctions Win32
(FindWindow, Enumwindows....) et l'on m'a conseillé de venir me renseigné
sur ce newsgroup, so here i am.

Je cherche donc à faire une capture d'écran du bureau (je sais faire une
capture d'écran normale, ou encore une capture d'ecran ciblée sur un hwnd
mais la je veux vraiment une capture d'écran du bureau uniquement sans
toutes les eventuelles fenetres ouvertes). J'aimerai si possible que cela
soit fait en "background", c'est a dire que je n'ai pas a faire
ShowWindow(hwnd, SW_HIDE) sur chaque fenetre puis ShowWindow(hwnd, SW_SHOW)
pour les reafficher ensuite par exemple.

cela est-il réalisable? si oui, pourriez vous m'indiquer quelques pistes?

Pour ce qui est de l'utilité de réaliser ceci:

je souhaite en fait faire une appli qui simule des bureaux multiples, un peu
comme sous linux. cela fonctionne deja plus ou moins mais j'aimerai au
chargement de l'application qu'il me prenne une screnshot du bureau afin
d'avoir un apercu. En gros j'ai mon appli un peu sous forme de "popup",
divisé en 4 zones rectangulaire correspondant à chaque bureau. ainsi lorsque
je lance mon application je me trouve sur le bureau 1 avec toutes mes
fenetres, je fais donc un screenshot et l'affiche dans la premiere zone ce
qui me donne un apercu. Et ce que je voudrais c'est qu'il me prenne une
screenshot du bureau niquement pour l'afficher sur les 3 autres zones
(correspondant a des bureaux "vides" pour le moment).

J'espere que c'est a peu pres clair ^^

Merci d'avance,

RougailSaucisse!

8 réponses

Avatar
Sylvain SF
RougailSaucisse a écrit :

Je cherche donc à faire une capture d'écran du bureau (je sais faire une
capture d'écran normale, ou encore une capture d'ecran ciblée sur un
hwnd mais la je veux vraiment une capture d'écran du bureau uniquement
sans toutes les eventuelles fenetres ouvertes).



ne serait-il pas plus simple de faire récupérer la couleur de fond
et/ou le dessin de fond (et ses attribs centré, tuile, ...) et de
créer directement la bitmap vignette ?

Sylvain.
Avatar
Christian ASTOR
RougailSaucisse wrote:

Je cherche donc à faire une capture d'écran du bureau (je sais faire une
capture d'écran normale, ou encore une capture d'ecran ciblée sur un
hwnd mais la je veux vraiment une capture d'écran du bureau uniquement
sans toutes les eventuelles fenetres ouvertes).



PaintDesktop() par ex pour dessiner le Wallpaper
Avatar
RougailSaucisse
"Christian ASTOR" wrote in message
news:49a62d0b$0$21743$
RougailSaucisse wrote:

Je cherche donc à faire une capture d'écran du bureau (je sais faire une
capture d'écran normale, ou encore une capture d'ecran ciblée sur un hwnd
mais la je veux vraiment une capture d'écran du bureau uniquement sans
toutes les eventuelles fenetres ouvertes).



PaintDesktop() par ex pour dessiner le Wallpaper



PaintDesktop ne semble pas fonctionner comme je le pensais. C'est comme s'il
ne pouvait pas ecrire correctement dans le DC (je sais pas trop comment
expliquer). Il me renvoie une image entierement noire.
Enfin bon tant pis. De toute facon a la base je souhaitais faire un capture
du bureau mais en fait pas uniquement le fond d'ecran, donc avec quand mm
les icones du bureau dans la capture. Mais appremment ce n'est pas
réalisable, je vais donc m'en remettre a ma solution de secours (qui est
celle dont parle aussi sylvain) a savoir récuprer directement l'image du
bureau courant.

Merci quand mm pour votre aide (assez rapide je dois dire, je n'attendais
pas de réponses aussi vite ^^)
Avatar
Christian ASTOR
RougailSaucisse wrote:

PaintDesktop ne semble pas fonctionner comme je le pensais. C'est comme
s'il ne pouvait pas ecrire correctement dans le DC (je sais pas trop
comment expliquer). Il me renvoie une image entierement noire.
Enfin bon tant pis. De toute facon a la base je souhaitais faire un
capture du bureau mais en fait pas uniquement le fond d'ecran, donc avec
quand mm les icones du bureau dans la capture. Mais appremment ce n'est
pas réalisable,



Si, mais c'est relativement complexe (par ReadProcessMemory())
Auparavant PrintWindow() fonctionnait, mais plus vraiment maintenant...
Avatar
RougailSaucisse
Ca y j'ai obtenu le résultat voulu en utilisant un code relativement simple
(qui n'est pas de moi ^^) et faisant simplement appel aux fonctions
FindWindow, FindWindowEx et PrintWindow.

Merci tout de même pour votre aide!
Avatar
greg
"RougailSaucisse" wrote in message
news:go7ghi$2s8$
Ca y j'ai obtenu le résultat voulu en utilisant un code relativement
simple (qui n'est pas de moi ^^) et faisant simplement appel aux fonctions
FindWindow, FindWindowEx et PrintWindow.

Merci tout de même pour votre aide!



Comme dit ci-dessus, PrintWindow ne marche pas comme voulu selon la version
de Windows.
Avatar
RougailSaucisse
"greg" wrote in message news:go7jnq$55g$
"RougailSaucisse" wrote in message
news:go7ghi$2s8$
Ca y j'ai obtenu le résultat voulu en utilisant un code relativement
simple (qui n'est pas de moi ^^) et faisant simplement appel aux
fonctions FindWindow, FindWindowEx et PrintWindow.

Merci tout de même pour votre aide!



Comme dit ci-dessus, PrintWindow ne marche pas comme voulu selon la
version de Windows.



Oui il faudrait que je teste sous d'autres plateformes mais pour le moment
cela fonctionne sous windows server 2008 (pas de questions sur le pourquoi
j'utilise cette version de windows ^^), je ferai des essais sur vista
(devrait assi fonctionner) et XP dès que possible.
Avatar
patrick
RougailSaucisse a écrit :


Oui il faudrait que je teste sous d'autres plateformes mais pour le momen t
cela fonctionne sous windows server 2008 (pas de questions sur le pourquo i
j'utilise cette version de windows ^^), je ferai des essais sur vista
(devrait assi fonctionner) et XP d�s que possible.



Sous XP avec le Service Pack 2 - je crois que c'était pareil avec le
1, ça déconne : ça raffraichit et affiche le fond du bureau en plein
écran et les icones sont affichée sur la destination, mais sans l e fond