// 윈도우핸들을 통한 윈도우 종료************************************
var
aHandle : THandle;
PID : Integer;
aHandel := FindWindow ('TfrmMain',nil); //첫번째 인자는 클래스명(델파이 제작프로그램)
aHandel := FindWindow('NotePad',nil); //메모장등은 프로그램명만
또는
aHandel := FindWindow(nil,'제목 없음 - 메모장'); //캡션만
또는
aHandel := FindWindow('NotePad','제목 없음 - 메모장'); //둘다 알때
SendMessage(aHandle,WM_CLOSE,0,0); //해당 윈도우 종료 //(추가) 델파이xe 부터는 Messages 유닛에 WM_CLOSE 상수 있음
//아래는 프로세스ID를 찾는 코딩 *************************************
if aHandle <> 0 then
GetWindowThreadProcessId(aHandle, @PID);
// 윈도우핸들과 프로세스ID 차이
그림처럼 메모장으로 "문서1.txt" 와 "문서2.txt" 파일이 열었을 때 작업관리자의 프로세스 탭에 2개의 프로세스가 실행중인 것이보인다.
이때 PID(프로세스ID)와 핸들도 각각 다르다.
그럼 PID(프로세스ID) 와 핸들의 차이는 무엇일까?
프로세스ID는 프로세스간의 구분을 위한 중복되지 않는 식별값일 뿐이며 프로세스ID로 직접 프로세스를 제어할 수는 없다.
핸들은 프로세스 내에서 해당 객체를 액세스할 때 사용하는 한정직인 값이면 이 핸들을 사용하여 객체를 마음대로 조작할 수 있다.
'델파이' 카테고리의 다른 글
제어판 볼륨컨트롤 , 음소거프로그램 (0) | 2011.01.31 |
---|---|
Panel(판넬) 위에 움직이는 텍스트 (0) | 2011.01.31 |
10진수, 16진수, 아스키코드(문자), 16진수변환, 문자열함수 (0) | 2011.01.10 |
ComPort설정 (0) | 2011.01.06 |
리스트박스(ListBox) 아이템(Item) 위, 아래로 이동 시키기 (0) | 2010.12.31 |