[HowTo] Visual Basic Screenshotmaker erstellen

09/03/2011 13:02 mrapc#1
Hallo Leute,

ich zeige euch hier einmal Mitel und wege einen Screenshotmaker zu erstellen.
Ich werde nicht viel erklären alle beschreibungen lieben bei den Codes bei ;)

Was wir brauchen:

1x Timer (Timer1)
1x SaveFIleDIalog (SaveFileDialog1)
3x Button (Button1, Button2, Button3)
1x Panel (Panel1)
1x Picturebox (Picturebox1)

Hier mal ein Bild:
[Only registered and activated users can see links. Click Here To Register...]

OK

Schritt1:
Als erstes Brinden wir das Panel auf die Richtige größe
Dafür klicken wir es an und machen bei den eigenschaften auf
AutoScrollMinSize
Width = 1200
Height = 900
oder mehr

Schritt2:
Zieht die Picturebox1 in das Panel1 und macht bei der Picturebox1 bei den Eigenschaften Dock auf Fill.

Schritt3:
Jetzt fangen wir mit dem ersten Button Foto aufnehmen an!
Der Code ist
PHP Code:
Me.WindowState FormWindowState.Minimized  '//Damit das Fenster nicht zu sehen ist//
Timer1.Start() '
//Screenshot maker starten// 
OK nun Zum Button2 Bild Speichern Da fügen wir ein:
PHP Code:
        If SaveFileDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then '//Speicherfenster Zeigen //
            Dim file As System.IO.FileStream '
//Deklination des zu entstehenden Files //
            
file System.IO.File.Create(SaveFileDialog1.FileName'//Pfad der neuen Datei //
            file.Close() '
//Damit nicht das Fenster kommt "Wird von einem anderen Programm verwendet //

            
PictureBox1.BackgroundImage.Save(SaveFileDialog1.FileName'//Das Bild speichern //
        End If 

Schritt4:

Button3 Beenden
PHP Code:
 Me.close 

Schritt5:

Timer1 als erstes bei den EInstellungen das Interval auf 1000 stellen!
PHP Code:
        Dim img As New Bitmap(Screen.PrimaryScreen.Bounds.WidthScreen.PrimaryScreen.Bounds.Height)
        
'//Deklination von dem neu entstehendem Bild //

        Dim gr As Graphics = Graphics.FromImage(img)
        '
//ALs Grafik //
        
gr.CopyFromScreen(New Point(00), New Point(00), New Size(img.Widthimg.Height))
        
'//Große des Bildes und der Raum der Aufzeichnung //

        PictureBox1.BackgroundImage = img
        '
//Bringt das Bild auf die Picturebox1 //

        
Timer1.Stop() '// Damits kein Video wird :D //
        Me.WindowState = FormWindowState.Normal '
//Läßt das Fenster wieder auftauchen // 
Ok
Schritt6:
Ihr geht zurück in den Form Designer und klcikt mit einem klick den SaveFileDialog1 an.
Jetzt bei den Eigenschaften im Filder das einfügen
Code:
JPG(*.jpg)|.jpg|PNG(*.png)|*.png
Ich hoffe es hat euch ein klein Wenig geholfen
Viel Spaß

MrAPC
09/03/2011 16:05 Che#2
Super Tutorial! Kleine Verbesserungsvorschläge von mir:
- Pack das Screenshotten und das Speichern auf einen Button
- Lass den "Beenden" Button weg, der ist nutzlos, da man auch das tolle |X| verwenden kann
- Pack die Picturebox in ne 2. Form die du anzeigst, nachdem ein Screen gemacht wurde
Für diese 2. Form sollte folgendes gelten:
*- Mit "Esc" schließbar
*- Wenn sie den Fokus verliert soll sie sich Schließen

Ansonsten (vom Source her) sehr gut...

Achja: Es heißt "Deklaration" und nicht "Deklination" änder das bitte, sowas kommt unproffesionell rüber und bei so nem tollen Tut ist das echt schade :awesome:
09/03/2011 16:41 Kraizy​#3
Quote:
Originally Posted by 〤Che〤 View Post
sowas kommt unproffesionell rüber
Dann bitte aber auch die Controls gescheit benennen..z.B. btnSave, btnExit usw. aber nicht Button1,2...
09/03/2011 17:48 mrapc#4
Ja aber ich mags so lieber :D
Das mit den Form2 teilen und so sind ja alles dinge die man selber machen kann ;)
Ich gebe ja eigendlich nur ein paar Codes
09/03/2011 19:44 Kraizy​#5
Quote:
Originally Posted by mrapc View Post
Ja aber ich mags so lieber :D
Dann wirst du aber später Probleme haben bzw. viel Zeit verwschwenden, wenn du an einem größeren Projekt arbeitestet und hunderte Buttons hast. Da musste dann jedesmal zurück zu deiner Form und schauen welche Nummer der Button mit der Funktion xy hat..
09/03/2011 20:40 GotDamned#6
Ich stimme meinen Vorredner zu.
Wer Sachen nicht von Anfang an gescheit benennt kommt nicht sehr weit.
Sobald du anfängst ein wenig mehr zu proggen wirste über deine Namen stolpern.

Außerdem finde ich, solltest du erklären, was die ganzen Code-Schnipsel machen, bzw den Code an sich erklären.
Was nützt einem Anfänger dass, wenn er nur C&P macht?
09/04/2011 00:39 Che#7
Stimmt stimmt, das mit den Buttons ist mir garnicht aufgefallen, aber wenn man es mal betrachtet ist das schon ein großes Manko aber bei dem beispiel nicht so gravierend, wie eine falsche wortwahl
09/04/2011 14:11 mrapc#8
Mhh ja ok also bei Großen sachen wie dem Angelbot den ich mal Programmiert habe habe ich die Checkboxen schon in O_Zander und in W_Znder umbenannt aber hier bei 3 Buttons ist das MIR noch recht egal...