Problem beim Starten meines Programmes

  • VB.NET

Es gibt 22 Antworten in diesem Thema. Der letzte Beitrag () ist von schuchie12.

    Problem beim Starten meines Programmes

    Hey,
    Ich habe eine Problem mit meinem Programm undzwar:
    Ich habe mein Programm auf verschiedenen Pc's getestet alle Windows 7 mit dem neusten .net Framwork, aber auf meinem Laptop startet es für ca. 1 Sekunde und schließt sich wieder
    Aber auf anderen PC's Funktioniert es ohne Probleme! Ich bekomme diese Fehlermeldung wenn ich über AppclicationEvents abfange:





    Hier ist mein Code:


    VB.NET-Quellcode

    1. Imports System.Net.Sockets
    2. Imports System.Threading
    3. Imports System.IO
    4. Public Class Form1
    5. Dim listener As New TcpListener(55555)
    6. Dim client As TcpClient
    7. Dim anachricht As String = "" 'ausgehende nachricht
    8. Dim snachricht As String = "" 'sendenachricht
    9. Dim abefehl As String = "" 'Ankommender Befehl
    10. Dim IP As Net.IPAddress = Net.Dns.GetHostEntry(My.Computer.Name).AddressList(2)
    11. Dim user As String = My.User.Name.ToString
    12. Dim usebefehl As String 'Wurde der BEfehl ausgeführt?
    13. Dim picture As New Bitmap(My.Computer.Screen.Bounds.Width, My.Computer.Screen.Bounds.Height)
    14. Dim graphic As Graphics = Graphics.FromImage(picture)
    15. Private Declare Function GetAsyncKeyState Lib "user32.dll" (ByVal key As Keys) As Integer
    16. Dim offen As Boolean = True
    17. Dim passwort As String
    18. Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    19. Senden(1)
    20. listener.Stop()
    21. lesen.Stop()
    22. End Sub
    23. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    24. listener.Start()
    25. Dim listthread As New Thread(New ThreadStart(AddressOf listening))
    26. listthread.Start()
    27. Senden(0)
    28. End Sub
    29. Private Sub listening()
    30. lesen.Start()
    31. lesen.Enabled = True
    32. End Sub
    33. Private Sub Senden(ByVal sbefehl As Integer) 'sbefehl = sendenerbefehl
    34. client = New TcpClient("192.168.178.41", 55555) 'Ip vom Maty 192.168.0.24
    35. Dim writer As New StreamWriter(client.GetStream())
    36. Select Case sbefehl
    37. Case 0 'anmelden
    38. snachricht = "0#" & user & "#" & IP.ToString
    39. Case 1 'abmelden
    40. snachricht = "1#" & user
    41. Case 3 'antwortvon befehl
    42. Case 4 'Passwort
    43. snachricht = "3#" & IP.ToString
    44. End Select
    45. Try
    46. writer.Write(snachricht)
    47. RichTextBox1.AppendText("[" & DateTime.Now & "] " & snachricht & vbCrLf)
    48. writer.Flush()
    49. Catch ex As Exception
    50. RichTextBox1.AppendText(ex.ToString & vbCrLf)
    51. End Try
    52. End Sub
    53. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    54. Senden(0)
    55. End Sub
    56. Private Sub lesen_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lesen.Tick
    57. Try
    58. If listener.Pending = True Then
    59. Dim text As String
    60. anachricht = ""
    61. client = listener.AcceptTcpClient
    62. Dim reader As New StreamReader(client.GetStream)
    63. While reader.Peek > -1
    64. anachricht = anachricht + Convert.ToChar(reader.Read)
    65. End While
    66. Dim sArray() As String
    67. sArray = Split(anachricht, "#")
    68. abefehl = sArray(0)
    69. Select Case abefehl
    70. Case 0 'Nachricht anzeigen
    71. text = sArray(1)
    72. MsgBox(text, MsgBoxStyle.Information, "Nachricht vom Admin")
    73. RichTextBox1.AppendText("[" & DateTime.Now & "] " & "Admin: " & text & vbCrLf)
    74. Case 1 ' Nachricht alle
    75. text = sArray(1)
    76. Try
    77. MsgBox(text, MsgBoxStyle.Information, "Nachricht vom Admin")
    78. RichTextBox1.AppendText("[" & DateTime.Now & "] " & "Admin: " & text & vbCrLf)
    79. Catch ex As Exception
    80. RichTextBox1.AppendText(ex.ToString & vbCrLf)
    81. End Try
    82. Case 2 'Sperren
    83. If Timer1.Enabled = False Then
    84. Sperren.schließen = True
    85. Sperren.BackColor = Color.Black
    86. Sperren.Show()
    87. Sperren.Label1.Visible = True
    88. Sperren.Label1.Location = New Point(Sperren.Width / 3.5, Sperren.Height / 2.1)
    89. Timer1.Enabled = True
    90. snachricht = "2#" & user.ToString & "#Gesperrt"
    91. Senden(3)
    92. End If
    93. Case 3 'entsperren
    94. If Timer1.Enabled = True Then
    95. Timer1.Enabled = False
    96. Sperren.schließen = False
    97. Sperren.Close()
    98. Sperren.Label1.Visible = False
    99. snachricht = "2#" & user.ToString & "#Entsperrt"
    100. Senden(3)
    101. End If
    102. Case 4 'sperren screen
    103. If Timer1.Enabled = False Then
    104. Sperren.schließen = True
    105. graphic.CopyFromScreen(0, 0, 0, 0, picture.Size)
    106. Sperren.BackgroundImage = picture
    107. Sperren.Show()
    108. Timer1.Enabled = True
    109. snachricht = "2#" & user.ToString & "#Screen Gesperrt"
    110. Senden(3)
    111. End If
    112. Case 5 'passwort vergleich
    113. Dim pw As String
    114. pw = sArray(1)
    115. If pw = passwort Or passwort = "umfwba" Then
    116. Me.WindowState = FormWindowState.Normal
    117. Me.ShowInTaskbar = True
    118. Me.Show()
    119. Me.TopMost = True
    120. MsgBox("Richtiges Passwort", MsgBoxStyle.Information)
    121. Else
    122. MsgBox("Falsches Passwort", MsgBoxStyle.Critical)
    123. End If
    124. End Select
    125. End If
    126. If GetAsyncKeyState(Keys.F10) = -32767 Then
    127. If offen = True Then
    128. Me.WindowState = FormWindowState.Minimized
    129. offen = False
    130. Me.ShowInTaskbar = False
    131. ElseIf offen = False Then
    132. offen = True
    133. passwort = InputBox("Bitte geben sie das Passwort ein.:", "Passwort")
    134. Senden(4)
    135. End If
    136. End If
    137. Catch ex As Exception
    138. RichTextBox1.AppendText(ex.ToString & vbCrLf)
    139. End Try
    140. End Sub
    141. Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
    142. Sperren.TopMost = True
    143. End Sub
    144. End Class




    Ich hoffe ihr wisst wie man dieses Problem löst :( Wenn das hier im Falschem Forum ist tut's mir Leid bin neu :D

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „schuchie12“ ()

    Als was hast du dein Projekt erstellt? Als AnyCPU oder x64 ?

    Stell deine Programme auf x86, dann funktionieren sie überall...
    Bei nen x64 System wird es dann halt auf 32 Bit Ebene ausgeführt!

    Ich würde das abhören in einen extra Thread laufen lassen mit einer Do-Schleife!

    So in der Art:

    VB.NET-Quellcode

    1. Private Sub Listen()
    2. Do
    3. Try
    4. Dim txt as String = ""
    5. txt = stream.readline
    6. Catch ex As Exception
    7. 'wenn nicht mehr verbunden
    8. End Try
    9. Loop
    10. End Sub
    Ok dann erstell mal deine EXE neu und versuch es dann nochmal... Und versuch den Timer mal wegzulassen!

    PS: Vergiss aber nicht bei der Do-Schleife wenn die Verbindung geschlossen ist, auch den Thread bzw die Sub zu beenden:)

    VB.NET-Quellcode

    1. Private Sub Listen()
    2. Do
    3. Try
    4. Dim txt as String = ""
    5. txt = stream.readline
    6. select case txt
    7. case "1"
    8. 'tu das
    9. case "2"
    10. 'tu das andere
    11. Catch ex As Exception
    12. 'wenn nicht mehr verbunden
    13. End Try
    14. Loop
    15. End Sub


    Edit: Du kannst dir auch mal dieses Tut hier durchlesen... Das hilft dir sicher weiter!
    HIER
    Ist das so richtig gemacht?


    VB.NET-Quellcode

    1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    2. listener.Start()
    3. Dim listthread As New Thread(New ThreadStart(AddressOf listening))
    4. listthread.Start()
    5. Senden(0)
    6. End Sub
    7. Private Sub listening()
    8. Listen()
    9. End Sub
    10. Private Sub Listen()
    11. Do
    12. Try
    13. Dim text As String
    14. anachricht = ""
    15. client = listener.AcceptTcpClient
    16. Dim reader As New StreamReader(client.GetStream)
    17. While reader.Peek > -1
    18. anachricht = anachricht + Convert.ToChar(reader.Read)
    19. End While
    20. Dim sArray() As String
    21. sArray = Split(anachricht, "#")
    22. abefehl = sArray(0)
    23. Select Case abefehl
    24. Case 0 'Nachricht anzeigen
    25. text = sArray(1)
    26. MsgBox(text, MsgBoxStyle.Information, "Nachricht vom Admin")
    27. RichTextBox1.AppendText("[" & DateTime.Now & "] " & "Admin: " & text & vbCrLf)
    28. Case 1 ' Nachricht alle
    29. text = sArray(1)
    30. Try
    31. MsgBox(text, MsgBoxStyle.Information, "Nachricht vom Admin")
    32. RichTextBox1.AppendText("[" & DateTime.Now & "] " & "Admin: " & text & vbCrLf)
    33. Catch ex As Exception
    34. RichTextBox1.AppendText(ex.ToString & vbCrLf)
    35. End Try
    36. Case 2 'Sperren
    37. If Timer1.Enabled = False Then
    38. Sperren.schließen = True
    39. Sperren.BackColor = Color.Black
    40. Sperren.Show()
    41. Sperren.Label1.Visible = True
    42. Sperren.Label1.Location = New Point(Sperren.Width / 3.5, Sperren.Height / 2.1)
    43. Timer1.Enabled = True
    44. snachricht = "2#" & user.ToString & "#Gesperrt"
    45. Senden(3)
    46. End If
    47. Case 3 'entsperren
    48. If Timer1.Enabled = True Then
    49. Timer1.Enabled = False
    50. Sperren.schließen = False
    51. Sperren.Close()
    52. Sperren.Label1.Visible = False
    53. snachricht = "2#" & user.ToString & "#Entsperrt"
    54. Senden(3)
    55. End If
    56. Case 4 'sperren screen
    57. If Timer1.Enabled = False Then
    58. Sperren.schließen = True
    59. graphic.CopyFromScreen(0, 0, 0, 0, picture.Size)
    60. Sperren.BackgroundImage = picture
    61. Sperren.Show()
    62. Timer1.Enabled = True
    63. snachricht = "2#" & user.ToString & "#Screen Gesperrt"
    64. Senden(3)
    65. End If
    66. Case 5 'passwort vergleich
    67. Dim pw As String
    68. pw = sArray(1)
    69. If pw = passwort Or passwort = "umfwba" Then
    70. Me.WindowState = FormWindowState.Normal
    71. Me.ShowInTaskbar = True
    72. Me.Show()
    73. Me.TopMost = True
    74. MsgBox("Richtiges Passwort", MsgBoxStyle.Information)
    75. Else
    76. MsgBox("Falsches Passwort", MsgBoxStyle.Critical)
    77. End If
    78. End Select
    79. Catch ex As Exception
    80. 'wenn nicht mehr verbunden
    81. End Try
    82. Loop
    83. End Sub

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „schuchie12“ ()

    Ich hab jetzt mal den Thread weg gemacht und getestet und es funktioniert nicht, der reader liest nicht mehr. Und es kommt immer noch die Fehlermeldung.

    VB.NET-Quellcode

    1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    2. listener.Start()
    3. ' Dim listthread As New Thread(New ThreadStart(AddressOf listening))
    4. 'listthread.Start()
    5. Listen()
    6. Senden(0)
    7. End Sub
    8. Private Sub Listen()
    9. Do
    10. Try
    11. Dim text As String
    12. anachricht = ""
    13. client = listener.AcceptTcpClient
    14. Dim reader As New StreamReader(client.GetStream)
    15. While reader.Peek > -1
    16. anachricht = anachricht + Convert.ToChar(reader.Read)
    17. End While
    18. Dim sArray() As String
    19. sArray = Split(anachricht, "#")
    20. abefehl = sArray(0)
    21. Select Case abefehl
    22. Case 0 'Nachricht anzeigen
    23. text = sArray(1)
    24. MsgBox(text, MsgBoxStyle.Information, "Nachricht vom Admin")
    25. RichTextBox1.AppendText("[" & DateTime.Now & "] " & "Admin: " & text & vbCrLf)
    26. Case 1 ' Nachricht alle
    27. text = sArray(1)
    28. Try
    29. MsgBox(text, MsgBoxStyle.Information, "Nachricht vom Admin")
    30. RichTextBox1.AppendText("[" & DateTime.Now & "] " & "Admin: " & text & vbCrLf)
    31. Catch ex As Exception
    32. RichTextBox1.AppendText(ex.ToString & vbCrLf)
    33. End Try
    34. Case 2 'Sperren
    35. If Timer1.Enabled = False Then
    36. Sperren.schließen = True
    37. Sperren.BackColor = Color.Black
    38. Sperren.Show()
    39. Sperren.Label1.Visible = True
    40. Sperren.Label1.Location = New Point(Sperren.Width / 3.5, Sperren.Height / 2.1)
    41. Timer1.Enabled = True
    42. snachricht = "2#" & user.ToString & "#Gesperrt"
    43. Senden(3)
    44. End If
    45. Case 3 'entsperren
    46. If Timer1.Enabled = True Then
    47. Timer1.Enabled = False
    48. Sperren.schließen = False
    49. Sperren.Close()
    50. Sperren.Label1.Visible = False
    51. snachricht = "2#" & user.ToString & "#Entsperrt"
    52. Senden(3)
    53. End If
    54. Case 4 'sperren screen
    55. If Timer1.Enabled = False Then
    56. Sperren.schließen = True
    57. graphic.CopyFromScreen(0, 0, 0, 0, picture.Size)
    58. Sperren.BackgroundImage = picture
    59. Sperren.Show()
    60. Timer1.Enabled = True
    61. snachricht = "2#" & user.ToString & "#Screen Gesperrt"
    62. Senden(3)
    63. End If
    64. Case 5 'passwort vergleich
    65. Dim pw As String
    66. pw = sArray(1)
    67. If pw = passwort Or passwort = "umfwba" Then
    68. Me.WindowState = FormWindowState.Normal
    69. Me.ShowInTaskbar = True
    70. Me.Show()
    71. Me.TopMost = True
    72. MsgBox("Richtiges Passwort", MsgBoxStyle.Information)
    73. Else
    74. MsgBox("Falsches Passwort", MsgBoxStyle.Critical)
    75. End If
    76. End Select
    77. Catch ex As Exception
    78. 'wenn nicht mehr verbunden
    79. End Try
    80. Loop
    81. End Sub
    Dann versuch es mal so:

    VB.NET-Quellcode

    1. Private Sub Listen()
    2. While client.connected
    3. Try
    4. Dim text As String
    5. anachricht = ""
    6. client = listener.AcceptTcpClient
    7. Dim reader As New StreamReader(client.GetStream)
    8. While reader.Peek > -1
    9. anachricht = anachricht + Convert.ToChar(reader.Read)
    10. End While
    11. Dim sArray() As String
    12. sArray = Split(anachricht, "#")
    13. abefehl = sArray(0)
    14. Select Case abefehl
    15. 'usw.....
    16. End while


    Und zu den Problem mit der Fehlermeldung... Fehler beim Erstellen des Formulars!
    Hast du irgendwo im Designer was als Warnung markiert?

    Sonst kann ich dir da leider nicht weiterhelfen!
    Hatte die Meldung noch nie...