Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 2012
-
1 févr. 2006 à 12:12
blade196
Messages postés14Date d'inscriptionmardi 27 avril 2010StatutMembreDernière intervention 2 juillet 2010
-
21 mai 2010 à 21:42
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
blade196
Messages postés14Date d'inscriptionmardi 27 avril 2010StatutMembreDernière intervention 2 juillet 2010 21 mai 2010 à 21:42
oui dsl, je sais que ce n'est normalement pas le meilleur endroit pour poser ma question mais c'est plus en désespoir de cause que je reviens te demander conseil.
j'ai déjà posté un message sur le forum mais qui n'a pas eu grand succès. et ta source étant ce qui se rapproche le plus de ce que je recherche, je me suis dis que tu verrai surement rapidement ce qui cloche dans ma pseudo solution
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201437 21 mai 2010 à 17:22
tu sais ici ce n'est pas un forum, on n'est pas là pour résoudre les problèmes sur tes sources... mais pour parler de ma source :)
pourquoi ne pas poster un message sur le forum ?
blade196
Messages postés14Date d'inscriptionmardi 27 avril 2010StatutMembreDernière intervention 2 juillet 2010 21 mai 2010 à 17:03
bon aller on va tenter une dernière fois de demander conseil. pour me simplifier la vie j'ai decidé de lancer moi meme l'appli histoire d'etre sur d'avoir le bon handle mais le probleme persiste
Dim proc As Process = New Process
proc.StartInfo.FileName = fileName
proc.StartInfo.CreateNoWindow = False
proc.StartInfo.WindowStyle = ProcessWindowStyle.Maximized
proc.Start()
proc.WaitForInputIdle()
Dim f1 As Form = New Form(proc.MainWindowHandle) 'ou proc.handle mais aucun ne marche, f1 vaut nothing
Dim r1 As Rectangle = f1.RectangleToScreen(f1.ClientRectangle)
Dim bmp As Bitmap = New Bitmap(r1.Width, r1.Height, PixelFormat.Format32bppArgb)
Using g As Graphics = Graphics.FromImage(bmp)
g.CopyFromScreen(r1.Left, r1.Top, 0, 0, r1.Size, CopyPixelOperation.SourceCopy)
End Using
blade196
Messages postés14Date d'inscriptionmardi 27 avril 2010StatutMembreDernière intervention 2 juillet 2010 3 mai 2010 à 10:26
merci de ton aide. je pensai pouvoir me débrouiller avec sa mais j'ai un problème pour recuperer ma fenêtre que je ne comprend pas.
f = Form.FromHandle(CaptureScreen.GetWindow(CaptureScreen.FindWindow(vbNullString, "StarUML"), 0))
le méthode getWindow n'est peut être pas la plus adapté mais je n'en ai pas trouvé d'autre.
f reste null et je ne sais pas pourquoi. ma fenêtre StarUML est réduit dans ma barre des taches et je peu faire un closeWindow dessus si je la restaure.
je n'arrive pas non plus a faire de showWindow dessus pour la restaurer
si tu a une idée je suis preneur sinon si tu peu juste m'indiquer une voie vers ou chercher sa devrait me suffire
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201437 30 avril 2010 à 14:49
Oui, il est possible de faire une capture d'une autre fenêtre...
Si mes souvenir sont bon, si tu connais le hWnd de la fenêtre, tu peux faire :
Form f = Form.FromHandle( unhWnd ) as From;
blade196
Messages postés14Date d'inscriptionmardi 27 avril 2010StatutMembreDernière intervention 2 juillet 2010 30 avril 2010 à 14:11
merci pour le bout de code, sa me parait plus simple a utiliser que les api. j'ai juste une petite question: est ce que je peu faire une impression de la zone client d'une autre application?
pour le moment j'essaye de m'inspirer du bout de code qui récupère la zone client du formulaire mais je ne vois pas comment lui dire que par exemple, la fenêtre StarUML est une Form. je ne connais que FindWindow pour recuperer l'appli que je veux pour le moment (j'ai commencé le vb il y a 2 jour...)
papat2006
Messages postés6Date d'inscriptionlundi 20 novembre 2006StatutMembreDernière intervention26 février 2009 16 oct. 2008 à 10:44
Génial, exactement ce que je cherchais !
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 5 juil. 2007 à 21:06
Vince, c'est seulement le code qui est disponible dans le ZIP, pour obtenir un fichier executable tu dois compiler le code avec un compilateur ou avec Visual Studio par exemple:
vincedav31
Messages postés9Date d'inscriptionlundi 24 juillet 2006StatutMembreDernière intervention18 novembre 2008 5 juil. 2007 à 15:13
J'ai un très gros soucis, voilà je débute en programmation, et je ne sais pas comment faire apparaître la fenêtre qui ressemble au screen placé au début du tuto.
Quand je telecharge le fichier .zip il ne contient que des fichiers inconnu par windows !
HELP ME !
bzhhydde
Messages postés1Date d'inscriptionmardi 26 septembre 2006StatutMembreDernière intervention21 mars 2007 21 mars 2007 à 16:51
Je viens d utiliser ton code et jel e trouve parfait, exactement ce que je voulais!!!
Je m explique je suis actuellement sur une application qui créer une carte de membre a partir du nom, prenom et photo, ainsi avec une capture d ecran j arrive a un resultat tel qu il est a l ecran, ce que veut le client!
il peut donc faire ses modification avec le picture box et hop en 1 click il a le resultat!
merci j ai galéré avant de trouver qque chose de simple!
cs_Willi
Messages postés2375Date d'inscriptionjeudi 12 juillet 2001StatutModérateurDernière intervention15 décembre 201822 7 mars 2007 à 15:03
Tu lances WMP ( Windows Media Player ) avec une vidéo assez large ( ou taille x 2 ) pour le test, tu passes ta forme au premier plan devant WMP, et maintenant tu peux déplacer ta forme c'est elle qui reçoit la vidéo dans sa zone cliente au lieu d'avoir un fond noir, le test est encore plus évident si une autre fenêtre masque totalement WMP et vient s'intercaler entre WMP et ta forme C#, c'est la magie des overlays : )
Si dans WMP tu fais Menu -> Outils -> Options -> Performance -> Options avancées -> dans accélération vidéo tu décoches "Utiliser les superpositions" ( superposition c'est la traduction française d'overlay ; ) tu n'auras plus cet effet là.
Conclusion, le logiciel que tu veux capturer utilise les overlays.
J'aurais pu faire une capture d'écran pour te montrer ce que ça donne mais ça aurait été tout noir :D
fdouieb
Messages postés264Date d'inscriptionvendredi 12 décembre 2003StatutMembreDernière intervention12 juin 20133 24 mars 2006 à 12:14
Bonjour,
Très bien le Frameries 2
Petite question: Il existe toujours le problème des vidéos.
Je m'explique, j'ouvre dans le coin de mon écran une petite vidéo. Je fait la capture et a l'emplacement de la vidéo un rectangle noir.
Est-ce qu'une personne a un code qui permet de remplacer ce rectangle noir par une image de la video.
Je vous explique mon but.
Je développe un control parental qui envoie les faits et geste de nos bambins a une adresse mail. Entre autre, une capture d'écran tous les x seconds. Vous comprendrai que le rectangle noir n'est pas exactement ce que je souhaite voir.
imuammer
Messages postés1Date d'inscriptionsamedi 25 février 2006StatutMembreDernière intervention25 février 2006 25 févr. 2006 à 20:27
very good
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 17 févr. 2006 à 19:05
Ah si finalement :
Control.DrawToBitmap WM_PRINT PrintWindow
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201437 1 févr. 2006 à 13:09
oui... je l'ai précisé sur mon Blog...
il manque plus que l'implémentation de PrintWindow :(
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 1 févr. 2006 à 12:12
Ah vi bien les nouvelles fonctions en .NET 2.0. La méthode CopyFromScreen est l'implémentation managée de BitBlt en fait..
21 mai 2010 à 21:42
j'ai déjà posté un message sur le forum mais qui n'a pas eu grand succès. et ta source étant ce qui se rapproche le plus de ce que je recherche, je me suis dis que tu verrai surement rapidement ce qui cloche dans ma pseudo solution
21 mai 2010 à 17:22
pourquoi ne pas poster un message sur le forum ?
21 mai 2010 à 17:03
Dim proc As Process = New Process
proc.StartInfo.FileName = fileName
proc.StartInfo.CreateNoWindow = False
proc.StartInfo.WindowStyle = ProcessWindowStyle.Maximized
proc.Start()
proc.WaitForInputIdle()
Dim f1 As Form = New Form(proc.MainWindowHandle) 'ou proc.handle mais aucun ne marche, f1 vaut nothing
Dim r1 As Rectangle = f1.RectangleToScreen(f1.ClientRectangle)
Dim bmp As Bitmap = New Bitmap(r1.Width, r1.Height, PixelFormat.Format32bppArgb)
Using g As Graphics = Graphics.FromImage(bmp)
g.CopyFromScreen(r1.Left, r1.Top, 0, 0, r1.Size, CopyPixelOperation.SourceCopy)
End Using
bmp.Save(pictureName)
proc.CloseMainWindow()
proc.Close()
3 mai 2010 à 10:26
f = Form.FromHandle(CaptureScreen.GetWindow(CaptureScreen.FindWindow(vbNullString, "StarUML"), 0))
le méthode getWindow n'est peut être pas la plus adapté mais je n'en ai pas trouvé d'autre.
f reste null et je ne sais pas pourquoi. ma fenêtre StarUML est réduit dans ma barre des taches et je peu faire un closeWindow dessus si je la restaure.
je n'arrive pas non plus a faire de showWindow dessus pour la restaurer
si tu a une idée je suis preneur sinon si tu peu juste m'indiquer une voie vers ou chercher sa devrait me suffire
30 avril 2010 à 14:49
Si mes souvenir sont bon, si tu connais le hWnd de la fenêtre, tu peux faire :
Form f = Form.FromHandle( unhWnd ) as From;
30 avril 2010 à 14:11
pour le moment j'essaye de m'inspirer du bout de code qui récupère la zone client du formulaire mais je ne vois pas comment lui dire que par exemple, la fenêtre StarUML est une Form. je ne connais que FindWindow pour recuperer l'appli que je veux pour le moment (j'ai commencé le vb il y a 2 jour...)
16 oct. 2008 à 10:44
5 juil. 2007 à 21:06
http://www.microsoft.com/france/msdn/vstudio/express/vcsharp/telechargez.mspx
5 juil. 2007 à 15:13
Quand je telecharge le fichier .zip il ne contient que des fichiers inconnu par windows !
HELP ME !
21 mars 2007 à 16:51
Je m explique je suis actuellement sur une application qui créer une carte de membre a partir du nom, prenom et photo, ainsi avec une capture d ecran j arrive a un resultat tel qu il est a l ecran, ce que veut le client!
il peut donc faire ses modification avec le picture box et hop en 1 click il a le resultat!
merci j ai galéré avant de trouver qque chose de simple!
7 mars 2007 à 15:03
http://www.pythonfrance.com/code.aspx?ID=41773
25 mars 2006 à 03:25
Petit test amusant, créer une forme la plus simple possible, et dans la constructeur tu mets :
this.BackColor = Color.FromArgb( 16, 0, 16 ); // Overlay DirectShow ( noir )
Tu lances WMP ( Windows Media Player ) avec une vidéo assez large ( ou taille x 2 ) pour le test, tu passes ta forme au premier plan devant WMP, et maintenant tu peux déplacer ta forme c'est elle qui reçoit la vidéo dans sa zone cliente au lieu d'avoir un fond noir, le test est encore plus évident si une autre fenêtre masque totalement WMP et vient s'intercaler entre WMP et ta forme C#, c'est la magie des overlays : )
Si dans WMP tu fais Menu -> Outils -> Options -> Performance -> Options avancées -> dans accélération vidéo tu décoches "Utiliser les superpositions" ( superposition c'est la traduction française d'overlay ; ) tu n'auras plus cet effet là.
Conclusion, le logiciel que tu veux capturer utilise les overlays.
J'aurais pu faire une capture d'écran pour te montrer ce que ça donne mais ça aurait été tout noir :D
24 mars 2006 à 12:14
Très bien le Frameries 2
Petite question: Il existe toujours le problème des vidéos.
Je m'explique, j'ouvre dans le coin de mon écran une petite vidéo. Je fait la capture et a l'emplacement de la vidéo un rectangle noir.
Est-ce qu'une personne a un code qui permet de remplacer ce rectangle noir par une image de la video.
Je vous explique mon but.
Je développe un control parental qui envoie les faits et geste de nos bambins a une adresse mail. Entre autre, une capture d'écran tous les x seconds. Vous comprendrai que le rectangle noir n'est pas exactement ce que je souhaite voir.
25 févr. 2006 à 20:27
17 févr. 2006 à 19:05
Control.DrawToBitmap WM_PRINT PrintWindow
1 févr. 2006 à 13:09
il manque plus que l'implémentation de PrintWindow :(
1 févr. 2006 à 12:12