Hallo,
ich bin nicht der VB-Freak, nutze eigentlich VB6 nur für Sachen, die ich nicht mit Clickexe3 hinbekomme.
Zu meinem Problem:
Ich habe ein Programm geschrieben, mit welchem ich eine Textdatei (Dat_Sender.txt) auslese.
Inhalt:
----------------------------------------------------------
4
2400
ATZXL3
26
1/1:Kommunikationsausfall
----------------------------------------------------------
Aufgrund dieser Daten wird die Rufnummer angerufen.
Danach soll sich das Programm beenden.
Das VB-Script sieht folgendermaßen aus:
----------------------------------------------------------
Dim schnittstelle As Integer
Dim amt As String
Dim baudrate As String
Dim inizialisierung As String
Dim rufnummer As String
Dim empfaengerrufnummer As String
Dim meldung As String
Dim setting As String
Dim modemantwort As String
Dim t As Integer
Dim stufe As Integer
Private Sub abbrechen_Click()
abbrechen.Enabled = False
abbrechen.Visible = False
Open "C:\Funkruf-Manager\Dat_Sender.txt" For Output As #1
Print #1, "Abbruch" + Chr(13)
Print #1, Chr(13)
Print #1, Chr(13)
Print #1, Chr(13)
Print #1, Chr(13)
Close #1
Unload Telefon_Fenster
Set Telefon_Fenster = Nothing
'MSComm1.PortOpen = False
End Sub
Private Sub Form_Load()
Let stufe = 0
'Daten von FRM übernehmen
Open "C:\Funkruf-Manager\Dat_Sender.txt" For Input As #1
Input #1, schnittstelle
Input #1, amt
Input #1, baudrate
Input #1, inizialisierung
Input #1, empfaengerrufnummer
Input #1, meldung
Close #1
'Textfelder füllen
'Let meldetext.Text = meldung
Let empfaenger.Text = empfaengerrufnummer
'Setting String (Schnittstelleneinstellung) zusammenstellen
Let setting = baudrate + ",N,8,1"
'Schnittstelle vorbereiten
MSComm1.CommPort = schnittstelle
'MsgBox schnittstelle
MSComm1.Settings = setting
MSComm1.PortOpen = True
MSComm1.RThreshold = 1
MSComm1.SThreshold = 1
MSComm1.InputLen = 0
'Initialisierungsstring senden
ini(0).Visible = True
MSComm1.Output = inizialisierung + Chr(13)
For t = 0 To 10000: Next
melde1(0).Visible = True
waehle(1).Visible = True
MSComm1.Output = "ATX3DT" + amt + empfaengerrufnummer + Chr(13)
stufe = 3
melde2(1).Visible = True
'verbindung(0).Visible = True
MSComm1.Handshaking = comRTS
End Sub
Private Sub Form_Unload(Cancel As Integer)
Unload Telefon_Fenster
Set Telefon_Fenster = Nothing
'MSComm1.PortOpen = False
End Sub
Private Sub MSComm1_OnComm()
modemantwort = MSComm1.Input
'modemantwort = Replace$(modemantwort, Chr(13), "")
'modemantwort = Replace$(modemantwort, Chr(10), "")
Text1.Text = Text1.Text + modemantwort ' + Chr(13)
If stufe = 3 Then
If InStr(1, modemantwort, "NO CARRIER") <> 0 Then
'MsgBox "NO CARRIER!"
'melde2(1).Caption = "ERROR!"
'melde2(1).ForeColor = &HFF&
'melde2(1).Visible = True
Open "C:\Funkruf-Manager\Dat_Sender.txt" For Output As #1
Print #1, "Ruf_ok" + Chr(13)
Print #1, Chr(13)
Print #1, Chr(13)
Print #1, Chr(13)
Print #1, Chr(13)
Close #1
Unload Telefon_Fenster
Set Telefon_Fenster = Nothing
'End
'Unload Me
End If
If InStr(1, modemantwort, "BUSY") <> 0 Then
'MsgBox "NO CARRIER!"
'melde2(1).Caption = "ERROR!"
'melde2(1).ForeColor = &HFF&
'melde2(1).Visible = True
Open "C:\Funkruf-Manager\Dat_Sender.txt" For Output As #1
Print #1, "Ruf_ok" + Chr(13)
Print #1, Chr(13)
Print #1, Chr(13)
Print #1, Chr(13)
Print #1, Chr(13)
Close #1
Unload Telefon_Fenster
Set Telefon_Fenster = Nothing
'End
'Unload Me
End If
End If
If stufe < 3 Then
If InStr(1, modemantwort, "NO CARRIER") <> 0 Then
'MsgBox "NO CARRIER!"
melde2(1).Caption = "ERROR!"
melde2(1).ForeColor = &HFF&
melde2(1).Visible = True
Open "C:\Funkruf-Manager\Dat_Sender.txt" For Output As #1
Print #1, "Fehler" + Chr(13)
Print #1, Chr(13)
Print #1, Chr(13)
Print #1, Chr(13)
Print #1, Chr(13)
Close #1
Unload Telefon_Fenster
Set Telefon_Fenster = Nothing
'End
'Unload Me
End If
If InStr(1, modemantwort, "ERROR") <> 0 Then
'MsgBox "ERROR!"
Open "C:\Funkruf-Manager\Dat_Sender.txt" For Output As #1
Print #1, "Fehler" + Chr(13)
Print #1, Chr(13)
Print #1, Chr(13)
Print #1, Chr(13)
Print #1, Chr(13)
Close #1
Unload Telefon_Fenster
Set Telefon_Fenster = Nothing
'End
'Unload Me
End If
If InStr(1, modemantwort, "NO DIALTONE") <> 0 Then
'MsgBox "NO DIALTONE!"
Open "C:\Funkruf-Manager\Dat_Sender.txt" For Output As #1
Print #1, "Fehler" + Chr(13)
Print #1, Chr(13)
Print #1, Chr(13)
Print #1, Chr(13)
Print #1, Chr(13)
Close #1
Unload Telefon_Fenster
Set Telefon_Fenster = Nothing
'End
'Unload Me
End If
If InStr(1, modemantwort, "BUSY") <> 0 Then
MsgBox "BUSY!"
Open "C:\Funkruf-Manager\Dat_Sender.txt" For Output As #1
Print #1, "Fehler" + Chr(13)
Print #1, Chr(13)
Print #1, Chr(13)
Print #1, Chr(13)
Print #1, Chr(13)
Close #1
Unload Telefon_Fenster
Set Telefon_Fenster = Nothing
'End
'Unload Me
End If
If InStr(1, modemantwort, "NO ANSWER") <> 0 Then
'MsgBox "NO ANSWER!"
Open "C:\Funkruf-Manager\Dat_Sender.txt" For Output As #1
Print #1, "Fehler" + Chr(13)
Print #1, Chr(13)
Print #1, Chr(13)
Print #1, Chr(13)
Print #1, Chr(13)
Close #1
Unload Telefon_Fenster
Set Telefon_Fenster = Nothing
'End
'Unload Me
End If
End If
If InStr(1, modemantwort, "OK") <> 0 Then
'MsgBox "Test bestanden - OK"
If melde1(0).Visible = True Then
melde2(1).Visible = True
'verbindung(0).Visible = True
End If
melde1(0).Visible = True
End If
End Sub
---------------------------------------------------------
Leider ist es so, dass das Programm beim 1. Mal super funktioniert, allerdings ab dem 2. oder 3. Programmstart wird das Fenster nicht mehr geöffnet und das Programm steht im Task-Manager, kann aber nicht geschlossen werden, in den meisten Fällen wird kann man den PC sogar nicht mehr herunterfahren!
Ich habe die Befürchtung, dass das Programm nicht richtig beendet wird.
Wer kann helfen?
Andreas