Как избежать зависания программы при длительных операциях - VB
Формулировка задачи:
Что мне сделать что б окно во время выполнения не висло ( все buttons не активны, визуально висит, но сама программа выполняет все нужние действия). Дело в том что в программе присутствует огромный цикл по проверке
Что мне сделать что б она не глючила???
Решение задачи: «Как избежать зависания программы при длительных операциях»
textual
Листинг программы
DoEvents nextItem: basar = adress(versiya) + i hndl = OpenProcess(PROCESS_VM_READ, True, ProcessID) MemoryID = ReadProcessMemory(hndl, ByVal basar, ByVal VarPtr(MyBuffer(0)), sz, WBytes) CloseHandle (hndl) Values = Hex(MyBuffer(0)) & Hex(MyBuffer(1)) & Hex(MyBuffer(2)) If Values = metka(versiya) Then parol = "" i = i + 1094 sz = 16 basar = adress(versiya) + i hndl = OpenProcess(PROCESS_VM_READ, True, ProcessID) MemoryID = ReadProcessMemory(hndl, ByVal basar, ByVal VarPtr(MyBuffer(0)), sz, WBytes) CloseHandle (hndl) For n = 0 To 15 If MyBuffer(n) = 0 Then n = 15 Else Text1.Text = Text1.Text & Chr(MyBuffer(n)) End If Next n If Text1.Text = "" Or Len(Text1.Text) > 15 Then Text1.Text = "" GoTo nextItem Else List1.AddItem (Text1.Text) removeEnable Exit Sub End If End If If i <= 70000000 Then progress = i ProgressBar1.Value = (progress / 70000000) * 100 Else Exit Sub End If If Hex(MyBuffer(1)) = "DC" Then i = i + 1 GoTo nextItem End If If Hex(MyBuffer(2)) = "DC" Then i = i + 2 GoTo nextItem End If If Hex(MyBuffer(3)) = "DC" Then i = i + 3 GoTo nextItem End If If Hex(MyBuffer(4)) = "DC" Then i = i + 4 GoTo nextItem End If If Hex(MyBuffer(5)) = "DC" Then i = i + 5 GoTo nextItem End If If Hex(MyBuffer(6)) = "DC" Then i = i + 6 GoTo nextItem End If If Hex(MyBuffer(7)) = "DC" Then i = i + 7 GoTo nextItem End If If Hex(MyBuffer(8)) = "DC" Then i = i + 8 GoTo nextItem End If If Hex(MyBuffer(9)) = "DC" Then i = i + 9 GoTo nextItem End If If Hex(MyBuffer(10)) = "DC" Then i = i + 10 GoTo nextItem End If If Hex(MyBuffer(11)) = "DC" Then i = i + 11 GoTo nextItem End If If Hex(MyBuffer(12)) = "DC" Then i = i + 12 GoTo nextItem End If If Hex(MyBuffer(13)) = "DC" Then i = i + 13 GoTo nextItem End If If Hex(MyBuffer(14)) = "DC" Then i = i + 14 GoTo nextItem End If If Hex(MyBuffer(15)) = "DC" Then i = i + 15 GoTo nextItem End If i = i + 16 GoTo nextItem
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д