Da ich oft einen Screenshot brauche, habe ich eine "Screenshot Maker"
in net.framework 4.0 geschrieben. Das Programm unterstüzt die Grafikformate
png, bmp, jpg, gif, tif, exif, emf und wmf. Falls man dieses Programm des
öfteren verwenden möchte, kann man mit einer CheckBox ganz einfach
eine Verknüpfung auf der Schnellstartleiste erstellen oder entfernen.
Spoiler anzeigen
Projektmappe:
Screenshot Maker by Derfuhr.7z
Für Kritik an meinem Stil wäre ich Dankbar!!
edit: Unter Win 7 muss der Pfad zur Schnellstartleiste geändert werden
in net.framework 4.0 geschrieben. Das Programm unterstüzt die Grafikformate
png, bmp, jpg, gif, tif, exif, emf und wmf. Falls man dieses Programm des
öfteren verwenden möchte, kann man mit einer CheckBox ganz einfach
eine Verknüpfung auf der Schnellstartleiste erstellen oder entfernen.
VB.NET-Quellcode
- Imports Shell32
- Public Class Form1
- Private Declare Function SHChangeNotify Lib "Shell32.dll" (ByVal wEventID As Int32, ByVal uFlags As Int32, ByVal dwItem1 As Int32, ByVal dwItem2 As Int32) As Int32
- Dim Desktopimage As Bitmap
- Dim Snap As Graphics
- Dim Pfad As String
- Dim Nummer As Integer
- Dim ImageFormat As System.Drawing.Imaging.ImageFormat
- Dim QL As String
- Dim Exe As String
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- Me.ShowInTaskbar = False
- QL = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) & "\Microsoft\Internet Explorer\Quick Launch" & Application.ProductName & ".lnk"
- Exe = Application.StartupPath & "" & Application.ProductName & ".exe"
- If System.IO.File.Exists(QL) = True Then
- CbVk.Checked = True
- Else : CbVk.Checked = False
- End If
- ImageFormat = System.Drawing.Imaging.ImageFormat.Png
- Desktopimage = New Bitmap(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.Bounds.Height)
- Snap = Graphics.FromImage(Desktopimage)
- Nummer = 1
- With CbTyp
- .Items.Add(".png")
- .Items.Add(".bmp")
- .Items.Add(".jpg")
- .Items.Add(".gif")
- .Items.Add(".tif")
- .Items.Add(".exif")
- .Items.Add(".emf")
- .Items.Add(".wmf")
- .SelectedIndex = 0
- End With
- TbDateiname.Text = "Screenshot"
- End Sub
- Private Sub BtnPfadAuswahl_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPfadAuswahl.Click
- PfadFestlegen()
- End Sub
- Private Sub BtnKnipsen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnKnipsen.Click
- Pfad = My.Settings.Ordner
- If Pfad = "" Then
- If MsgBox("Bitte zuerst einen Speicherort auswählen!", MsgBoxStyle.Information, "Screenshot Maker") = MsgBoxResult.Ok Then
- PfadFestlegen()
- Exit Sub
- End If
- End If
- Me.Hide()
- System.Threading.Thread.Sleep(150)
- Snap.CopyFromScreen(0, 0, 0, 0, Desktopimage.Size)
- If Not System.IO.File.Exists(Pfad & "" & TbDateiname.Text & CbTyp.SelectedItem.ToString) Then
- Desktopimage.Save(Pfad & "" & TbDateiname.Text & CbTyp.SelectedItem.ToString, ImageFormat)
- Me.Show()
- Else : Nummer = 1
- CheckName.Start()
- End If
- End Sub
- Private Sub CheckName_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckName.Tick
- If System.IO.File.Exists(Pfad & "" & TbDateiname.Text & "(" & Nummer & ")" & CbTyp.SelectedItem.ToString) Then
- Nummer += 1
- Else : CheckName.Stop()
- Desktopimage.Save(Pfad & "" & TbDateiname.Text & "(" & Nummer & ")" & CbTyp.SelectedItem.ToString, ImageFormat)
- Me.Show()
- End If
- End Sub
- Private Sub PfadFestlegen()
- If FBD.ShowDialog = DialogResult.OK Then
- My.Settings.Ordner = FBD.SelectedPath & ""
- My.Settings.Save()
- Pfad = My.Settings.Ordner
- End If
- End Sub
- Private Sub CbTyp_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CbTyp.SelectedIndexChanged
- If CbTyp.SelectedItem.ToString = ".png" Then
- ImageFormat = System.Drawing.Imaging.ImageFormat.Png
- ElseIf CbTyp.SelectedItem.ToString = ".bmp" Then
- ImageFormat = System.Drawing.Imaging.ImageFormat.Bmp
- ElseIf CbTyp.SelectedItem.ToString = ".jpg" Then
- ImageFormat = System.Drawing.Imaging.ImageFormat.Jpeg
- ElseIf CbTyp.SelectedItem.ToString = ".gif" Then
- ImageFormat = System.Drawing.Imaging.ImageFormat.Gif
- ElseIf CbTyp.SelectedItem.ToString = ".tif" Then
- ImageFormat = System.Drawing.Imaging.ImageFormat.Tiff
- ElseIf CbTyp.SelectedItem.ToString = ".exif" Then
- ImageFormat = System.Drawing.Imaging.ImageFormat.Exif
- ElseIf CbTyp.SelectedItem.ToString = ".emf" Then
- ImageFormat = System.Drawing.Imaging.ImageFormat.Emf
- ElseIf CbTyp.SelectedItem.ToString = ".wmf" Then
- ImageFormat = System.Drawing.Imaging.ImageFormat.Wmf
- End If
- End Sub
- Private Sub CbVk_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CbVk.CheckedChanged
- If CbVk.Checked = True Then
- If System.IO.File.Exists(QL) Then
- Kill(QL)
- End If
- VerkuepfungErstellen(QL, Exe, "", "Macht einen Screenshot")
- SHChangeNotify(&H8000000, &H0, 0, 0)
- Else : Kill(QL)
- SHChangeNotify(&H8000000, &H0, 0, 0)
- End If
- End Sub
- Public Function VerkuepfungErstellen(ByVal Wohin As String, ByVal Wovon As String, Optional ByVal Argumente As String = "", Optional ByVal Beschreibung As String = "", Optional ByVal Ort As String = "") As Boolean
- Try : Dim IcoShell As New Shell32.Shell
- Dim sOrdner As Shell32.Folder
- Dim SLO As Shell32.ShellLinkObject
- Dim EXEPfad As String = Wohin.Substring(0, Wohin.LastIndexOf(""))
- Dim EXEName As String = Wohin.Substring(Wohin.LastIndexOf("") + 1)
- Dim F As Short = CShort(FreeFile())
- FileOpen(F, Wohin, OpenMode.Output)
- FileClose(F)
- sOrdner = IcoShell.NameSpace(EXEPfad)
- SLO = CType(sOrdner.Items.Item(EXEName).GetLink, Shell32.ShellLinkObject)
- With SLO
- If Argumente.Length > 0 Then .Arguments = Argumente
- If Beschreibung.Length > 0 Then .Description = Beschreibung
- If Ort.Length > 0 Then .WorkingDirectory = Ort
- .Path = Wovon
- .Save()
- End With
- IcoShell = Nothing
- sOrdner = Nothing
- SLO = Nothing
- Return True
- Catch ex As Exception
- If System.IO.File.Exists(Wohin) Then
- Kill(Wohin)
- End If
- Return False
- End Try
- End Function
- End Class
Projektmappe:
Screenshot Maker by Derfuhr.7z
Für Kritik an meinem Stil wäre ich Dankbar!!
edit: Unter Win 7 muss der Pfad zur Schnellstartleiste geändert werden
Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Derfuhr“ ()