Собрать системную информацию используя WinAPI функций - C#

Узнай цену своей работы

Формулировка задачи:

нужно собрать вот такую системную информацию системную информацию с помощью WinAPI функций Типы всех логических дисков Количество байт в секторе на каждом логическом диске Количество процессоров в системе Размер курсора Каталог Windows Качество цветопередачи (количество бит на цвет) То что у меня сейчас есть Количество байт в секторе на каждом логическом диске
while (i < drives.Length)         
           {              
                  g= GetDiskFreeSpace(drives[i], out a, out b, out c, out d);                 
                  if (g) { Console.WriteLine("Количество байт в секторе на диске {0}:" +' '+ b, drives[i]); Console.WriteLine("Размер свобоного дискового пространства на иске {0}:" +' '+ c * a * b, drives[i]); }
                  else  Console.WriteLine("Нет диска в дисководе {0}", drives[i]);             
               i++;               
           }
и размеры курсора
  Console.WriteLine("Ширина курсора "+GetSystemMetrics(13)+" пикселя");
           Console.WriteLine("Высота курсора " + GetSystemMetrics(14) + " пикселя");
           Console.WriteLine();
но этим кускам когда предшествовало
        [DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
        static extern bool GetDiskFreeSpace(string lpRootPathName,
           out uint lpSectorsPerCluster,
           out uint lpBytesPerSector,
           out uint lpNumberOfFreeClusters,
           out uint lpTotalNumberOfClusters);      
        [DllImport("user32.dll", EntryPoint = ("GetSystemMetrics"))]
        public static extern int GetSystemMetrics(int nIndex);
        [DllImport("Advapi32.dll", CharSet = CharSet.Unicode)]
        static extern int GetUserName(string lpBuffer, ref int nSize);
        [DllImport("gdi32.dll")]
        static extern int GetDeviceCaps(IntPtr hdc, int nIndex);
        [DllImport("user32.dll")]
        static extern IntPtr GetDC(IntPtr hWnd);
        [DllImport("gdi32.dll")]
        static extern IntPtr CreateDC(string lpszDriver, string lpszDevice,
           string lpszOutput, IntPtr lpInitData);
что я вообще почти не понимаю. понимаю что что то извлекается из библиотек Dll. Помогите пожалуйста разобраться с этим заранее благодарен

Решение задачи: «Собрать системную информацию используя WinAPI функций»

textual
Листинг программы
int GetSystemMetrics(int nIndex) {
    // тут исполняемый код
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.667 из 5
Похожие ответы