C# capture (image) un peu spécial
Résolu
christboy
Messages postés
157
Date d'inscription
Statut
Membre
Dernière intervention
-
christboy Messages postés 157 Date d'inscription Statut Membre Dernière intervention -
christboy Messages postés 157 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Alors voici mon problème j'ouvre un processus, jusque la ça va.
Ensuite il me faut un screenshoot de la fenêtre de ce processus et uniquement de cette fenêtre (car ensuite je fait des recherche de pixel dessus etc...). Un screen total de l'écran n'est pas envisageable car le processus que j'ouvre peut 'être plusieurs fois et donc comme notre amis windows ouvre les fenêtre en cascade (et donc décaler) je ne peux pas screen l'écran.
voici un bout de code:
J'ai faillit oublier, je n'est pas d'acces au processus appelé, il n'est pas de moi
Alors voici mon problème j'ouvre un processus, jusque la ça va.
Ensuite il me faut un screenshoot de la fenêtre de ce processus et uniquement de cette fenêtre (car ensuite je fait des recherche de pixel dessus etc...). Un screen total de l'écran n'est pas envisageable car le processus que j'ouvre peut 'être plusieurs fois et donc comme notre amis windows ouvre les fenêtre en cascade (et donc décaler) je ne peux pas screen l'écran.
voici un bout de code:
try { proc = Process.Start(new ProcessStartInfo(@"C:\Program Files\.....exe")); } catch (Exception execp2) { MessageBox.Show(execp2.Message); return; } Bitmap bmp; int timer = 0; do { bmp = ?????? //<---- ici il faudrait reussir a screen uniquement le processus proc timer++; System.Threading.Thread.Sleep(1000); if (timer == 10) break; } while ((bmp.GetPixel(213, 353) != Color.FromArgb(250, 243, 235)) //les coordonnées && (bmp.GetPixel(213, 365) != Color.FromArgb(250, 243, 235)) //sont fictivent et && (bmp.GetPixel(251, 353) != Color.FromArgb(250, 243, 235)) //présentent pour && (bmp.GetPixel(351, 356) != Color.FromArgb(250, 243, 235))); //la compréhension
J'ai faillit oublier, je n'est pas d'acces au processus appelé, il n'est pas de moi
A voir également:
- C# capture (image) un peu spécial
- Capture d'écran whatsapp - Accueil - Messagerie instantanée
- Caractere special - Guide
- Capture d'écran samsung - Guide
- Faststone capture - Télécharger - Capture d'écran
- Capture d'écran mac - Guide
4 réponses
Bonsoir,
Le principe est le suivant.
Tu récupère le Handle de la fenêtre ouverte par le process en utilisant le membre process.handle.
Le handle de la fenêtre s'obtient par des appels d'API windows. Tu trouveras le code à l'adresse suivante:
https://support.microsoft.com/en-us/help/242308
C'est du VB mais ce ne sont que des appels d'API donc facile à convertir en C#.
Tu mets le focus sur la fenêtre et tu affectes l'objet bitmap correspondant.
J'espère que ça t'aidera.
Hervé
Le principe est le suivant.
Tu récupère le Handle de la fenêtre ouverte par le process en utilisant le membre process.handle.
Le handle de la fenêtre s'obtient par des appels d'API windows. Tu trouveras le code à l'adresse suivante:
https://support.microsoft.com/en-us/help/242308
C'est du VB mais ce ne sont que des appels d'API donc facile à convertir en C#.
Tu mets le focus sur la fenêtre et tu affectes l'objet bitmap correspondant.
J'espère que ça t'aidera.
Hervé