창조유저그룹-커즈닷컴
Window close
ID :     PASS :   
   
  처음으로
  창조
  창조 소개
창조 다운로드
CUGz.com 소개
온라인 도움말
  커뮤니티
  가입인사
자유게시판
Q/A게시판
TIP/TECH
열린강좌
자주하는질문
아이디어게시판
  자료실
  소스자료실
프로그램자료실
기타자료실
명예의 전당
이미지 자료실
  지원/기타
  표준용어재정
구글 웹서치  
관리자 전용


질문게시판
- 반드시 검색을 하신 후 원하는 답변을 찾을 수 없을 때, 질문을 올려주세요.


LIST ALL
Posted by 창조신화2009-02-21 16:43:30, Hit : 3641
질문입니다..박종훈님의 소스 및,,손상진님의 소스..
Homepage : http://user4u.nayana.com
Post URL : http://cugz.sjworks.net/bbs/zboard.php?id=qna&no=2103
먼저 박종훈님의프로세서 죽이기 소스 정말 좋아요 @@
명령어를 보니,,, 선택한 프로세스의 PID를 구해서 그 값으로반환해주는거같은데
맞는가요

제가 적용할려는게 프로세스에 있는 EXPLORER.EXE파일을 종료 할려고 하니
박종훈님 소스에는
리스트박스 형식에서 실행중인 프로세스를 선택하는 방식이더라구요.
그런데  PID가 EPLORER.EXE를 종료후 실행할때 마다다르게
나타나더라구요.(물론 이게 맞을수도있고 제가 잘못 본거일수도있습니다만..)

예를 들어 무조건 EPLORER.EXE만 종료되게 하고싶은데요
어떤식으로 해야 하나요?

그리고..손상진님의 소스 중에 객체 스크롤 소스가 있습니다.
정말 유용한 소스 인데요. 이 소스의 문제점은 새 창으로 만들면 처음엔
인식이 제대로 이루어 지더라구요.

그런데, 이 부분에 다른 작업들을 한후 다시 실행해보면/ 스크롤이 움직이지가
않습니다. 물론 밑판 부분도 높이가 변하지 않구요.

대체 뭐가 문제 인지 모르겠습니다. 처음에는 잘 되던게 왜 나중에는
안되는걸까요 @@ ㅠㅠ 이 두가지 때문에 현재 프로그램 개발에 진행이 안되고
있습니다.ㅠㅠ 특히나 객체 스크롤 같은 경우엔 문제가 있어서 작업을
포기하고 다시 시작했었는데 똑같은 상황이네요.ㅠㅠ 어떻게 해야 할까요.ㅠㅠ


박종훈   2009-02-21 PM 4:58:49  
넵, PID는 새로 실행할때마다 다르게 나올겁니다^^
explorer.exe을 죽인다고 할때, 윈도우에 있는 API중에서 실행파일이름으로 PID를 구할수 있는 API는 없습니다ㅠㅠ

그래서 지금 할수 있는 방법은,
반복문 돌리면서 하나하나 프로세스를 얻어오다가 explorer.exe를 발견하면 해당 PID로 죽이는 방법밖에 없습니다.
(다른 방법이 있을지도 모르지만, 제가 생각한 방법은 이렇습니다;)

지금 아래 소스를 이용하시는거죠?
http://cugz.sjworks.net/bbs/zboard.php?id=pds_sc&no=490

이 소스를 보시면 반복문 돌려가면서 프로세스와 PID를 구하는데요, 반복문 돌리다가 explorer.exe를 발견하면 PID를 구해서 탁 종료를 해주는거죠 ㅋㅋ
창조신화   2009-02-21 PM 5:18:18  
문자:프로세스,실행파일;
실수:스냅샷,성공,프로세스아이디;

프로세스:=구조체함수.구조체버퍼잡아(296);
//구조체를 만들기 위해 버퍼를 잡습니다.

스냅샷:=프로세스함수.CreateToolhelp32Snapshot(15,0);
//현재 프로세스들의 스냅샷을 잡습니다.

프로세스함수.Process32First(스냅샷,"프로세스");
//첫번째 프로세스를 구합니다.

리스트박스0.내용.지워;
리스트박스1.내용.지워;
//새로고침을 위해 리스트박스의 내용을 지웁니다.

반복 {

실행파일:=구조체함수.구조체값읽기(프로세스,36,260);
프로세스아이디:=구조체함수.큰정수를실수로(구조체함수.구조체값읽기(프로세스,8,12));
//구조체에서, 실행파일의 이름을 얻습니다.
성공:=프로세스함수.Process32Next(스냅샷,프로세스);
//다음 프로세스를 구합니다. (반환값은 반복문을 그치는데 사용됩니다.)

리스트박스0.내용.추가(실행파일);
리스트박스1.내용.추가(수를문(프로세스아이디));
//리스트박스에 프로세스(실행파일) 이름을 추가합니다.
//리스트박스에 프로세스아이디를 추가합니다.

만일(성공=0)
그쳐;
//반환값이 0이라면, 즉, 다음 프로세스가 없다면, 반복문을 중단합니다.

같이실행해;
//반복문에서 같이실행해를 해주면, 다른 작업을 함께 할수 있습니다.

} 까지(성공=0);

프로세스함수.CloseHandle(스냅샷);
//스냅샷 핸들을 닫습니다.

반복문의 소스가 이부분이던데요 @@
이부분에서 따로 explorer.exe라는 것을 지정해줄수있는 부분이
있는지요.

제가 처음 생각했었던 방식이 먼저 프로세스 와 pid를 다 구한뒤
리스트박스 상에서 explorer를 찾아서 그에 따른 pid를 가지고
사용할 생각이었는데 여러가지로 복잡하겠더라구요. 반응도 좀
느릴것 같구... 흐음,,, 소스는 보고있어도 답이 안나오는군요 @@
박종훈   2009-02-21 PM 7:20:34  
지금 위의 소스에서 반복문 보이시죠?
[반복] 이라고 된 부분이요~

거기서 보면, [리스트박스0.내용.추가(실행파일);] 이라는 부분이 있잖아요?
즉, [실행파일] 이라는 변수에 구해낸 프로세스의 파일명이 들어가는 부분이죠^^
그래서, 조건문으로 실행파일명이 explorer.exe 인지 확인하고 [프로세스아이디] 라는 변수에는 PID가 들어가니까, 이걸 이용해서 종료를 하는거죠~
창조신화   2009-02-21 PM 8:13:17  
그렇군요^^ 박종훈님 감사합니다.
일단 한번 해봐야겠네여 ^^
박종훈   2009-02-22 AM 12:12:16  
소스자료실에 예제 올려드렸습니다^^
창조신화   2009-02-22 AM 3:37:22  
박종훈님~ 소스 를 받아서 봤는데요!
적용할려니 반복 때문에 루프 빠져서.. 뭐가 문제인가요?

문자: 프로세스구조체;
실수: 스냅샷, 성공;

문자 :프로세스파일명;
실수: 프로세스아이디, 프로세스핸들;
실수: 죽인결과;

창0.프로세스함수.연결여부 := 참;

프로세스구조체 :=창0.구조체함수.구조체버퍼잡아(296);
스냅샷 :=창0.프로세스함수.CreateToolhelp32Snapshot(15, 0);

창0.프로세스함수.Process32First(스냅샷, 프로세스구조체);

반복 {

프로세스파일명 := 파일명추출(창0.구조체함수.구조체값읽기(프로세스구조체, 36, 260));
프로세스파일명 :=창0.구조체함수.널로잘라(프로세스파일명);
프로세스아이디 :=창0.구조체함수.큰정수를실수로(창0.구조체함수.구조체값읽기(프로세스구조체, 8, 12));

성공 :=창0.프로세스함수.Process32Next(스냅샷, 프로세스구조체);

만일(프로세스파일명 = 창0.에디트4.문자)
프로세스핸들 :=창0.프로세스함수.OpenProcess(1, 0, 프로세스아이디);
죽인결과 :=창0.프로세스함수.TerminateProcess(프로세스핸들, 1);
창0.프로세스함수.CloseHandle(프로세스핸들);
} 까지(성공 = 0);
만일(성공 = 0) 그쳐;
같이실행해;


창0.프로세스함수.CloseHandle(스냅샷);

현재 제 소스거든요. 반복 부분하고 까지 부분을 좀
손봐야할꺼같은데 뭐가 문제인지 모르겠네요.
버튼을 누르면, 무한 빠져서 응답없음이 나오네요.

문자창보여
창조신화   2009-02-22 AM 3:38:04  
헉,, 문자창 보여 부분을 제가 없앴습니다만,,,
그 부분에서 뭘 잘못 건드렸나 싶기도 하구요 !!
어떻게 해야 할지를 모르겠네요.
박종훈   2009-02-22 AM 11:03:49  
만일(성공 = 0) 그쳐;
같이실행해;

위 부분이 반복문 안에 들어가야 할것 같아요~
천호성   2009-02-22 PM 9:24:42  
종훈님 말씀대로 해도, 역시 무한루프에 빠지는군요 @.@
정말 웃긴게, 따로 프로그램을 실행하면 괜찮은데 제가 직접 만든
프로그램에 소스를 넣구 실행하면 그렇네요.@@~
대략 난감!!
LIST ALL               GO TO THE TOP


N
Category
   Subject
Posted by
Date
H
창조
   질문입니다..박종훈님의 소스 및,,손상진님의... [9]
창조신화 2009/02/21  3641
1980 창조
   스크롤바 객체 사용 질문. [3]
창조신화 2009/02/15  3550
1979 창조
   레지스틜 관련 질문.ㅡㅡ^ [1]
창조신화 2007/03/15  4239
1978 창조
   현재 실행중인파일들은 어떻게나타나죠? [4]
창조신화 2003/01/22  3430
1977 창조
   리스트박스 관련질문있습니다.
창조신화 2003/01/14  3146
1976 창조
   두번째 질문 또 있습니다.[파일관련] [3]
창조신화 2003/01/13  2998
1975 창조
   마우스 관련 질문입니다.
창조신화 2003/01/13  3297
1974 창조
   질문있습니다. 눈금계관련. [5]
창조신화 2003/01/11  3479
1973 창조
   이 소스있으신분 올려주세요. [2]
창조신화 2002/12/08  4222
1972 창조
   [질문]창조0.9b사용자 보세요. [1]
창조신화 2002/12/04  3801
1971 창조
   간단한 창 질문입니다. [11]
창조신화 2002/12/01  3860
1970 창조
   API관련 질문입니다... [4]
창조신화 2002/11/22  4194
1969 창조
     [re] 이게 모냐면요^^ [1]
창조신화 2002/11/17  3638
1968 창조
   리스트박스 관련 질문. [1]
창조신화 2002/10/22  3684
1967 창조
     [re] 안냐세요 또 와써요 ; [2]
창조신화 2002/09/21  4034
1966 창조
     [re] 저기....실행어에...
창조신화 2002/09/21  4594
1965 창조
     [re] 창조에서 dll파일을 도대체 어떻게 쓰나요?
창조신화 2002/09/20  6912
1964 창조
     [re] 창조에 관한 질문이 있습니다. 꼭 답변부탁..
창조신화 2002/09/16  4688
1963 창조
     [re] 감사합니다. 잘사용하겠습니다
창조사랑 2002/11/05  3523
1962 창조
   [질문] 수단위 표시에 대한 질문입니다. [1]
창조사랑 2002/11/05  3690
1961 기타
   창조 만드신 분은 어디에 있죠? [2]
창조메냐 2002/11/10  3536
1960 창조
   [질문]'['키를 눌렀을때 적용되는 이벤트에서,,,
창조맨 2003/07/18  3216
1959 창조
   김환욱님 보시길.. [2]
창조나라 2002/11/21  3383
1958 창조
   [질문] 리스트비교
창조나라 2002/11/19  3365
1957 창조
   [질문]환경문에서.. [5]
창조ⓕⓐⓝ 2003/02/03  3570
LIST ALL   Prev [1][2][3][4][5][6][7] 8 [9][10]..[87] Next
Copyright 1999-2024 Zeroboard / skin by reedyfox in miniwini style
로그인
지우개 Expert 3.0
제작자 : 천호성 님 [LINK]
로그인
대박로또2005
제작자 : 최재일 님 [LINK]
로그인
1박종훈15292 점
2지상현8809 점
3손상진7388 점
4권선중6060 점
5이진백5174 점
로그인
가입일닉네임
05/31김동률
03/31홍형기
09/01o00pp99oo
12/27이재민
11/20이희철
로그인