MsgBox + Windows2000 = Programm friert ein

Hi Leute!

Ich habe momentan ein ziemlich dickes Problem mit einer von mir geschriebenen VB-Anwendung (VB6 ProfEdition) unter Windows2000 (Service Pack 1):

Das Programm ist ein DFÜ-Programm zum Versenden von Dateien an ein bestimmte Mailbox. Daher wird im Programm sehr heftig mit dem PDQComm-OCX (ähnlich dem MSComm-OCX) gearbeitet, also jede Menge Daten über den Com-Port.

Unter WINDOWS9x läuft das Programm problemlos. Jetzt hat ein Kunde auf WINDOWS2000 umgestellt und es kracht und scheppert fröhlich vor sich hin. Das Debugging hat dabei ergeben, daß nach dem Aufruf einer Messagebox ( Source: MsgBox „Datenübertragung beendet!“, vbInformation, „ERFOLG“ ) das Programm steht. Die nachfolgende Codezeile wird nicht mehr ausgeführt.

Hat jemand einen Rat/Tip?

Grüße
Siegfried

Versuch mal den Syntax: MsgBox „Beendet“,„Erfolg“,"vbinformation

Der Syntax für die msgbox lautet eigentlich so. Aber ich denke Du hast Dich nur verschrieben und es hilft nicht wirklich weiter…

Zur not Versuch mal über die WinAPI MessageBox aufzurufen.

Michael

Versuch mal den Syntax: MsgBox
„Beendet“,„Erfolg“,"vbinformation
Der Syntax für die msgbox lautet eigentlich so. Aber ich denke
Du hast Dich nur verschrieben und es hilft nicht wirklich
weiter…

Hmmm…

Also meine Online-Hilfe gibt folgende Syntax an:

MsgBox(prompt[, buttons][, title][, helpfile, context])

Außerdem geht es ja nicht darum, daß die Msgbox *nicht* erscheint, sondern daß nach dem Bestätigen der Msgbox (inkl. dem DestroyWindow auf das Msgbox-Fenster) die Anwendung einfriert, soll heißen: die MsgBox verschwindet, aber das Programm tut nichts mehr (Vermutung: keine Rückkehr aus der für die Msgbox verantwortliche DLL ???)

Grüße
Siegfried

Versuch mal:

Public Declare Function MessageBox Lib „user32“ Alias „MessageBoxA“ (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As Long

und dann

MessageBoxA(0,„Text“,„Titel“,0)

ob diese Box auch einfriert.

Es ist schon ne weile her in den ich in Basic Programmierte. Welchen Servicepack hast Du für VB ?

Ist es möglich auf dem W2k Rechner SP2 aufzuspielen ?

Könntest Du mal die Codezeile in der die MessageBox aufgerufen wird posten ?

Möchte das mal bei mir Probieren ob dort die gleiche Problematik auftritt. (VB6 SP3 W2K Sp2)

TNX

Micha

Hi!

Versuch mal:

Public Declare Function MessageBox Lib „user32“ Alias
„MessageBoxA“ (ByVal hwnd As Long, ByVal lpText As String,
ByVal lpCaption As String, ByVal wType As Long) As Long

und dann

MessageBoxA(0,„Text“,„Titel“,0)

ob diese Box auch einfriert.

Ist natürlich eine mächtige Drumherum-Programmiererei… :wink:

Welchen Servicepack hast Du für VB ?

Verwende VB Version 6.0 Professional Edition ohne SP
Als Zusatzpaket im Projekt ist das PDQComm.OCX im Einsatz

Ist es möglich auf dem W2k Rechner SP2 aufzuspielen ?

Negativ - weil Rechner einem Kunden gehört und ich nicht dessen ganzen Client-Server-Konstruktion ändern möchte.

Könntest Du mal die Codezeile in der die MessageBox aufgerufen
wird posten ?

Klar - hier kommt der Müll (Erläuterungen zum Code nachfolgend):

If Not gbDfueFehler Then
lStufe = 281
gcText = "Passiere Stufe " & Trim$(Str$(lStufe))
Protokolliere

MsgBox „Datenübermittlung abgeschlossen!“, vbInformation, „FERTIG“

lStufe = 282
gcText = "Passiere Stufe " & Trim$(Str$(lStufe))
Protokolliere
Else
lStufe = 283
gcText = "Passiere Stufe " & Trim$(Str$(lStufe))
Protokolliere

MsgBox „Bei der Datenübermittlung ist ein nicht behebbarer Fehler aufgetreten!“, vbInformation, „STOP!“

lStufe = 284
gcText = "Passiere Stufe " & Trim$(Str$(lStufe))
Protokolliere
End If

gbDfueFehler = Bool, der anzeigt, ob ein Fehler aufgetreten ist
lStufe = Long, für Fortschrittsanzeige im Protokoll (Textdatei)
gcText = String, Text für das Protokoll
Protokollieren = Sub, die das Protokoll schreibt

Es ist dabei egal, welche MsgBox aufgerufen wird, die Msgbox wird angezeigt, der User quittiert die Meldung, die Msgbox verschwindet. Aber die Folgezeile (also „lStufe = 282“ oder „lStufe = 284“) wird nie (!!) angesprungen. Das Programm steht.

Grüße
Siegfried

Ich habe mal ein wenig experimentiert.

Ich konnte den Fehler leider nicht nachvollziehen.

Merkwürdig ist das die MSGBox verschwindet und sich nichts mehr tut.

Kann das Programm danach noch events ausführen oder ist es total weg ?

Micha

Hi!

Merkwürdig ist das die MSGBox verschwindet und sich nichts
mehr tut.

Kann das Programm danach noch events ausführen oder ist es
total weg ?

Das Programm ist völlig weg. Der Mauszeiger bewegt sich zwar noch auf dem Dialog, aber ich kann keine Dialogelemente mehr anklicken. Bei Aufruf des TaskManagers steht hinter dem Anwendungsnamen „(reagiert nicht)“. Die Anwendung läßt sich über den TaskManager problemlos beenden (d.h. das System insgesamt ist stabil geblieben).

Grüße
Siegfried

Ist es Möglich das Projekt und die Komponenten mal zu bekommen ?
Ich möchte das mal debuggen und schaun ob der fehler bei mir auch auftriftt und Dir gerne ein Compilat zusenden um zu sehen ob sich da etwas ändert.

Merkwürdig ist der Fehler schon.
Er muß nicht mal unbedingt mit der msgbox zusammenhängen. VB Produziert manchmal die merkwürdigsten sachen *g*

Wenn Du magst mail das Zeugs mal zu (Wenn Du zusätzliche Objetke hast brauch ich die auch).

[email protected]

Gruß

Michael