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


창조 팁
- '창조' 에 관한 팁을 올리는 곳입니다. 다수의 이미지가 필요하시면 아래 '이미지 자료실' 에 업로드 후 불러와 주세요..


LIST ALL
Posted by 박종훈2006-12-31 09:40:15, Hit : 10058
어떤방법으로든 핸들[Handle]를 구해보자! [수정#3]
Homepage : http://www.canxan.com/~qnrdlqkrwhdgns
Post URL : http://cugz.sjworks.net/bbs/zboard.php?id=tip&no=311

수정됨 #1
수정됨 #2
수정됨 #3



윈도우제목과 윈도우클래스명으로 윈도우핸들 찾기!

연결파일 : user32.dll
함수 :
   실수함수: FindWindowA(문자: 클래스명, 윈도우제목);
예제 : [클래스명이 'TNHForm'이고, 창 제목이 '창0'인 창을 찾습니다.]
   핸들 := 사용자함수0.FindWindowA("TNHForm", "창0");
주의 :
   만일 클래스명 및 윈도우제목도 같은 프로그램이 있다면 난감합니다;
참고 :
   더 상세한 함수를 원하신다면 FindWindowExA 를 참고해주세요.


윈도우제목과 윈도우클래스명으로 윈도우핸들 찾기[고급]!

연결파일 : user32.dll
함수 :
   실수함수: FindWindowExA(실수: 부모창, 다음창; 문자: 클래스명, 윈도우제목);
설명 :
   부모창 - 부모창의 핸들에서 자식 객체를 찾습니다. 사용 안할경우 0을 넣으시면 됩니다.
   다음창 - 여기에 특정 창의 핸들을 넣으시면 그 특정창 다음부터 창을 찾습니다.
               [동일한 클래스명과 제목명이 여러개 있을경우 편리합니다.]
               역시 사용안하시려면 0 을 넣으시면 됩니다.
   클래스명과 윈도우제목은 FindWindowA 와 동일합니다.
예제 : [클래스명이 'TNHForm'이고, 창 제목이 '창0'인 창을 찾습니다.]
   핸들 := 사용자함수0.FindWindowA(0, 0, "TNHForm", "창0");


특정 좌표에 있는 윈도우의 핸들찾기!

연결파일 : user32.dll
함수 :
   실수함수: WindowFromPoint(실수: X, Y);
예제 : [X좌표 200 Y좌표 300에 위치한 창의 핸들을 얻습니다.]
   핸들 := 사용자함수0.WindowFromPoint(200, 300);


현재 활성화된 창의 핸들 찾기!


연결파일 : user32.dll
함수 :
   실수함수: GetActiveWindow;
예제 :
   핸들 := 사용자함수0.GetActiveWindow;


현재 포커스[초점]이 있는 윈도우의 핸들찾기!

연결파일 : user32.dll
함수 :
   실수함수: GetFocus;
예제 :
   핸들 := 사용자함수0.GetFocus;


가장 앞에있는 창의 윈도우핸들 찾기!

연결파일 : user32.dll
함수 :
   실수함수: GetForegroundWindow;
예제 :
   핸들 := 사용자함수0.GetForegroundWindow;



그외, 함수를 구하는 방법에는 여러가지가 있습니다.
다음창의 핸들구하기, 이전창의 핸들구하기
부모창의핸들 구하기, 데스크탑윈도우 핸들구하기
가장 처음창의 핸들구하기, 가장 마지막창의 핸들구하기
소유 윈도우의 핸들구하기 등등..


여러가지 방법등이 있지만, 가장 많이쓰는 것들을 소개해봤습니다.

Tip & 팁!)
   가장 고질병인 ㅎ밑판등의 핸들 구하기!..
   밑판의 핸들구하려고, 창조웹브라우저의 함수를 사용하거나, 여러가지 방법으로 어렵게
   핸들속성이 없는 객체의 핸들을 구하셨나요?-_-;

   ㅎ밑판의 핸들구하기!.. :
       밑판0.활성화해;
       핸들 := 사용자함수0.GetFocus;



손상진   2006-12-31 PM 3:17:19  
헛! ㅎ밑판.활성화해; 라는 명령어가 되는군요..
좋은거 알아갑니다.~^^
박종훈   2006-12-31 PM 3:41:27  
[활성화해]명령어가 이럴 때 쓰일줄이야...;;
ㅎ버튼의 핸들도 구할 수 있더군요; [그외 여러가지..]
김길남   2006-12-31 PM 3:58:44  
나름데로 아주 조금은 이해한다고 생각 했는데,,
저는 공부좀 더 해야 될련가 봅니다.
알려줘도 응용이 않되는군요,,
감사 드립니다,,
박종훈   2006-12-31 PM 4:04:49  
일단, 가장많이 사용하는 윈도우핸들찾는 방법은.. FindWindowA 라고 할수 있습니다.
예제 : http://cugz.com/bbs/zboard.php?id=pds_sc&no=436
김길남   2006-12-31 PM 4:34:55  
아이고 예제 에 실수함수: GetForegroundWindow; 를 접목한후
시계를 넣어 찿도록 했는데 포커스가 달라지면 숫자가 달라지는것 보니 성공하긴 한건가 봐요,,,,, 저 잘한거죠?
박종훈   2006-12-31 PM 5:08:15  
네~
김길남   2006-12-31 PM 5:17:57  
근데 핸들 숫자는 늘 달라지네요,,, 프로그램의 고유의 숫자가 아니고 프로그램을 실행할때 그때그때 할당되는건가 봐요,,
박종훈   2006-12-31 PM 5:44:52  
핸들은 프로그램 실행시 부여됩니다~^^..
김길남   2007-01-04 PM 3:08:53  
그럼 핸들 구하는법은 이렇게 구했지만(비록부팅시 변한것이지만),,
특정프로그램을 종료할려면 그 프로그램의 이름을 알아야 한다는데
프로그램 이름은 아는 방법도 있나요?
박종훈   2007-01-04 PM 4:24:30  
아.. 특정프로그램을 종료하려면 핸들로도 종료 가능합니다.
[핸들을.. 프로그램이름을 가지고 찾는 방법이 있고요.]
김길남   2007-01-04 PM 4:36:35  
네,, 문제는 핸들은 유동적이라
고정된 고유의 아이디가 있어야 그것을 종료하던지 할텐데요,
만약 핸들로 종료한다면 찾는 과정이 필요함으로 한정된 범위에서 종료가 가능할것이고 더군다나 핸들을 찿는 과정이 실제 그프로그램을 직접 해당 프로그램의 종료 버튼을 클릭 하는 것이 더 빠를 수 도 있음을것같아서 ..
목적은 창조로만든 프로그램를 종료하면 자동으로 다른 프로그램도 종료 되게 하고자 합니다.
지상현   2007-01-04 PM 10:34:11  
창조라고 해도 결국 창을 다루기 위해서 내부적으로 핸들을 사용합니다.
(단지 객체가 항상 그것을 기억하고 있을 뿐입니다. 예를 들어, ㅎ창의 경우 '핸들'이라는 속성)

어쨌든 핸들은 금방 찾습니다. 문제는 핸들을 찾는 방법인데, 일반적으로 사람이 구별하듯이, 창의 제목과 클래스 이름으로 구해낼 수 있습니다. (클래스 이름은 창의 내용을 결정한다고 할 수 있습니다.)
여기서 더 정확하게 뽑아내려면, 그 창만 갖는 자식 컨트롤 몇 개를 찾는다거나, 나아가서 그 창이 돌아가는 프로세스를 조사해서 알아낼 수도 있을 겁니다.

'다른 프로그램'을 수정 가능한 상태라면, 창에 메시지를 날려 "나 맞다" 라고 확인도 할 수 있을테고, 그게 가장 정확한 방법이겠지만요...
김길남   2007-01-05 AM 12:08:28  
그렇다면 창조로 프로그램 여러게 만든후 각 프로그램이 서로 유기적으로 제어도 가능 하다는 결론도 나오는건가요?
질문으로 치자면 한도 끝도 없는데.. 자중 할께요,^^
지상현   2007-01-05 AM 3:40:04  
네, 충분히 가능하죠.
제가 지금 하고 있는 프로그램은 하나만 실행된 상태에서 인자로 들어오는 데이터를 혼자만 가지고 있어야 하는데, 인자를 exe로 다시 실행하면 처음 실행된 놈에게 전달하고 꺼지도록 하는데 이러저러한 기법이 쓰였습니다.
창조로 만든건 아니지만;; 비슷하게 적용할 수 있습니다.
김길남   2007-01-24 PM 6:04:54  
지상현님에 말씀이 이제는 이해도 됬고 구현도 가능 합니다,,
물론 현제 핸들찾기를 이용한것이지만요,,

그런데요
"포커스[초점]이 있는 윈도우의 핸들찾기"
이거는요,, 창조로 만든 프로그램 내에 있는 객체들의 포커스여부에 따라 핸들은 구해주지만,, 다른 응용프로그램의 어떤 객채들도 인지는 못하네요,,,

그리고 "그외, 함수를 구하는 방법" 도 오픈되면 언젠가는 유용하게 사용될듯 합니다만,,
박종훈   2007-01-24 PM 7:32:46  
어, 포커스있는 윈도우핸들찾는것은, 모든 윈도우에 적용되는 걸로 알고있는데^^;
그런데!.. 실제로보니, 자기 프로그램만 되네요^^;
지상현   2007-01-25 AM 12:29:30  
GetFocus, SetFocus 함수는 같은 스레드에 있는 창에서만 먹히는 놈들입니다;;
다른 창, 다른 스레드의 있는 창의 상태를 알고 싶으면 API 하나를 더 써야 하는...
김길남   2007-01-25 AM 2:42:51  
네 그렇군요,,,
버튼의 제목으로 구할 수 있으면 참말로 좋을텐데요,,
만약 구할 수 있다면,, 남에창 버튼에 키값도 전달 될려나 ,,, 그것이 궁굼하네요,,
LIST ALL               GO TO THE TOP


N
   Subject
Posted by
Date
H
342
   FTP 관련 한 API 들.. [2]
김진영 2009/04/04  11520

   어떤방법으로든 핸들[Handle]를 구해보자! [수정#3] [18]
박종훈 2006/12/31  10058
340
   [활용]그림판 사진 합성 방법 [1]
권선중 2003/12/26  8582
339
   작업표시줄에서 프로그램 완전히 숨기기! [1]
지상현 2006/06/06  8291
338
   오토런 AUTORUN 만들기 CD 구어서 자신만의 프로그램.. [4]
SJsoft.inc 2002/12/13  8062
337
   VB - 창조 명령어 비교(?) [2]
박종훈 2006/02/15  7871
336
   숫자만 입력되는 에디트[Numeric Editbox] [6]
박종훈 2006/10/15  7497
335
    메모리 확보 유틸의 기능 분석 [1]
Pueding 2002/09/08  7477
334
   [ㅎ메모] 단어구분[자동줄바꿈] 속성에 주의하자! [5]
박종훈 2006/08/10  7399
333
   최근 열어본 문서 지우기... [4]
박종훈 2006/04/29  7100
332
   XP 루나 인터페이스 사용하기 [0.7도 가능] [12]
지상현 2003/02/26  6975
331
   [팁!] 넥슨 게임 광고 제거 하자! [5]
위자드 2004/07/26  6910
330
   16진→2진→10진 알고리즘. [2]
Anonymous 2002/09/17  6858
329
   창조에서 음수를 사용할 때 주의하자! [1]
지상현 2005/10/08  6814
328
   [팁] 실행파일 용량을 확실하게 줄이자! [19]
황현석 2004/10/30  6779
327
   잡다한 명령어들..;;;;
김진영 2002/12/22  6764
326
   리스트박스 가지고 놀기! [5]
지상현 2006/05/27  6592
325
   XP처럼, 암호를 * 대신 ● 로 표시하기 ㅋ [3]
박종훈 2006/07/25  6490
324
   [CELK] 창조로 간단한 신호 보내기 [1]
지상현 2006/07/11  6448
323
   [팁]창조로 만든 프로그램에서 윈도우의 열려있는 모든 창을 ... [8]
김환욱 2002/10/29  6444
322
   [대박!] 메모리 사용률 확! 줄여보자 ㅋ [5]
박종훈 2006/08/12  6339
321
   Manifest 파일을 만들면, 생기는 변화!
박종훈 2006/12/17  6335
320
   확실한 시스템/윈도우/임시 폴더 알아오기 [6]
지상현 2005/10/28  6312
319
   Window Message 상수값들 -_-; [3]
박종훈 2006/03/15  6307
318
   [TIP] 창조 0.9의 그림판 투명창을 깔끔하게 만들기 [3]
권선중 2005/03/08  6299
LIST ALL   1 [2][3][4][5][6][7][8][9][10]..[14] 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이희철
로그인