Kocnica CPU Usage !

1

Kocnica CPU Usage !

offline
  • Pridružio: 21 Jan 2004
  • Poruke: 416
  • Gde živiš: Indjija

Poceo sam da prepravljam jedan program (Izvorno kod sam skinuo sa net-a doduse dobro je ojadjen) I posle mesec dana mucnja uspeo sam da
zavrsim program naime o cemu se radi program blokira taskbar i sve sto mu se upise da treba da se blokira ugradio sam mu i antivirus program !
sve je savrseno ali kada ga pokrenem Bude mi jako veliki CUP Usage i nemogu nista drugo da radim dugo me vec muci taj problem! Onda sam predpostavio da program mora da vrti neki proces u pozadini pa sam pregledao code i provalio da ima dve komande Loop i neznam kako da ih zaobidjem ! (koja je zamena sta da stavim umesto njih a da program radi ?
Evo prve komande loop :

Private Sub Form_Load()
Dim hregkey As Long
Dim subkey As String
Dim stringbuffer As String
Dim retval
subkey = "Software\Microsoft\Windows\CurrentVersion\Run"

retval = RegOpenKeyEx(HKEY_CURRENT_USER, subkey, 0, _
KEY_WRITE, hregkey)
If retval <> 0 Then
Exit Sub
End If
stringbuffer = App.Path & "\" & "load.exe -quiet" & vbNullChar
retval = RegSetValueEx(hregkey, "RunDll2.0", 0, REG_SZ, _
ByVal stringbuffer, Len(stringbuffer))

RegCloseKey hregkey
Dim RET
On Error Resume Next
Call DisableCtrAltDel(True)
rtn = FindWindow("Shell_traywnd", "") 'get the Window
Call SetWindowPos(rtn, 0, 0, 0, 0, 0, SWP_HIDEWINDOW) 'hide the Tasbar
On Error Resume Next
Dim master1
Do Until EOF(1)
Open "c:\windows\master.ini" For Input As #1
Line Input #1, master1
List1.AddItem master1
List2.AddItem master1
Loop

Close
authenticate = False
RET = SetWindowPos(Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE)
Me.Hide
BLOCK_REGEDIT
BLOCK_TASKMAN
BLOCK_MENU
End Sub


Ako neko zna resenje bio bi mu veoma zahvalan .

Unapred Hvala



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 18 Apr 2003
  • Poruke: 8134
  • Gde živiš: U kesici gumenih bombona...

izbaci Open "c:\windows\master.ini" For Input As #1 izvan Do Loop petlje i probaj negde unutar petlje ubaciti naredbu DoEvents... ne znam kako ti to Open posle Do Loop i moze da radi posto mislim da ja tako nisam mogao napisati petlju, ali eto ocigledno da radi...

probaj sa ovakvim kodom

Open "c:\windows\master.ini" For Input As #1
Do While EOF(1)
DoEvents
Line Input #1, master1
List1.AddItem master1
List2.AddItem master1
Loop

kod mi i ovako izgleda normalno i tako bih ga i ja napisao tako da ne znam sta bi mogao biti problem, ako ovo ne resi problem... mozda neki drugi deo programa pravi toliki zastoj...



offline
  • Pridružio: 21 Jan 2004
  • Poruke: 416
  • Gde živiš: Indjija

@Snoop
Nevredi opet je CPU Usage veoma veliki 100% kao i ranije !

Jel imas vremena da mi pomognes ?

offline
  • Pridružio: 18 Apr 2003
  • Poruke: 8134
  • Gde živiš: U kesici gumenih bombona...

hmmm, ne znam sta bi onda moglo da bude...

mogu ja naci vremena, ali ne znam da li ti mogu pomoci...

offline
  • Pridružio: 21 Jan 2004
  • Poruke: 416
  • Gde živiš: Indjija

Ako zelis da ti posaljem izvorni kod programa ! pa ti pokusaj da ga sredis bio bi ti veoma zahvalan !

offline
  • Pridružio: 18 Apr 2003
  • Poruke: 8134
  • Gde živiš: U kesici gumenih bombona...

poslao sam ti mail na PP

offline
  • Pridružio: 25 Feb 2004
  • Poruke: 35
  • Gde živiš: BiH-RS

Ako hoces posalji mi izvorni kod na mail pa cu probati da ti pomognem.

offline
  • Pridružio: 25 Feb 2004
  • Poruke: 35
  • Gde živiš: BiH-RS

E ovako.

1. Kao prvo ovo sto ti je Snoop rekao je jedna greska. znaci kod mora da izgleda ovako:
Open "c:\windows\master.ini" For Input As #1 Do Until EOF(1) Line Input #1, master1 List1.AddItem master1 List2.AddItem master1 Loop
2. sta ti je ustvari "c:\windows\master.ini", taj fajl ne postoji.
Zauzece nastaje jer si stavio -On Error Resume Next-.
Detaljno:
Greska nastaje kod: Open "c:\windows\master.ini" For Input As #1, jer program ne moze
da nadje taj fajl, a ti si sa -On Error Resume Next- naredio programu da u slucaju
pojavljivanja greske nastavi dalje.
U tom slucaju petlja: "Do Until EOF(1)" nije ogranicena i procesor se stalno vrti u njoj
do beskonacnosti, zbog cega nastaje CPU Usage 100%.
Znaci dio koda:
On Error Resume Next Dim master1 Do Until EOF(1) Open "c:\windows\master.ini" For Input As #1 Line Input #1, master1 List1.AddItem master1 List2.AddItem master1 Loop Close
mora da izgleda ovako:
On Error GoTo Greska Dim master1 Open "c:\master.ini" For Input As #1 Do Until EOF(1) Line Input #1, master1 List1.AddItem master1 List2.AddItem master1 Loop Close Greska:.......
Program je lose koncipiran,mogao bi se smanjiti bar za duplo,
al to cu ti pomoci ako mi uspijes objasniti sta je "c:\windows\master.ini", jer
to nije windows-ov fajl niti sam nasao da ga tvoj program pravi.

offline
  • Pridružio: 18 Apr 2003
  • Poruke: 8134
  • Gde živiš: U kesici gumenih bombona...

ja sam primetio da ima dva on error resume next i izbrisao sam jedan, ali se opet desilo to isto.... kada sam izbrisao petlju, program se pokrenuo normalno...

u master.ini sigurno treba da zapisuje koje programe da 'zakljuca'

offline
  • Pridružio: 21 Jan 2004
  • Poruke: 416
  • Gde živiš: Indjija

@Sove
master.ini nisam znao kako da kazem programu da ga sam napravi pa ga ja napravim manuelno iz notpad-a ! On sluzi da kaze programu sta treba da blokira (da zabrani pristup) !

Ko je trenutno na forumu
 

Ukupno su 1336 korisnika na forumu :: 24 registrovanih, 8 sakrivenih i 1304 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: amaterSRB, babaroga, Cobi026, GandorCC, Georgius, Ivan001, JOntra, Litostroton, mile23, milutin134, MiroslavD, mrav pesadinac, nesa1962, ostoja, Posmatrac77OKB, ruma, S2M, sevenino, skvara, stegonosa, vandrej, vathra, Vlada1389, vladulns