RougailSaucisse
Messages postés118Date d'inscriptionlundi 16 février 2009StatutMembreDernière intervention 6 décembre 2010
-
25 févr. 2009 à 10:16
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 2012
-
27 févr. 2009 à 10:58
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 c'est pourquoi je pense que ce forum est plus adapté a mon probleme.
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?
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 26 févr. 2009 à 12:02
Salut, on t'aurait tout aussi bien répondu sur CSharpFR, si la réponse te convient je déplacerais le thread.
[ SuppressUnmanagedCodeSecurity ]
internal static class Win32
{
[ StructLayout( LayoutKind.Sequential ) ]
private struct RECT
{
public int left;
public int top;
public int right;
public int bottom;
}
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 25 févr. 2009 à 12:43
C'est-à-dire que le bureau est considéré comme la fenêtre de base sur lequel sont peintes toutes les autres fenêtres; par conséquent, si une application a une fenêtre active, le "background" n'existe tout simplement pas puisque cette fenêtre peint par-dessus.
Sous réserve d'erreur de ma part...
De toutes manières, pourquoi veux-tu faire cette capture?
RougailSaucisse
Messages postés118Date d'inscriptionlundi 16 février 2009StatutMembreDernière intervention 6 décembre 20101 25 févr. 2009 à 13:35
je souhaite 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. je sais pas si c'est clair mais bon.
RougailSaucisse
Messages postés118Date d'inscriptionlundi 16 février 2009StatutMembreDernière intervention 6 décembre 20101 27 févr. 2009 à 02:41
Bonjour et merci beaucoup.
Cette solution me convient parfaitement, j'ai exactement le résultat attendu. Merci pour ces précieuses infos.
Je commencais a croire que cela n'etait pas possible, apres avoir testé les fonctions GetDesktopWindow(), Paintdesktop() j'avais en retour ou une image de tout l'ecran avec les fenetres ou une image toute noir en utilisant Paintdesktop().
quoiqu'il en soit un grand merci et j'espere que cette source pourra profiter a d'autres personnes eventuellement.
RougailSaucisse
Vous n’avez pas trouvé la réponse que vous recherchez ?