본문 바로가기
C#/- Toy projects

[winform] 시스템 상태(드라이브, CPU, 메모리) 조회

by 고고 뜌지 2021. 1. 19.

안녕하세요~ 고고뜌지입니다.😊

 

오늘 포스팅은 '시스템 상태 조회 프로그램' 입니다. 

개발환경은 Winform 입니다.


<목표>

    1. CPU / 메모리 실시간 조회

    2. 드라이브 조회 

    3. 바탕화면 파일 자동으로 옮김 

 

'시스템 상태 조회 프로그램' 작동 동영상 입니다.

<개발기록>

    1. CircularProgressBar 

         a. 프로젝트에 추가

             (1) 솔루션용 NuGet 패키지 관리(N) 을 선택합니다.

             (2) CircularProgressBar를 설치합니다.

             (2) 설치된 CircularProgressBar를 용도에 맞게 사용합니다.

         b. 사용한 속성

             - CircularProgressBar.Maxmum = (int)값      // 최대값 설정

             - CircularProgressBar.Value      = (int)값      // 진행값 설정

             - CircularProgressBar.Text        = (string)값  // 중간에 text 넣기       

 

 

    2. System.IO 

       - 로컬 pc 의 파일 / 디렉토리 / 드라이브 에 접근가능하게 해주는 클래스 입니다.

       - 로컬 파일을 접근할때 유용한 클래스 임 

         a. File 클래스 

             - 파일에 대한 만들기, 복사, 삭제, 이동 및 열기를 위한 정적 메서드를 제공

         b. Directory 클래스 

             - 디렉터리와 하위 디렉터리에서 만들기, 이동 및 열거를 위한 정적 메서드를 노출합니다.

         c. DriveInfo 클래스 

             - 드라이브 정보에 액세스합니다.

             (1) 유용한 메서드 

                  - DriveInfo[] Drv = DriveInfo.GetDrives();  // 로컬 드라이브 인식 

                  - // 로컬 드라이브 내의 디렉토리 파일명을 arraylist 형식으로 받아옴

                    foreach (var Dir in Drv) 

                    {

                        if (Dir.Name == "C:/")

                        {

                            Var directory = Dir.RootDirectory.Name.ToList();

                         }

                     }

 

    3. 메모리 값 들고오기

ManagementClass cls = new ManagementClass("Win32_OperatingSystem");
ManagementObjectCollection mos = cls.GetInstances();
foreach (ManagementObject n in mos)
{
    int Ram_tot = int.Parse(n["TotalVisibleMemorySize"].ToString())    //총 메모리 사이즈 
    int Ram_ing = int.Parse(n["FreePhysicalMemory"].ToString())        // 현재 사용중인 메모리 
}

    4. CPU 값 들고오기

Using System.Diagnostics

PerformanceCounter Cpu = new PerformanceCounter("Processor", "% Processor Time", "_Total", true); 
int cpu_num = Convert.ToInt32(Cpu.NextValue());  //현재 값 (퍼센트)

 

 

<개선점>

    1. 메모리, CPU 값을 같은 클래스로 들고오는 법 

       - PerformanceCounter 클래스로 메모리 현재 값을 들고오는 법은 있지만 총 메모리 들고오는 법은 모름 

 


<소스>

02. 시스템 상태.zip
0.73MB

<실행파일>

실행파일.zip
0.04MB

 

'C# > - Toy projects' 카테고리의 다른 글

[WPF] 간단한 MBTI 검사기  (0) 2021.02.26
[WPF] HELLO WORLD  (0) 2021.02.25
[winform] 바코드 생성기  (0) 2021.01.25
[winform] 피아노  (0) 2021.01.20
[winform] 계산기  (2) 2021.01.12

댓글