• Начинающий хакер, спасибо что зашёл к нам! Для полного удобства рекомендуем Вам сразу же зарегистрироваться. Помните, необходимо придумать сложный пароль к своему логину, в котором будут присутствовать цифры, а так же символы. После регистрации вы сможете пользоваться чатом. Так же не забудьте активировать аккаунт через письмо, высланное вам на почту ! Администрация заботится о каждом из Вас...
  • Для просмотра разделов из категории Private Informations & Programms необходимо купить

Класс для памяти C#

Статус
В этой теме нельзя размещать новые ответы.

AngelOfLove

Латентный кодер
Топовый

AngelOfLove

Латентный кодер
Топовый
Регистрация
21 Фев 2017
Сообщения
219
Реакции
74
Баллы
3
[HIDE]
Код:
public static class MemoryInfo
{
        [DllImport("psapi.dll", SetLastError = true)]
        [return: MarshalAs(UnmanagedType.Bool)]
        public static extern bool GetPerformanceInfo(
            [Out] out PerformanceInformation PerformanceInformation,
            [In] int Size);
 
        public static RAM GetValues()
        {
            var ram = new RAM();
            var pi = new PerformanceInformation();
            if (GetPerformanceInfo(out pi, Marshal.SizeOf(pi)))
            {
                ram.CommitLimit =
                    Convert.ToInt64(pi.CommitLimit.ToInt64()*
                                    pi.PageSize.ToInt64());
                ram.CommitPeak =
                    Convert.ToInt64(pi.CommitPeak.ToInt64()*
                                    pi.PageSize.ToInt64());
                ram.CommitTotal =
                    Convert.ToInt64(pi.CommitTotal.ToInt64()*
                                    pi.PageSize.ToInt64());
                ram.KernelNonPaged =
                    Convert.ToInt64(pi.KernelNonPaged.ToInt64()*
                                    pi.PageSize.ToInt64());
                ram.KernelPaged =
                    Convert.ToInt64(pi.KernelPaged.ToInt64()*
                                    pi.PageSize.ToInt64());
                ram.KernelTotal =
                    Convert.ToInt64(pi.KernelTotal.ToInt64()*
                                    pi.PageSize.ToInt64());
                ram.PageSize = Convert.ToInt64(pi.PageSize.ToInt64());
                ram.PhysicalAvailable =
                    Convert.ToInt64(pi.PhysicalAvailable.ToInt64()*
                                    pi.PageSize.ToInt64());
                ram.PhysicalTotal =
                    Convert.ToInt64(pi.PhysicalTotal.ToInt64()*
                                    pi.PageSize.ToInt64());
                ram.ProcessCount = pi.ProcessCount;
                ram.SystemCache =
                    Convert.ToInt64(pi.SystemCache.ToInt64()*
                                    pi.PageSize.ToInt64());
                ram.ThreadCount = pi.ThreadCount;
                ram.HandlesCount = pi.HandlesCount;
                ram.PhysicalAvailableAsPercent = ram.PhysicalAvailable/
                                         (float) ram.PhysicalTotal*100.0f;
                ram.CommitLimitAsPercent = ram.CommitLimit /
                                        (float)ram.PhysicalTotal * 100.0f;
                ram.CommitPeakAsPercent = ram.CommitPeak /
                                        (float)ram.PhysicalTotal * 100.0f;
                ram.CommitTotalAsPercent = ram.CommitTotal /
                                        (float)ram.PhysicalTotal * 100.0f;
            }
            return ram;
        }
        public static int GetThreadCount()
        {
            var pi = new PerformanceInformation();
            if (GetPerformanceInfo(out pi, Marshal.SizeOf(pi)))
            {
                return pi.ThreadCount;
            }
            return -1;
        }
        public static int GetProcessCount()
        {
            var pi = new PerformanceInformation();
            if (GetPerformanceInfo(out pi, Marshal.SizeOf(pi)))
            {
                return pi.ProcessCount;
            }
            return -1;
        }
        public static int GetHandlesCount()
        {
            var pi = new PerformanceInformation();
            if (GetPerformanceInfo(out pi, Marshal.SizeOf(pi)))
            {
                return pi.HandlesCount;
            }
            return -1;
        }
        public static long GetPageSize()
        {
            var pi = new PerformanceInformation();
            if (GetPerformanceInfo(out pi, Marshal.SizeOf(pi)))
            {
                return
                    Convert.ToInt64(pi.PageSize.ToInt64()*pi.PageSize.ToInt64());
            }
            return -1;
        }
        public static long GetKernelNonPaged()
        {
            var pi = new PerformanceInformation();
            if (GetPerformanceInfo(out pi, Marshal.SizeOf(pi)))
            {
                return
                    Convert.ToInt64(pi.KernelNonPaged.ToInt64()*
                                    pi.PageSize.ToInt64());
            }
            return -1;
        }
        public static long GetKernelPaged()
        {
            var pi = new PerformanceInformation();
            if (GetPerformanceInfo(out pi, Marshal.SizeOf(pi)))
            {
                return
                    Convert.ToInt64(pi.KernelPaged.ToInt64()*
                                    pi.PageSize.ToInt64());
            }
            return -1;
        }
        public static long GetKernelTotal()
        {
            var pi = new PerformanceInformation();
            if (GetPerformanceInfo(out pi, Marshal.SizeOf(pi)))
            {
                return
                    Convert.ToInt64(pi.KernelTotal.ToInt64()*
                                    pi.PageSize.ToInt64());
            }
            return -1;
        }
        public static long GetSystemCache()
        {
            var pi = new PerformanceInformation();
            if (GetPerformanceInfo(out pi, Marshal.SizeOf(pi)))
            {
                return
                    Convert.ToInt64(pi.SystemCache.ToInt64()*
                                    pi.PageSize.ToInt64());
            }
            return -1;
        }
        public static long GetCommitLimit()
        {
            var pi = new PerformanceInformation();
            if (GetPerformanceInfo(out pi, Marshal.SizeOf(pi)))
            {
                return
                    Convert.ToInt64(pi.CommitLimit.ToInt64()*
                                    pi.PageSize.ToInt64());
            }
            return -1;
        }
        public static long GetAvailableMemory()
        {
            var pi = new PerformanceInformation();
            if (GetPerformanceInfo(out pi, Marshal.SizeOf(pi)))
            {
                return
                    Convert.ToInt64(pi.PhysicalAvailable.ToInt64()*
                                    pi.PageSize.ToInt64());
            }
            return -1;
        }
        public static long GetTotalMemory()
        {
            var pi = new PerformanceInformation();
            if (GetPerformanceInfo(out pi, Marshal.SizeOf(pi)))
            {
                return Convert.ToInt64(pi.PhysicalTotal.ToInt64()*pi.PageSize.ToInt64());
            }
            return -1;
        }
        public static long GetCommitCharge()
        {
            var pi = new PerformanceInformation();
            if (GetPerformanceInfo(out pi, Marshal.SizeOf(pi)))
            {
                return
                    Convert.ToInt64(pi.CommitTotal.ToInt64()*
                                    pi.PageSize.ToInt64());
            }
            return -1;
        }
        public static long GetPeakCommitCharge()
        {
            var pi = new PerformanceInformation();
            if (GetPerformanceInfo(out pi, Marshal.SizeOf(pi)))
            {
                return
                    Convert.ToInt64(pi.CommitPeak.ToInt64()*
                                    pi.PageSize.ToInt64());
            }
            return -1;
        }
 
        public static ulong GetTotalMemoryEx()
        {
            var CI = new ComputerInfo();
            return CI.TotalPhysicalMemory;
        }
    
        public static ulong GetFreeRAM()
        {
            var CI = new ComputerInfo();
            return CI.AvailablePhysicalMemory;
        }
        [StructLayout(LayoutKind.Sequential)]
        public struct PerformanceInformation
        {
            public int Size;
            public IntPtr CommitTotal;
            public IntPtr CommitLimit;
            public IntPtr CommitPeak;
            public IntPtr PhysicalTotal;
            public IntPtr PhysicalAvailable;
            public IntPtr SystemCache;
            public IntPtr KernelTotal;
            public IntPtr KernelPaged;
            public IntPtr KernelNonPaged;
            public IntPtr PageSize;
            public int HandlesCount;
            public int ProcessCount;
            public int ThreadCount;
        }
        public struct RAM
        {
            public long CommitLimit;
            public float CommitLimitAsPercent;
            public long CommitPeak;
            public float CommitPeakAsPercent;
            public long CommitTotal;
            public float CommitTotalAsPercent;
            public int HandlesCount;
            public long KernelNonPaged;
            public long KernelPaged;
            public long KernelTotal;
            public long PageSize;
            public long PhysicalAvailable;
            public float PhysicalAvailableAsPercent;
            public long PhysicalTotal;
            public int ProcessCount;
            public long SystemCache;
            public int ThreadCount;
        }
        public struct SYSTEM_PERFORMANCE_INFORMATION
        {
            public int AvailablePages;
            public int CacheRead;
            public int CacheReadIos;
            public int CacheTransitionFaults;
            public int CommitLimit;
            public int CommittedPages;
            public int ContextSwitches;
            public int CopyOnWriteFaults;
            public int CopyReadNoWait;
            public int CopyReadNoWaitMiss;
            public int CopyReadWait;
            public int CopyReadWaitMiss;
            public int DataFlushes;
            public int DataPages;
            public int DemandZeroFaults;
            public int FastMdlReadNotPossible;
            public int FastMdlReadNoWait;
            public int FastMdlReadResourceMiss;
            public int FastMdlReadWait;
            public int FastReadNotPossible;
            public int FastReadNoWait;
            public int FastReadResourceMiss;
            public int FastReadWait;
            public int FirstLevelTbFills;
            public int FreeSystemPtes;
            public long IdleTime;
            public int IoOtherOperationCount;
            public long IoOtherTransferCount;
            public int IoReadOperationCount;
            public long IoReadTransferCount;
            public int IoWriteOperationCount;
            public long IoWriteTransferCount;
            public int LazyWriteIos;
            public int LazyWritePages;
            public int MapDataNoWait;
            public int MapDataNoWaitMiss;
            public int MapDataWait;
            public int MapDataWaitMiss;
            public int MappedFilePagesWritten;
            public int MappedFilePageWriteIos;
            public int MdlReadNoWait;
            public int MdlReadNoWaitMiss;
            public int MdlReadWait;
            public int MdlReadWaitMiss;
            public int NonPagedPoolAllocs;
            public int NonPagedPoolFrees;
            public int NonPagedPoolUsage;
            public int PagedPoolAllocs;
            public int PagedPoolFrees;
            public int PagedPoolPages;
            public int PagedPoolUsage;
            public int PageFaults;
            public int PagefilePagesWriteIos;
            public int PagefilePagesWritten;
            public int PagesRead;
            public int PagesReadIos;
            public int PeakCommitment;
            public int PinMappedDataCount;
            public int PinReadNoWait;
            public int PinReadNoWaitMiss;
            public int PinReadWait;
            public int PinReadWaitMiss;
            public int ReadAheadIos;
            public int Reserved3;
            public int SecondLevelTbFills;
            public int SmallNonPagedPoolLookasideListAllocateHits;
            public int SmallPagedPoolLookasideAllocateHits;
            public int SystemCachePages;
            public int SystemCalls;
            public int SystemCodePages;
            public int SystemDriverPages;
            public int TotalSystemCodePages;
            public int TotalSystemDriverPages;
            public int TransitionFaults;
        }
    }
[/HIDE]
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу