728x90
반응형
1. 설명
- 현재 프로세스 정보
DWORD pid;
HANDLE hdl;
pid = GetCurrentProcessId();
hdl = OpenProcess(MAXIMUM_ALLOWED, FALSE, pid);
- 다른 프로세스 정보
HWND hWnd;
DWORD pid;
HANDLE hdl;
// 윈도우 이름으로 윈도우 핸들을 얻음.
hWnd = FindWindow(NULL, L"Window Name");
// hWnd의 pid값 구하기
GetWindowThreadProcessId(hWnd, &pid);
// 얻은 pid값으로 대상 프로세스의 핸들을 얻음.
hdl = OpenProcess(MAXIMUM_ALLOWED, FALSE, pid);
- 여러 프로세스 정보
#include "tlhelp32.h"
HANDLE hSnapShot = INVALID_HANDLE_VALUE;
PROCESSENTRY32 pe;
// 스냅샷
pe.dwSize = sizeof( PROCESSENTRY32 );
hSnapShot = CreateToolhelp32Snapshot( TH32CS_SNAPALL, NULL );
// 프로세스 목록의 끝까지 반복
Process32First(hSnapShot, &pe);
do
{
// PROCESSENTRY32 구조체를 이용하여 프로세스 정보 획득 가능
}
while(Process32Next(hSnapShot, &pe));
CloseHandle(hSnapShot);
2. PROCESSENTRY32 구조체
typedef struct tagPROCESSENTRY32 {
DWORD dwSize;
DWORD cntUsage;
DWORD th32ProcessID; // PID
ULONG_PTR th32DefaultHeapID;
DWORD th32ModuleID;
DWORD cntThreads; // 프로세스 내부의 쓰레드 개수
DWORD th32ParentProcessID; // 부모 프로세스 ID
LONG pcPriClassBase;
DWORD dwFlags;
TCHAR szExeFile[MAX_PATH]; // 프로세스 실행 경로
} PROCESSENTRY32, *PPROCESSENTRY32;
728x90
반응형
'프로그래밍 > Windows' 카테고리의 다른 글
[Windows] 리소스 드랍 (Win32API) (0) | 2015.08.31 |
---|---|
[Windows] 윈도우 버전 확인 (Win32API) (1) | 2015.08.23 |
[Windows] 프로세스/운영체제 비트 확인 (Win32API) (0) | 2015.08.23 |
[Windows] 파일열기 대화상자 (Win32API) (0) | 2015.08.22 |
[Windows] 관리자 권한 요구하기 (Win32API) (0) | 2015.08.22 |
[Windows] ATL90.dll, MSVCR90.dll 의존성 제거 (Win32API) (0) | 2015.08.21 |
댓글