spy ++에서 핸들값을 읽었는데
예를들어 00012345 라고 하는 핸들값이 있는데요. 이걸 델파이에서 불렀는데(같은 윈도우를 FindWindo()로 찾았는데.) 000022라고 나왔거든요..(예시입니다. ^^:)
근데 코드상 혹은 프로그램상 저둘은 같은건데(하나는 spy++에서 보이는 핸들값이고 하나는 델파이에서 보이는 핸들값이란게 다르죠 ..)
어떻게 같은건지 알죠? 델파이에서 저걸 spy++에서 보이는 값처럼 보이게 할수 있나요?
그리고 또다른 질문이지만 Label에 있는값 즉 라벨의 Caption값이죠..
이거 읽어올라면 SendMessage(
LabelHandle,WM_GETTEXT,25,longint(strvar))
이렇게 했는데 strvar에는 아무값도 안들어오는데 왜 그럴까요? strvar는 string 형입니다.
궁금해요~ Help`~
두개의 핸들값이 다르다면 님께서 다른 윈도우의 핸들을 찾으신겁니다. 윈도우핸들은 유일한 값이고 하나의 윈도우는 하나의 핸들만 가집니다.
FindWindow가 만능은 아닙니다. 인자로 주는 WindowClass나 Window Text가 같은 윈도우가 존재하는 경우가 많으니까요... 같은 WindowClass나 Window Text를 가진 윈도우가 존재한다면 FindWindow로 찾은 윈도우가 내가 원하는것인지는 알기가 힘듭니다. 참고하셔서 정확히 찾으시길...
윈도우메세지를 쓰실때는 string 보다는 고정된 크기의 PChar배열을 쓰세요...
var
TextBuf: array[0..2048] of Char;
begin
SendMessage(LabelHandle, WM_GETTEXT, 25, LongInt(@TextBuf))
end;
^^ 항상 즐코하세요...