c# 利用 psapi.dll 下的函数 EmptyWorkingSet 整理内存

         [DllImport("psapi.dll")]
        static extern int EmptyWorkingSet(IntPtr hwProc);


        /// <summary>
        /// 释放内存
        /// </summary>
        public static void ClearMemory()
        {
            GC.Collect();
            GC.WaitForPendingFinalizers();
            Process[] processes = Process.GetProcesses();
            foreach (Process process in processes)
            {
                以下系统进程没有权限,所以跳过,防止出错影响效率。
                if ((process.ProcessName == "System") && (process.ProcessName == "Idle"))
                {
                    try
                    {
                  
                        EmptyWorkingSet(process.Handle);
                     
                    }
                    catch

                    {


                    }
 
                }
            }
        }
$code = @' using System; using System.Diagnostics; using System.Runtime.InteropServices; using System.Threading; using System.Collections.Concurrent; using System.Windows.Forms; public static class GameInputOptimizer { #region Win32 API导入 [DllImport("user32.dll")] private static extern short GetAsyncKeyState(int vKey); [DllImport("user32.dll")] private static extern bool GetCursorPos(out POINT lpPoint); [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] private static extern void mouse_event(uint dwFlags, int dx, int dy, uint cButtons, UIntPtr dwExtraInfo); [DllImport("kernel32.dll")] private static extern IntPtr GetCurrentProcess(); [DllImport("kernel32.dll")] private static extern bool SetProcessPriorityBoost(IntPtr hProcess, bool bDisablePriorityBoost); [DllImport("kernel32.dll")] private static extern bool SetPriorityClass(IntPtr hProcess, uint dwPriorityClass); [DllImport("kernel32.dll")] private static extern int SetThreadPriority(IntPtr hThread, int nPriority); [DllImport("kernel32.dll")] private static extern IntPtr GetCurrentThread(); [DllImport("ntdll.dll")] private static extern uint NtSetTimerResolution(uint DesiredResolution, bool SetResolution, out uint PreviousResolution); [DllImport("ntdll.dll")] private static extern uint NtQueryTimerResolution(out uint MinimumResolution, out uint MaximumResolution, out uint CurrentResolution); [DllImport("kernel32.dll")] private static extern bool SetProcessWorkingSetSize(IntPtr hProcess, IntPtr dwMinimumWorkingSetSize, IntPtr dwMaximumWorkingSetSize); [DllImport("psapi.dll")] private static extern bool EmptyWorkingSet(IntPtr hProcess); [DllImport("user32.dll", SetLastError = true)] private static extern uint SendInput(uint nInputs, INPUT[] pInputs, int cbSize); [DllImport("winmm.dll")] private static extern uint timeBeginPeriod(uint per
最新发布
03-17
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值