그래서 감시프로그램을 만들어서 종료된 프로그램을 자동으로 실행하는걸 만들고 싶네요. -------------------------------------
1.리스트목록에 원하는 프로그램 이름이나 경로등을 추가합니다. 2.원하는프로그램등을실행 (자동런쳐) 3.일정시간마다 리스트목록에 추가한 프로그램이름이나 경로등을 작업표시줄에서 실행중인 프로그램을 비교 4.리스트목록에 없는 프로그램을 실행
제발좀 도와주세요.... 꼭 필요한거라서요.... 이거 못 만들면 밤에 잠을 못잡니다.
지상현 2011-12-26 AM 8:41:29
생각하신 것처럼 프로그램 목록을 구해 비교해서 알아내는 것이 부정확할 가능성도 높고 난이도도 높습니다.
오히려, 자기가 실행한 프로그램 하나가 살아있는지 검사하는 방법이 더 간단합니다.
이 부분은 창조와는 관계 없는, Windows의 동작과 관련된 부분이므로 Api를 소개해드립니다.
1) CreateProcess로 프로그램을 실행하면 프로그램의 pid 또는 프로세스 핸들을 얻을 수 있습니다.
만약 다른 방법으로 실행하더라도 그 프로그램의 pid를 얻을 수 있다면 굳이 CreateProcess를 쓰지 않아도 됩니다. (이 Api는 인자가 많고 사용 방법이 복잡하기 때문에 창조로 쓰기가 쉽지 않습니다)
2) 위에서 프로세스 핸들을 바로 얻었다면 상관 없지만, pid만을 알고 있는 경우에는 OpenProcess를 이용하여 프로세스 핸들을 얻을 수 있습니다.
3) 어떤 방법으로든 프로세스 핸들을 구하면, WaitForSingleObject 등의 wait 함수를 써서 프로세스가 살아있는지 확인할 수 있고, 대기하게 할 수 있습니다.