Onlinestatus Clientcomputer
Verfasst: 20.03.2013 00:37
Hallo an alle Experten,
zuerst einmal zur Aufgabenstellung: das folgende (Windows-)Programm soll alle 5 Minuten per FTP eine txt-Datei senden, in der der Computername, Datum und Uhrzeit (und weitere Daten) drin stehen. Das funktioniert auch (fast). Auf einigen Client-Computern stürzt das Programm aber unkontrolliert ab und die dazu gehörige txt-Datei hat dann eine Größe von 0 Byte (auch auf dem FTP). Auf anderen Clients gibt es keine Probleme. Die hochgeladenen txt-Dateien werden dann auf dem Server per php ausgewertet.
Nun zu meinen Fragen: Wo könnte der Fehler für die unkontrollierten (und teilweise auch nicht reproduzierbaren) Abstürze liegen? Kann man das Ganze vielleicht (in Pure-Basic) einfacher/besser/intelligenter lösen?
Danke schonmal für Eure Mühe. Hier der Code:
Nachtrag: Auf einem Client, auf dem ein FTP-Server (nicht der Empfänger für diese Datei) läuft, kommt der Fehler etwas häufiger vor, ist aber auch nicht reproduzierbar. Ach ja, Version ist PB5
danke und Gruß
zuerst einmal zur Aufgabenstellung: das folgende (Windows-)Programm soll alle 5 Minuten per FTP eine txt-Datei senden, in der der Computername, Datum und Uhrzeit (und weitere Daten) drin stehen. Das funktioniert auch (fast). Auf einigen Client-Computern stürzt das Programm aber unkontrolliert ab und die dazu gehörige txt-Datei hat dann eine Größe von 0 Byte (auch auf dem FTP). Auf anderen Clients gibt es keine Probleme. Die hochgeladenen txt-Dateien werden dann auf dem Server per php ausgewertet.
Nun zu meinen Fragen: Wo könnte der Fehler für die unkontrollierten (und teilweise auch nicht reproduzierbaren) Abstürze liegen? Kann man das Ganze vielleicht (in Pure-Basic) einfacher/besser/intelligenter lösen?
Danke schonmal für Eure Mühe. Hier der Code:
Code: Alles auswählen
ftpadresse$="meineadr.dyndns.com"
ftpuser$="ich"
ftppw$="meins1234"
firma$="meine Firma"
Structure pt
x.l
y.l
EndStructure
Cursor.pt
If CreatePopupMenu(0)
MenuItem(1, "Über")
MenuItem(2, "Beenden")
EndIf
If OpenWindow(0, 100, 150, 300, 100, "SysTray Example", #PB_Window_Invisible)
IconName$ = "useronline.ico"
AddSysTrayIcon(1, WindowID(0), LoadImage(0, IconName$))
SysTrayIconToolTip(1, "Online-Status")
startzeit=Date()
InitNetwork()
Repeat
Event = WaitWindowEvent(100)
ExitMenu = 0
If Event = #PB_Event_SysTray
If EventType()=#PB_EventType_RightClick
GetCursorPos_(Cursor)
xPos=Cursor\x
yPos=Cursor\y
DisplayPopupMenu(0, WindowID(0), xPos, yPos)
Repeat
Select WaitWindowEvent()
Case #PB_Event_Menu
Select EventMenu()
Case 1 ;über
MessageRequester("System-Status", "System-Status")
ExitMenu = 1
Case 2 ;ende
If MessageRequester("Programm beenden","Möchten Sie das Programm System-Status wirklich beenden?",#PB_MessageRequester_YesNo)=#PB_MessageRequester_Yes
End
EndIf
ExitMenu = 1
EndSelect
Case #PB_Event_CloseWindow
ExitMenu = 1
EndSelect
Until ExitMenu = 1
EndIf
EndIf
If startzeit+300<Date() ;300 sekunden = 5 minuten
If ExamineEnvironmentVariables()
While NextEnvironmentVariable()
If EnvironmentVariableName() = "COMPUTERNAME"
computername$ = EnvironmentVariableValue()
EndIf
Wend
EndIf
ftpdatei$=""
For x=1 To Len(computername$)
If (Asc(Mid(computername$,x,1))>47 And Asc(Mid(computername$,x,1))<58) Or (Asc(Mid(computername$,x,1))>64 And Asc(Mid(computername$,x,1))<91) Or (Asc(Mid(computername$,x,1))>96 And Asc(Mid(computername$,x,1))<123)
ftpdatei$=ftpdatei$+Mid(computername$,x,1)
EndIf
Next
ftpdatei$=LCase(Left(firma$,4)+ftpdatei$)+".txt"
meineip$="123.456.789.123"
meindatum$=FormatDate("%dd.%mm.%yyyy",Date())
meinezeit$=FormatDate("%hh:%ii:%ss",Date())
If CreateFile(0, ftpdatei$)
WriteString(0,computername$+";"+meineip$+";"+meindatum$+";"+meinezeit$+";"+firma$,#PB_Ascii)
CloseFile(0)
If OpenFTP(0, ftpadresse$, ftpuser$, ftppw$)
Result = SendFTPFile(0, ftpdatei$, ftpdatei$, 1)
CloseFTP(0)
EndIf
EndIf
startzeit=Date()
EndIf
Until Event = #PB_Event_CloseWindow
EndIf
danke und Gruß