الموقع العربي الاول للعبة Silkroad Online

الموقع العربي الاول للعبة Silkroad Online (https://silkroad4arab.com/vb/index.php)
-   قـسـم الاسـئـلـه و الاسـتـفـسـارات حـول الـلـعـبـة (https://silkroad4arab.com/vb/forumdisplay.php?f=13)
-   -   لتقليل ضغط Sroking على الرام (https://silkroad4arab.com/vb/showthread.php?t=382494)

BlackWizard 31-08-2011 09:56 PM

لتقليل ضغط Sroking على الرام
 
السلام عليكم ورحمة الله وبركاته

النهاردة لقيت الموضوع دا بالصدفة لتقليل الضغط على الرام وكان مكتوب فى موقع Sroking وموقع Rev6

دا للمعالج x64

كود:

While 1
        $v_SroProcesses = ProcessList("sro_client.exe")
        For $i = 1 To $v_SroProcesses[0][0]
                $v_ProcInfo = ProcessGetStats($v_SroProcesses[$i][1])
                        If IsArray($v_ProcInfo) Then
                                If ($v_ProcInfo[0] / 1024 >= 100000) Then _SM_CleanRam($v_SroProcesses[$i][1])
                        EndIf
                Next
                Sleep(5*60000) ;It will release ram once every 5 minutes you can change this to whatever you like
WEnd

Func _SM_CleanRam($v_ProcessPID)
        If @OSArch <> "X86" Then
                Local $h_ProcHandle = DllCall("kernel32.dll", 'int', 'OpenProcess',  'int', BitOR(0x0400, 0x0100), 'int', False, 'int', $v_ProcessPID)
                $v_Return = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', $h_ProcHandle[0])
                DllCall('kernel32.dll', 'int', 'CloseHandle', 'int', $h_ProcHandle[0])
                Return $v_Return
        EndIf
        Return 0
EndFunc


ودا للمعالج X32 (86bit

كود:

While 1
    $v_SroProcesses = ProcessList("sro_client.exe")
    For $i = 1 To $v_SroProcesses[0][0]
        $v_ProcInfo = ProcessGetStats($v_SroProcesses[$i][1])
            If IsArray($v_ProcInfo) Then
                If ($v_ProcInfo[0] / 1024 >= 100000) Then _SM_CleanRam($v_SroProcesses[$i][1])
            EndIf
        Next
        Sleep(5*60000) ;It will release ram once every 5 minutes you can change this to whatever you like
WEnd

Func _SM_CleanRam($iPID = -1)
    If $iPID <> -1 Then
        Local $hHandle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $iPID)
        Local $hReturn = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', $hHandle[0])
        DllCall('kernel32.dll', 'int', 'CloseHandle', 'int', $hHandle[0])
    Else
        $hReturn = DllCall("psapi.dll", 'int', 'EmptyWorkingSet', 'long', -1)
    EndIf
    Return $hReturn[0]
EndFunc  ;==>_SM_CleanRam

والطريقة اننا نعمله سكريبت ببرنامج Auto It

http://www.autoitscript.com/site/autoit/

ودول سكريبتات انا جربت اعملهم دلوقتى
x64
http://www.mediafire.com/?ierwewu1bx68kqo
x32
http://www.mediafire.com/?7q2bfhu144d4lkh


المصدرين
http://www.sroking.com/ipb/index.php?showtopic=33971
http://www.rev6.com/forum/showthread...ther-Processes



وارجو من مشرف الفحص التاكد من الطريقة اذا كانت سليمة ام لا؟ وارجو التاكد من الملفات التى رفعتها

تحياتى

Solitaires 31-08-2011 10:00 PM

تمام و جارى التجربة

ThehoTLine 01-09-2011 02:12 AM

CleaN
:mf_wave:

™_MIZ0_™ 01-09-2011 02:13 AM

تسلم

بس دا اعمل بية اية؟؟

BlackWizard 01-09-2011 02:24 AM

اقتباس:

المشاركة الأصلية كتبت بواسطة X_MIZO_X (المشاركة 3798838)
تسلم

بس دا اعمل بية اية؟؟

دا يا غالى تنزل برنامج auto it وتسطبه وبعدها تحمل الملف الخاص بالويندوز بتاعك X64او X32 وتشغله ودا هيقلل استهلاك اللعبة للرام

Abdo Yuri 01-09-2011 02:35 AM

تسلم يا جميييل :pepsi:

™_MoameN_™ 01-09-2011 03:18 AM

شكـراً :) :wink_smilie:


الساعة الآن 10:38 AM.

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2024, vBulletin Solutions, Inc.