Programm zu Systemlastig
Verfasst: 30.12.2008 18:41
Hallo,
ich habe es jetzt (auch mit eurer Hilfe
) geschaft, ein Programm zu programmieren, das alle 30 Sekunden schaut ob die Datei auf dem ftp-Server der Datei auf dem PC entspricht und wenn das nicht so ist die Datei vom PC automatisch hochläd. Dafür habe ich eine Setup.exe , welche alle erforderlichen Daten einmalig abfrägt und in Dateien speichert, eine uploader.exe , welche die Datei überprüft und hochläd und eine uninstall.exe die den im Hintergrund laufenden Prozess beendet und alle erstellten Dateien zur connection auf den FTP wieder löscht. Mein Problem ist nun, dass die uploader.exe einfach zu systemlastig ist. Sie benötigt teilweise 90% meiner CPU-Leistung (AMD Athlon 2200+ Prozessor). Und das ist eindeutig zu viel
meine Frage jetzt... was kann ich ändern, damit es resourcensparender abläuft. Hier der code von der uploader.exe . Wenn ihr noch die codes von den anderen 2 exen braucht dann sagt bescheit. Mich würde auch interessieren, was ich eventuel an sich unkomplizierter oder mit weniger aufwand ausführen könnte. Bin für jede konstruktive Kritik dankbar
. (Also bitte nicht einfach nur schreiben z.B. "Total unübersichtlich und schlecht gemacht". Mir ist wichtig, was "Profis" von dem ganzen halten, weil ich mich wirklich verbessern will.
ich habe es jetzt (auch mit eurer Hilfe



Code: Alles auswählen
#CSIDL_INTERNET = $1
#CSIDL_PROGRAMS = $2
#CSIDL_CONTROLS = $3
#CSIDL_PRINTERS = $4
#CSIDL_PERSONAL = $5
#CSIDL_FAVORITES = $6
#CSIDL_STARTUP = $7
#CSIDL_RECENT = $8
#CSIDL_SENDTO = $9
#CSIDL_BITBUCKET = $A
#CSIDL_STARTMENU = $B
#CSIDL_MYDOCUMENTS = $C
#CSIDL_MYMUSIC = $D
#CSIDL_MYVIDEO = $E
#CSIDL_DESKTOPDIRECTORY = $10
#CSIDL_DRIVES = $11
#CSIDL_NETWORK = $12
#CSIDL_NETHOOD = $13
#CSIDL_FONTS = $14
#CSIDL_TEMPLATES = $15
#CSIDL_COMMON_STARTMENU = $16
#CSIDL_COMMON_PROGRAMS = $17
#CSIDL_COMMON_STARTUP = $18
#CSIDL_COMMON_DESKTOPDIRECTORY = $19
#CSIDL_APPDATA = $1A
#CSIDL_PRINTHOOD = $1B
#CSIDL_LOCAL_APPDATA = $1C
#CSIDL_ALTSTARTUP = $1D
#CSIDL_COMMON_ALTSTARTUP = $1E
#CSIDL_COMMON_FAVORITES = $1F
#CSIDL_INTERNET_CACHE = $20
#CSIDL_COOKIES = $21
#CSIDL_HISTORY = $22
#CSIDL_COMMON_APPDATA = $23
#CSIDL_WINDOWS = $24
#CSIDL_SYSTEM = $25
#CSIDL_PROGRAM_FILES = $26
#CSIDL_MYPICTURES = $27
#CSIDL_PROFILE = $28
#CSIDL_SYSTEMX86 = $29
#CSIDL_PROGRAM_FILESX86 = $2A
#CSIDL_PROGRAM_FILES_COMMON = $2B
#CSIDL_PROGRAM_FILES_COMMONX86 = $2C
#CSIDL_COMMON_TEMPLATES = $2D
#CSIDL_COMMON_DOCUMENTS = $2E
#CSIDL_COMMON_ADMINTOOLS = $2F
#CSIDL_ADMINTOOLS = $30
#CSIDL_CONNECTIONS = $31
#CSIDL_COMMON_MUSIC = $35
#CSIDL_COMMON_PICTURES = $36
#CSIDL_COMMON_VIDEO = $37
#CSIDL_RESOURCES = $38
#CSIDL_RESOURCES_LOCALIZED = $39
#CSIDL_COMMON_OEM_LINKS = $3A
#CSIDL_CDBURN_AREA = $3B
#CSIDL_COMPUTERSNEARME = $3D
#CSIDL_FLAG_PER_USER_INIT = $800
#CSIDL_FLAG_NO_ALIAS = $1000
#CSIDL_FLAG_DONT_VERIFY = $4000
#CSIDL_FLAG_CREATE = $8000
#CSIDL_FLAG_MASK = $FF00
Structure EMID
cb.b
abID.b[1]
EndStructure
Procedure.s GetSystemFolder (folder)
*itemid.ITEMIDLIST = #Null
If SHGetSpecialFolderLocation_ (0, folder, @*itemid) = #NOERROR
location$ = Space (#MAX_PATH)
If SHGetPathFromIDList_ (*itemid, @location$)
ProcedureReturn location$
EndIf
EndIf
EndProcedure
#Intervall = 30000
Zeit = ElapsedMilliseconds()
InitNetwork()
folder$ = GetSystemFolder (#CSIDL_PERSONAL)
Repeat
If ReadFile(8, folder$ + Chr(92) + "exit.txt") = 0
If ElapsedMilliseconds() > Zeit + #Intervall
OpenFile(1, folder$ + Chr(92) + "name.txt")
name$ = ReadString(1)
OpenFile(3, folder$ + Chr(92) + "data.txt")
datei$ = ReadString(3)
If GetFileDate(folder$ + Chr(92) + name$, #PB_Date_Modified) = GetFileDate(datei$, #PB_Date_Modified)
Else
OpenFile(0, folder$ + Chr(92) +"ftp_adress.txt")
OpenFile(6, folder$ + Chr(92) + "Benutzer.txt")
OpenFile(7, folder$ + Chr(92) + "ftppw.txt")
OpenFTP(0, ReadString(0), ReadString(6),ReadString(7) )
CloseFile(0)
CloseFile(3)
CloseFile(5)
CloseFile(6)
CloseFile(7)
SendFTPFile(0, datei$, name$)
CloseFile(1)
CopyFile(datei$, folder$ + Chr(92) + name$)
EndIf
EndIf
Else
End
EndIf
ForEver