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


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


LIST ALL
Posted by 창조신화2009-02-21 16:43:30, Hit : 3661
질문입니다..박종훈님의 소스 및,,손상진님의 소스..
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
notice 창조   반드시 검색 후 질문을 올려주세요.<... 박종훈 2007/09/24  6102
notice 창조   단순 소스제작 부탁은 예고없이 삭제합니... [2] 손상진 2007/04/11  5931
notice 창조   답변소스 등록 관련 안내입니다. [7] 변혁수 2006/01/11  7795
2154 창조
   메모장 자동 폭 가능할까요?
날아라KTX 2024/04/29  14
2153 창조
   풍선말 글꼴, 크기
날아라KTX 2024/03/26  60
2152 창조
   네이버 증권페이지 가격 [2]
날아라KTX 2024/02/22  86
2151 창조
   문자창, 대화창 프로그램 가운데 출력하기
날아라KTX 2023/02/27  310
2150 창조
   리스트박스 질문드려요.
날아라KTX 2022/10/25  368
2149 창조
   메모내용 코마를 구분으로 리스트박스에 정렬... [3]
날아라KTX 2022/10/02  388
2148 창조
   문자표 글꼴 색상 질문드려요
날아라KTX 2022/09/24  425
2147 창조
   멀티버튼이 마우스 따라다니기 [1]
날아라KTX 2022/09/17  414
2146 창조
   카카오톡 다중 접속기도 만들 수 있을까요?
김지훈 2022/04/19  613
2145 창조
   레지스트리...문제점이 뭘까요???? [3]
날아라KTX 2022/04/14  520
2144 창조
   자판을 뗄때 사건에서 띵띵소리 [1]
날아라KTX 2022/04/09  551
2143 창조
   메모 상단줄 질문드려요.
날아라KTX 2022/04/05  515
2142 창조
   폴더명추출 [1]
날아라KTX 2022/01/24  594
2141 창조
   문자표 질문드려요. [1]
날아라KTX 2021/10/19  588
2140 창조
   성인e님께서 도움주셨던 글자 찾아 색상바꾸... [5]
날아라KTX 2021/10/01  664
2139 창조
   리스트박스에 파일명+파일내용 추가하기 [3]
날아라KTX 2020/07/26  1301
2138 창조
   리스트박스 줄위치에 해당하는 버튼 클릭하기 [2]
날아라KTX 2020/03/11  1500
2137 창조
   에디트0 영역에 문자추가 삭제하기 [2]
날아라KTX 2019/10/15  1601
2136 창조
   이진읽어를 10진으로 바꾼다음에 1과 0만으로... [1]
박재성 2019/06/12  1788
2135 창조
   알파벳순서대로 정렬도 창조로 가능할까요?
날아라KTX 2019/05/12  1581
2134 창조
     [re] 알파벳순서대로 정렬도 창조로 가능할까요? [2]
성인e 2019/05/12  1863
2133  
   리스트박스1 * 문자가 있는 이름을 리스트박... [3]
날아라KTX 2019/04/17  1802
LIST ALL   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이희철
로그인