UO-Dev Arama


Tüm uo clientlerinde cpu reduce (cpu kullanımını düşürmek)

Yazar: Ercan
Tarih: 18-01-2012 16:30


Paylaş : Paylaş

her ne kadar bunun için uoloader dosyası olsada. aslında çok basit bi işlemdir, bunun için küçük bi döküman yazma gereği duydum. uoloader 64 bit sistemlerde sorun verebilir.

ultima clientlerinin kasmasının tek sebebi client çalıştığında peekmessage apisini çalışması ve bu apinin çalıştığı sürece windows mesajlarını kontrol etmesinden kaynaklanır. tabi binlerce message geldiginden api'nin onları işlemesi cpu'nun canına okur.

yapılması gereken tek şey peekmessage apisine hook atıp araya sleep eklemektedir...

örnek - delphi
Kod:
peekmessage apisinin user32.dll deki tam karşılığı = function PeekMessage(var lpMsg: TMsg; hWnd: HWND;
  wMsgFilterMin, wMsgFilterMax, wRemoveMsg: UINT): BOOL; stdcall;
********************************************************************************************************
apiye hook atmak için nette bi ton döküman bulabilirsiniz. ben size kısa örnek vericek gerisi sizin becerinize kalmış..

hook atılacak api oncelikle (değişken) olarak tanımlanır...

************
var
peekmessagehook : function (var lpMsg: TMsg; hWnd: HWND;
  wMsgFilterMin, wMsgFilterMax, wRemoveMsg: UINT): BOOL; stdcall;
************

sonra peek message client tarafından çağrıldıgında işlenecek kod bloğu yazılır...

**************
function PeekMessageproc(var lpMsg: TMsg; hWnd: HWND;
  wMsgFilterMin, wMsgFilterMax, wRemoveMsg: UINT): BOOL; stdcall;
begin
sleep(5); //sleep 5 yada 10 değeri yeterlidir. fazlası clienti dondurur !!!
result:=peekmessagehook(lpmsg,hwnd,wMsgFilterMin,wMsgFilterMax,wRemoveMsg); //burada ise clientteki peekmessage'nin işlemesine devam et dedik. bunu demesek client hata verecektir.
**************

geriye kaldı apimizi hooklamaya nette bi ton kod vardır ben sadece kullanımı aktarıcam...

*******************
apihook('user32.dll','PeekMessageA',@peekmessagehook,@peekmessageproc);
*******************

PeekMessageA - peekmessage apisi peekmessagea diye geçmektedir user32.dll de ve peekmessagew apiside vardır buda unicode karakterlerde kullanılır.


cpu reduce işlemi kısaca bu kadardır...

not: api hook ileri düzey bi işlemdir. yapacagınız yanlış işlemde sisteme ciddi zarar verebilirsiniz...



Yorumlar

1.   Gönderen xwerswoodx   01-02-2012 17:07    

Hiçbirşey anlamadım

2.   Gönderen Drolyn   05-02-2012 16:14    

programlama bilen ileri seviye kişiler içindir...

Oylamalar

Oylama :
Üyelerin oylama ortalaması (10 dışında) : 5.50   
Oylar: 2 den itibaren 28-01-2012 17:22

Benzer Sayfalar

SayfalarYorumlarGönderenTarih
Client 7.0.18.00TheRaskol25-01-2012
Client 7.0.13.40TheRaskol25-01-2012
Client 7.0.8.20TheRaskol25-01-2012
Client 7.0.6.40TheRaskol25-01-2012
Ultima Online Classic Client0Jada07-08-2011

Keywords:

ultima online, RunUO, ultima online download, sphere scripting, role play, uo grafik, second age ultima, uo loop, macroman, pvp server, server kurulumu, sphere, multool, ml mulls, 56b 55r 55i, htmlgumps, client 4x, client edit, sphere release, osi, rp server, sunucular, ghost mouse, inside uo, kingdom reborn, stygian abyss, uo nasıl oynanır, mondain's legacy, age of shadows, world build, grandmaster, ultima online pvp, player dosyaları, ultima online indir, frp game, RunUO 1.0.0, razor, uo rice, hue editör, skill tools, ultima online patch, axis, world build, verdata, verdata patcher, map editör, gump editör, mul patcher, aos mulls, scriptler, anim edit, anim publish, hues mul, hosting vps, event dialog, account sistemi, skill gain, static yapımı,