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


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


LIST ALL
Posted by 창조신화2009-02-21 16:43:30, Hit : 3668
질문입니다..박종훈님의 소스 및,,손상진님의 소스..
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
1807 기타
   부팅관련 질문(창조랑 관련은 없습니다.) [5]
신용주 2009/02/28  3043
1806 창조
   창조 구조체에서 문자를 넣는방법 아시는분 ... [8]
박종훈 2009/02/27  4046
1805 창조
   리스트박스 스크롤관련 [12]
김민석 2009/02/27  4081
1804 창조
     [re] 리스트박스 스크롤관련 [6]
신용주 2009/02/27  3782
1803 창조
     [re] 리스트박스 스크롤관련 [1]
바람 2009/02/27  3225
1802 창조
   다시질문 [6]
김민석 2009/02/26  2999
1801 창조
     [re] 다시질문 [19]
김민석 2009/02/27  3306
1800 창조
   연동 홈페이지. 상진님이 잘 아실 듯. [4]
신용주 2009/02/26  3108
1799 창조
   *.reg 파일을 ㅎ메모에서 읽어들이려면...;;;; [11]
바람 2009/02/25  4100
1798 창조
   압축프로그램을 짤려는데 [1]
김제형 2009/02/24  2853
1797 창조
   인터넷 속도 체킹 및 메세지 [2]
신용주 2009/02/24  3664
1796 창조
   콤보박스관련 [1]
김민석 2009/02/24  3218
1795 창조
   현재시간의 의미 [2]
신용주 2009/02/22  3952
1794 창조
   이미지와 메모글 미리보기 방법_쉬운 질문 [1]
신용주 2009/02/22  3656
창조
   질문입니다..박종훈님의 소스 및,,손상진님의... [9]
창조신화 2009/02/21  3668
1792 창조
   포스가 영딸려서... 고수분들 조언구합니다. [4]
바람 2009/02/20  3756
1791 창조
   창조문법에 없는질문좀 할께요 [9]
강정훈 2009/02/20  3883
1790 창조
   원격조정!? 원격지시!? [7]
신용주 2009/02/18  3042
1789 창조
   다시 설명~! dll 그리고 ini (델과 환경문) [12]
신용주 2009/02/16  3820
1788 창조
   스크롤바 객체 사용 질문. [3]
창조신화 2009/02/15  3579
1787 기타
   이것 해석좀 가능 하신분 계실까여? 델파이 ... [1]
강정훈 2009/02/14  3439
1786 창조
   종훈님 한가지 해결했는데 조금더 보안문제..... [1]
강정훈 2009/02/14  4082
1785 창조
   업데이트에 대해서 자세히좀 알려주세요
임민혁 2009/02/12  3120
1784 창조
   혹시... 확장자 csv 파일을 읽어들이는 api ... [5]
바람 2009/02/12  4017
1783 창조
   종훈님 하나만 더부탁 드려도....? [1]
강정훈 2009/02/10  3448
LIST ALL   Prev [1]..[11][12][13][14] 15 [16][17][18][19][20]..[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이희철
로그인