Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Snapshot [ Divers / Trucs & Astuces ] (toosdu87)

vendredi 16 mars 2007 à 10:37:33 | Snapshot

toosdu87

Bonjour à tous,
Voilà je travail sur VB  NET 2005
j'aimerai pouvoir capturer une zone de l'écran sous forme image et enregistrer ce fichier.
J'ai essayer une source sur vb france permettant le snapshot mais elle ne fonctionne pas.

Quelqu'un connaitrai une fonction permettant ceci?

Merci d'avance

vendredi 16 mars 2007 à 11:14:48 | Re : Snapshot

CCJ

Membre Club
Réponse acceptée !

Salut
http://www.vbfrance.com/codes/FAIRE-APERCU-APPLIS-FICHIERS-OUVERTS-DANS-FORM-AVEC_41785.aspx

C'est du vb 6 certe...

Mais rien ne tempeche de le retranscrire en .net et de le poster par la suite afin denrichir le forum  

Si l'informatique été de l'alcool il y aurait des genies partout


vendredi 16 mars 2007 à 11:22:46 | Re : Snapshot

hvb

Membre Club
Réponse acceptée !
ccj : Une telle source existe déja
toosdu87 : regarde cette source : http://www.vbfrance.com/codes/SCREENSHOT-SNAPSHOT-SANS-CLIPBOARD-NI-SENDKEYS_30267.aspx
Il y a une classe vb2003 et une classe vb2005.

L'exemple (le zip) est en vb2003 mais il est compatible vb2005.
J'ai fait une version beaucoup plus importante en vb2005 mais c'est un des projets que je presente en fin d'année pour mon exam, j'attend donc de l'avoir passer pour le mettre à disposition ici.
Néanmoins, ce qui est déja present devrait repondre amplement à ta question.

Have fun
Hvb aka Batto
bato.ltd at gmail.com

vendredi 16 mars 2007 à 11:29:53 | Re : Snapshot

toosdu87

Merci pour vos sources je vais jeter un oeil.
cependant la source de hvb je l'ai tester est elle ne fonctionne pas.
Enfin je vais insister
Merci les gars

vendredi 16 mars 2007 à 11:36:27 | Re : Snapshot

hvb

Membre Club
en quoi elle ne fonctionne pas? soit plus précis, car avancer sans rien derriere qu'elle ne fonctionne pas alors que plusieurs personne de mon école l'utilise sans problème, et que plusieurs personnes d'ici l'ont testé n'est pas très correct.


Hvb aka Batto
bato.ltd at gmail.com

vendredi 16 mars 2007 à 11:50:58 | Re : Snapshot

toosdu87

C'est pas ce que je veux dire, cependant lorsque je l'ai lancé et tester rien ne s'est passé.
Comme je t'ai dis au dessus je vais me mettre bien dedans pour comprendre comment ca tourne

vendredi 16 mars 2007 à 11:56:03 | Re : Snapshot

toosdu87

Pour être plus précis j'ai 6 avertissements au départ du type:
accès à un membre partagé.......
il doit me manquer quelque chose pour qu'il tourne bien.

Ta eu ce souci?

vendredi 16 mars 2007 à 12:00:18 | Re : Snapshot

hvb

Membre Club
oui je prefere lol...
Les fonctions de ma classe renvoient un objet de type bitmap, il suffit donc de les appeler et de stocker le resultat dans un fichier bitmap, et c'est ensuite à toi de faire l'enregistrement de fichier.
Si tu veux voir un exemple, lance l'exemple que j'ai joint avec la source, qui, une fois converti pour vb2005, fonctionne sans aucuns soucis (je viens de retester car tu m'as fait douter sur la compatibilité 2003/2005)



Hvb aka Batto
bato.ltd at gmail.com

vendredi 16 mars 2007 à 12:04:52 | Re : Snapshot

hvb

Membre Club
post croisé desolé.
Pour les avertissements, je viens de voir ça, alors dans l'ordre : 
ligne 362 : enleve le "datez" avant now.tostring
ligne 368,371 et 373 : remplace touts les "curscreen" par ScreenShoter

Hvb aka Batto
bato.ltd at gmail.com

vendredi 16 mars 2007 à 12:08:08 | Re : Snapshot

hvb

Membre Club
et il reste 2 avertissements dans la classe,  que j'ai modifié pour y paliere (je l'avais fait en vb2005 mais pas en vb2003) :


Public

Class ScreenShoter

PrivateDeclareFunction BitBlt Lib"GDI32" (ByVal hDestDC As IntPtr, ByVal X AsInteger, ByVal Y AsInteger, ByVal nWidth AsInteger, ByVal nHeight AsInteger, ByVal hSrcDC As IntPtr, ByVal SrcX AsInteger, ByVal SrcY AsInteger, ByVal Rop AsInteger) AsInteger

PrivateDeclareFunction GetForegroundWindow Lib"user32" () As IntPtr

PrivateDeclareFunction GetWindowRect Lib"user32.dll" (ByVal hWnd As IntPtr, ByRef lpRect As Rectangle) AsInteger

PrivateDeclareFunction GetDesktopWindow Lib"user32" () As IntPtr

'Capture tout l'écran

PublicSharedFunction ShotScreen() As Bitmap

Try

Dim DesktopRect As Rectangle = Screen.GetBounds(New Point(0, 0)) 'obtient la taille du bureau sous forme de rectangle dans DesktopRect

Return ShotScreenPart(DesktopRect.Width, DesktopRect.Height) 'appele la fonction ShotScreenPart avec les dimensions du bureau.

Catch ex As Exception

MsgBox(ex.ToString)

ReturnNew Bitmap(1, 1)

EndTry

EndFunction

'Capture la fenetre active

PublicSharedFunction ShotActiveWin() As Bitmap

Dim WinRect As Rectangle

Try

If GetWindowRect(GetForegroundWindow, WinRect) Then'obtient la taille et la position de la fenetre active sous forme de rectangle (WinRect)

Return ShotScreenPart(WinRect.Size.Width - WinRect.Left, WinRect.Size.Height - WinRect.Top, WinRect.Left, WinRect.Top) 'appele la fonction ShotLoc avec les dimensions et la position de la fenetre.

Else

ReturnNew Bitmap(1, 1)

EndIf

Catch ex As Exception

MsgBox(ex.ToString)

ReturnNew Bitmap(1, 1)

EndTry

EndFunction

'Capture une partie de l'ecran, defini par les deux variable width et height (dimensions du rectangle), et des valeur optionels X et Y (base du rectangle)

PublicSharedFunction ShotScreenPart(ByVal nwidth AsInteger, ByVal nheight AsInteger, OptionalByVal x AsInteger = 0, OptionalByVal y AsInteger = 0) As Bitmap

Dim resultBmp As Bitmap = New Bitmap(nwidth, nheight) 'crée l'objet bitmap cible

Dim SrcGraph As Graphics = Graphics.FromHwnd(GetDesktopWindow) 'crée l'objet "graphics" SelGraph a partir du handdle du bureau

Dim BmpGraph As Graphics = Graphics.FromImage(resultBmp) 'crée un objet graphics à partir du bitmap

Dim bmpDC As IntPtr = BmpGraph.GetHdc() 'obtient le device context du bitmap

Dim hDC As IntPtr = SrcGraph.GetHdc() 'obtient le device context du bureau

BitBlt(bmpDC, 0, 0, nwidth, nheight, hDC, x, y, &HCC0020)

'"bit-block transfer" : copie chaque bits affichés dans le device context hDC dans le device context du bitmap

SrcGraph.ReleaseHdc(hDC)

'relache le device context du bureau

BmpGraph.ReleaseHdc(bmpDC)

'relache le device context du bitmap

SrcGraph.Dispose()

BmpGraph.Dispose()

'libere toutes les ressources crées par l'objet (useless?)

Return resultBmp

EndFunction

End

Class

Hvb aka Batto
bato.ltd at gmail.com


1 2

Cette discussion est classé dans : vb, snapshot


Répondre à ce message

Sujets en rapport avec ce message

projet de fin d'etudes en vb [ par pussycatmiss ] bonjour;je cherche des idées ou des exemplaires de projet de fin d'etudes en vb? pouvez vous m'aidé Ouvir un fichier dans VB 6.0 [ par lebasketeur ] Salut tout le monde ...J'ai programmé un bouton pour parcourir et selectionner le fichier avec l'outil CommonDialog (le chemein est stocké dans une ba VB.Net Renommer Fichiers [ par MagDix ] Salut Je veux me créer un petit prog pour renommer plus de 700 fichiersJe veux ajouter le texte (Photo) pour chauqe fichierExempleJ'ai des fichier q pb insertion VB acces avec textbox [ par lil_adriano ] Slt, j'ai un petit souci avec mon code enregistrement pour la base de donnée.avec l'insertin direct c'est a dire MaCommande.CommandText ="INSERT INTO problème de sauvegarde avec excel [ par kamilia911 ] bonjour tout le monde,j'ai connecté vb a excel , j'ai créé une interface pr ajouter é suprimer . au niveau de vb quand j'ajoute ça se voi é quand je s Vb.Net Cherche les bouton Dir - Drive et File de VB6 [ par MagDix ] Bonjour...Je cherche les boutons Dir, File et Drive de VB6 en .NetPour avoir la liste des répertoire, la liste des fichiers du répertoire et voir les vb.6 avec Excel [ par ymas00 ] SVP, je cherche comment faire pour récuperer les données à partir d'un fichier Excel et les mettre dans une DataGrid ou DataReader, bien sur avec vb.6 Vb.Net Changer le curseur de ma souris ?? [ par MagDix ] Salut Je cherche un moyen pour changer le curseur de ma sourisJe croyais que c'était bête à faire Form1.Cursor.... mais je ne trouve pas les image Liste qui traduit les expression entre vb6 et vb.net [ par minifranki ] Bonjour,Je suis taner de passer mes journee a essayer dapprendre vb net et s'est toujours sans succes, enfin presque. Je trouve tout plein de tuto sur


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,203 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.