Ich würde da lieber ein Tray Icon machen (so ein Icon wie zB die Lautstärkeregelung). Dann müssen die Benutzer das Programm nicht im Taskmanager beenden.
Da ich nicht schlafen konnte, hab ich schnell ein paar Zeilen Code zusammengetipselt. Aber keine Angst ich hab alles nochmal durchgetestet und das Beispielprogramm funktioniert ;)
Code für das Tray Icon:
Code:
'Mit dieser Klasse kannst du ein neues TrayIcon erstellen. Dieses Icon ist ganz rechts in der Taskleiste zu sehen (so wie zB deine Lautstärkeregelung).
'So können deine Benutzer/Spieler das Spiel beenden ohne den Taskmanager zu öffnen.
Public Class TrayIcon
Inherits ApplicationContext
Private WithEvents Tray As NotifyIcon 'Das Tray-Icon
Private WithEvents TrayMenu As ContextMenuStrip 'Menü für das Tray-Icon
Private WithEvents mnuRestore As ToolStripMenuItem 'Menüeintrag zum Wiederherstellen des Fensters
Private WithEvents mnuSupport As ToolStripMenuItem 'Menüeintrag für den Support-Dialog
Private WithEvents sepSeparator As ToolStripSeparator 'Ein Platzhalter zwischen den beiden Einträgen oben und dem folgenden
Private WithEvents mnuExit As ToolStripMenuItem 'Menüeintrag zum Beenden des Spiels
Private WithEvents restoreForm As Form 'Variable zum Zwischenspeichern unseres Programmfensters, damit wir es wiederherstellen können
Public Sub New(ByVal form As Form)
restoreForm = form
'Wir erstellen zuerst ein Menü mit drei Einträgen und einem Abstandhalter für das Tray Icon
mnuRestore = New ToolStripMenuItem("Spiel anzeigen")
mnuSupport = New ToolStripMenuItem("Fehler melden")
sepSeparator = New ToolStripSeparator()
mnuExit = New ToolStripMenuItem("Spiel beenden")
TrayMenu = New ContextMenuStrip
TrayMenu.Items.AddRange(New ToolStripItem() {mnuRestore, mnuSupport, sepSeparator, mnuExit})
'Jetzt geben wir dem Tray-Icon noch eine Beschriftung und ein Bild
Tray = New NotifyIcon
Tray.Icon = My.Resources.Home 'Resourcen (zB Bilder) kannst du hinzufügen indem du auf das Projekt rechtsklickst und Eigenschaften auswählst
Tray.ContextMenuStrip = TrayMenu 'Das oben erstellte Menü wird angezeigt, wenn wir einmal auf das Tray Icon klicken
Tray.Text = "[HIER TITEL DES PROGRAMMS EINGEBEN]"
'Tray-Icon anzeigen
Tray.Visible = True
End Sub
Private Sub ShowWindow()
restoreForm.Show()
End Sub
Private Sub TrayIcon_ThreadExit(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.ThreadExit
'Das icon soll gleich verschwinden, wenn das Programm beendet wird (sonst bleibt es bestehen bis man mit der Maus darüberfährt)
Tray.Visible = False
End Sub
Private Sub mnuExit_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles mnuExit.Click
restoreForm.Dispose()
Application.Exit()
End Sub
Private Sub mnuRestore_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles mnuRestore.Click
ShowWindow() 'Fenster wieder anzeigen
End Sub
Private Sub mnuSupport_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles mnuSupport.Click
End Sub
Private Sub Tray_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Tray.DoubleClick
ShowWindow() 'Fenster wieder anzeigen, wenn der Benutzer doppelt auf das Tray-Icon klickt
End Sub
End Class
Aufruf:
Code:
'Tray Icon erstellen und anzeigen (siehe Klasse TrayIcon)
Tray = New TrayIcon(Me)
Du kannst von Visual Basic aus jederzeit eine Email an dich selbst versenden.
Code für den Email Versand:
Code:
Try
Dim email As New Net.Mail.MailMessage("DEINE EMAIL ADRESSE", "DEINE EMAIL ADRESSE")
email.Subject = "Fehlermeldung von " + txtName.Text
email.IsBodyHtml = False 'Es reicht eine einfache Text-Email
email.Body = txtError.Text
'Die Email wird über deinen eigenen E-Mail Anbieter versendet. Dazu brauchst du noch die SMTP Adresse des Email-Servers
Dim smtpClient As New SmtpClient("ADRESSE DES SERVER DEINES EMAILANBIETERS ZB MAIL.GMX.NET", 25) '
smtpClient.Credentials = New Net.NetworkCredential("DEIN EMAIL BENUTZERNAME", "DEIN EMAIL PASSWORT")
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network
smtpClient.Send(email)
MsgBox("Die Fehlermeldung wurde an den Entwickler gesendet!")
Me.Dispose()
Catch ex As Exception
MsgBox("Die Fehlermeldung konnte nicht gesendet werden: " + ex.Message)
End Try
Hier nochmal der ganze Code als Visual Studio 2010 Projekt:
[Only registered and activated users can see links. Click Here To Register...]
Link zum VirusTotal Test, da ich ja noch nicht so lange dabei bin:
[Only registered and activated users can see links. Click Here To Register...]
MD5 : 0b8a76794b3336ae17f919a528661f5a
SHA1 : 8a1673f4a27c6bb61541686426694bc09283de4a
SHA256: 6604a8d72bba5d5dda88fc8be275ac7c4ac75f2ecc609032c9 895180df734702
Ich würde dir aber empfehlen gleich C#.NET zu lernen. Das ist nicht so viel schwieriger, aber du kannst es später eher brauchen, wenn du in C++ oder Java programmieren möchtest. :p