bonjour les gens,
la question doit paraitre assez simple à résoudre et pourtant je me bat depuis des semaine pour créer cette petite lib. on trouve quelques solution qui s'en rapproche en vb6 et en c# mais rien en vb net...
voici le principe exacte : je veux faire une capture d'écran de la zone client d'une appli. pour simplifier la chose j'ai decidé de lancer moi meme l'appli histoire de pouvoir récupérer plus facilement son handle mais sa n'a guerre de succès.
__________________________________
Dim proc As Process = New Process
proc.StartInfo.FileName = "c:\koko.ext"
proc.StartInfo.CreateNoWindow = False
proc.StartInfo.WindowStyle = ProcessWindowStyle.Maximized
proc.Start()
'bout de code approximatif qui permet de boucler jusqu'a ce
'que la fenetre soit lancé. je teste si le nom de la fenêtre
'est vide ou pas.
while proc.winName = ""
end While
Dim f1 As Form = Form.FromHandle(proc.Handle) ' la sa plante
Dim r1 As Rectangle = f1.Bounds
'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("D:\resutestimg.bmp")
__________________________________________________
_
voila j'esseye de creer une form a partir du handle du pocess mais il n'apprecie pas et je ne sais pas comment recuperer le handle de la fenetre du proc si ce n'est pas le meme.
j'ai essayé d'utiliser les api (findWindow/getWindow, ect) histoire de recuperer le handle d'une appli le nom de la fenetre mais plusieur peuvent avoir le meme nom et surtout, je ne devait toujorus pas recuperer le bon handle...
un peu blazé j'ai aussi essayé simplement un imprime ecran de la fenetre. j'ai vu qu'il fallait juste simuler l'appui sur les boutton (%PRTSC) mais c'est du vb6 et la version vb net qui passe par my.computer.jeNeSaitPlusLeReste sort en erreur comme quoi l'appli n'a pas acces aux controle windows (desl tout cette partit la est approximative, je n'ai pas le code avec moi). c'est surement un probleme de droit etant donnée que je ne travail pas en admin mais je ne peu pas utiliser cette commande si n'importe qui ne peu pas la lancer...
bref si qq1 a la moindre petite piste, n'importe quoi, je suis preneur.
merci d'avance