컴퓨터에서 발생하는 로그들을 수집하는 업무를 맡게되어 정리를
위해 몇가지 예제코드를 정리한다.
1. 윈도우 이벤트로그
2. 시스템 정보
3. 현재 동작중인 프로세스
1. BCL 자체에 System.Diagnostics 에서 지원하며 Process.GetProcesses() 함수를 통해 동작중인 Process 배열을
반환 받는다.
2. 뿐만 아니라 프로세를 종료 하거나 시작하거나 지원하는 등의 메서드와 프로세스의 속성(정보)는 MSDN에서 확인
https://learn.microsoft.com/ko-kr/dotnet/api/system.diagnostics.process?view=net-7.0
소스코드 : https://github.com/ktn1075/study/tree/main/DevelopmentDiary/ProcessListGet
4. 현재 등록된 서비스
5. 드라이브 쿼리
6. 프린터 , 설치된 프린터 드라이버
1. BCL 자체에서 지원하는 설치된 프린터 이외의 프린터 드라이버를 가져 오는건 없어서
winspool.drv 내에 EnumPrinterDrivers 등록한다.
2. 해당 함수를 통해 가져올수 있는 프린터 정보는 레벨이 있으며 자기의 필요 레벨에 맞춰 구조체를 등록해준다.
https://learn.microsoft.com/ko-kr/windows/win32/printdocs/driver-info-1
3. EnumPrinterDrivers 호출 한다
BOOL EnumPrinterDrivers( _In_ LPTSTR pName, _In_ LPTSTR pEnvironment, _In_ DWORD Level, _Out_ LPBYTE pDriverInfo, _In_ DWORD cbBuf, _Out_ LPDWORD pcbNeeded, _Out_ LPDWORD pcReturned );
pname :
프린터 드라이버가 조되는 서버의 이름을 지정하는 null로 끝나는 문자열에 대한 포인터입니다.
※ null 인경우 로컬프린터를 조회한다.
pEnvironment [in] : 이 매개 변수가 NULL이면 함수는 호출자/클라이언트의 현재 환경(대상/서버가 아님)을 사용합니다.
※ all 인경우 플랫폼에 설치된 모든 프린터 조회
level : 받을 프린터 정보 레밸 구조체 결정
소스코드 : https://github.com/ktn1075/study/tree/main/DevelopmentDiary/PrinterInfo
7. 네트워크 상태
'프로그래밍 > C# .NET' 카테고리의 다른 글
제네릭 (0) | 2023.04.16 |
---|---|
C# Invoke, BeginInvoke (0) | 2023.04.02 |
BCL (1) (0) | 2023.03.25 |
시작하세요 C# 10 힙 (0) | 2023.03.21 |
백신프로젝트 - EICAR 전용백신 개발 (1) (0) | 2022.02.17 |