Bonjour!
Aujourd'hui je vais vous apprendre a faire votre propre Gyazo, c'est-à-dire un logiciel afin de prendre des screenshots assez rapidement, j'suis assez fier du résultat, je vous en fait donc partager!
I - Les prérequis
II - Commençons!
Bon, tout d'abord nous allons créer un nouveau projet, appelons le PrintScreen
Ensuite, nous allons parametré un peu la form, vous pouvez mettre ces paramètres, surtout ne pas négliger
Form.BorderStyle : None
Opacity: 1%
Size: 1920;1080 Même si vous n'avez pas cette résolution, mettez la quand même, le logiciel adaptera
Ensuite, nous allons ajouter ce code dans notre Form1_Load, double cliquez sur la form, et ajoutez:
Ici, nous avons fait que notre form est toujours au top, c'est nécessaire, ensuite nous avons fait que SI le dossier Screen n'existe pas, alors on le crée, c'est obligatoire.
Bon, on a le début, c'est plutot pas mal mais inutile pour le moment, sauvegardez, on sait jamais
Maintenant, on va ajouter un evenement, Si on appuie sur la touche Echap, alors le programme se ferme, pour cela, faite comme moi:
Déjà, cliquez sur Form1_load, puis:
Puis, nous allons rajouter ce code dans la partie que nous venons de générer:
Ce qui signifie, si on appuie sur Echap, alors le programme se ferme.
Bon, on a un bon début là, surtout sauvegardez
Maintenant, on va ajouter une nouvelle form.
Pour ceux qui ne savent pas, faites comme moi
(Vous, ce sera Form2)
Maintenant, on va re-ajouter un evenement, même principe sauf que là, c'est MouseDown.
Dans cette evenement, on va ajouter
On va ouvrir la seconde form, qui servira a prendre le screenshot, et dire que la form s'ouvrira là ou la souris est.
Bon, maintenant la partie importante, ce qui va prendre le screen, et définir la zone
Ajoutez un evenement MouseUp
Bon, on a finit avec la première Form, maintenant passant a la form2
Mettez les mêmes paramètres, sauf Opacity c'est a dire:
Form.BorderStyle : None
Opacity: 80%
Size: 1920;1080
Maintenant, on va mettre la couleur de la form en ControlText (Choix personnel)
Ensuite, on va ajouter Deux Label, qui serviront a savoir la hauteur, et la largeur, qui sera éditer en directe
Choisissez la couleur, la police, ce que vous voulez!
Bon, maintenant on retourne coté code
Double clique sur Form2, et on ajoute un evenement, SizeChanged
Et on ajoute ceci dedans:
Bon maintenant, passons coté serveur!
Voici le code PHP, je précise il ne vient pas de moi, c'est une vrai passoire, mais si c'est pour un usage personnel, comme moi, c'est largement suffisant
Voila, il ne reste que a éditer le code
Si vous avez des questions, je suis là!
Aujourd'hui je vais vous apprendre a faire votre propre Gyazo, c'est-à-dire un logiciel afin de prendre des screenshots assez rapidement, j'suis assez fier du résultat, je vous en fait donc partager!
I - Les prérequis
- Un hébergement Web (000webhost suffit, pas besoin de payer)
- Visual Studio (Réaliser sous Microsoft Visual Basic 2010)
- Un cerveau
II - Commençons!
Bon, tout d'abord nous allons créer un nouveau projet, appelons le PrintScreen
Ensuite, nous allons parametré un peu la form, vous pouvez mettre ces paramètres, surtout ne pas négliger
Form.BorderStyle : None
Opacity: 1%
Size: 1920;1080 Même si vous n'avez pas cette résolution, mettez la quand même, le logiciel adaptera
Ensuite, nous allons ajouter ce code dans notre Form1_Load, double cliquez sur la form, et ajoutez:
Code:
Me.TopMost = True
If (Not System.IO.Directory.Exists("C:\Users\Public\screen")) Then
System.IO.Directory.CreateDirectory("C:\Users\Public\screen")
End If
Ici, nous avons fait que notre form est toujours au top, c'est nécessaire, ensuite nous avons fait que SI le dossier Screen n'existe pas, alors on le crée, c'est obligatoire.
Bon, on a le début, c'est plutot pas mal mais inutile pour le moment, sauvegardez, on sait jamais
Maintenant, on va ajouter un evenement, Si on appuie sur la touche Echap, alors le programme se ferme, pour cela, faite comme moi:
Déjà, cliquez sur Form1_load, puis:

Puis, nous allons rajouter ce code dans la partie que nous venons de générer:
Code:
If e.KeyCode = Keys.Escape Then
Me.Close()
End If
Ce qui signifie, si on appuie sur Echap, alors le programme se ferme.
Bon, on a un bon début là, surtout sauvegardez
Maintenant, on va ajouter une nouvelle form.
Pour ceux qui ne savent pas, faites comme moi
(Vous, ce sera Form2)

Maintenant, on va re-ajouter un evenement, même principe sauf que là, c'est MouseDown.
Dans cette evenement, on va ajouter
Code:
Form2.Show()
Form2.Location = Cursor.Position
Form2.Location = Form2.Location 'Non obligatoire, mais on sait jamais :)
On va ouvrir la seconde form, qui servira a prendre le screenshot, et dire que la form s'ouvrira là ou la souris est.
Bon, maintenant la partie importante, ce qui va prendre le screen, et définir la zone
Ajoutez un evenement MouseUp
Code:
Form2.Hide()
Me.Hide()
Dim bounds As Form2
Dim screenshot As System.Drawing.Bitmap
Dim graph As Graphics
bounds = Form2
screenshot = New System.Drawing.Bitmap(bounds.Width, bounds.Height, System.Drawing.Imaging.PixelFormat.Format32bppRgb)
graph = Graphics.FromImage(screenshot)
graph.CopyFromScreen(Form2.Bounds.X, Form2.Bounds.Y, 0, 0, bounds.Size, CopyPixelOperation.SourceCopy)
Form2.BackgroundImage = screenshot
' Ici on va générer un String, qui sera le nom du fichier
Dim s As String = "abcdefghijklmnopqrstuvwxyz1234567890" ' Les chiffres et lettres qui seront utiliser
Dim r As New Random
Dim sb As New StringBuilder
For i As Integer = 1 To 12 'Nombre de caractères, remplacez 12 par ce que vous voulez
Dim idx As Integer = r.Next(0, 35)
sb.Append(s.Substring(idx, 1))
Next
Dim bmp As Bitmap
Try
If Form2.Label1.Text < 10 And Form2.Label4.Text < 10 Then 'Vérification si l'image est plus grande que 10x10
Else
'On va enregistrer le fichier ici: C:\Users\Public\Screen\StringGenere.png
bmp = Form2.BackgroundImage
bmp.Save("C:\Users\Public\screen\" & sb.ToString & ".png")
'On upload le fichier, Je vous donnerai le php après
My.Computer.Network.UploadFile("C:\Users\Public\screen\" & sb.ToString & ".png", "http://votresite/upload.php") 'Remplacee, je donnerai le fichier php plus tard
'On se rend sur notre page, là ou le screen est upload et on copie le lien automatiquement dans le presse papier
Process.Start("http://votresite/screenshot/" & sb.ToString & ".png")
My.Computer.Clipboard.SetText("http://votresite/screenshot/" & sb.ToString & ".png")
'Suppression du fichier une fois l'upload fait
If System.IO.File.Exists("C:\Users\Public\screen\" & sb.ToString & ".png") = True Then
System.IO.File.Delete("C:\Users\Public\screen\" & sb.ToString & ".png")
End If
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
Bon, on a finit avec la première Form, maintenant passant a la form2
Mettez les mêmes paramètres, sauf Opacity c'est a dire:
Form.BorderStyle : None
Opacity: 80%
Size: 1920;1080
Maintenant, on va mettre la couleur de la form en ControlText (Choix personnel)

Ensuite, on va ajouter Deux Label, qui serviront a savoir la hauteur, et la largeur, qui sera éditer en directe

Choisissez la couleur, la police, ce que vous voulez!
Bon, maintenant on retourne coté code
Double clique sur Form2, et on ajoute un evenement, SizeChanged
Et on ajoute ceci dedans:
Code:
Label1.Text = Me.Size.Height
Label2.Text = Me.Size.Width
Bon maintenant, passons coté serveur!
Voici le code PHP, je précise il ne vient pas de moi, c'est une vrai passoire, mais si c'est pour un usage personnel, comme moi, c'est largement suffisant
PHP:
<?php
if (!empty($_FILES["file"])){
move_uploaded_file($_FILES["file"]["tmp_name"],
"screenshot/" . $_FILES["file"]["name"]); #Screenshot = Votre repertoire, Pensez BIEN A METTRE LES PERMISSIONS D'ECRITURE, C'EST A DIRE 777
}
?>
Voila, il ne reste que a éditer le code
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
par votre site a vous, et de creer un dossier screenshot et de mettre les permissions d'écriture, 777
Si vous avez des questions, je suis là!
Dernière édition: