아이우에오
40
2019-07-24 15:06:20
0
444

안녕하세요. 파이썬으로 hwnd를 이용한 다른 프로그램 창 제어를 하려고 합니다.


pywin32 확장을 사용해 파이썬으로 다른 프로그램 hwnd 정보를 받고

hwnd에 주기적으로 이벤트 메세지를 보내는 스크립트를 짜고 있습니다.

최종적으로 팝업 결과창이 뜨는데요

결과창의 텍스트 부분을 가져오고싶습니다.


해당 부분입니다.


텍스트 부분이 label 클래스인지 버튼 클래스인지 GetClassName 함수를 써서 알아보려고 해도

잘못된 창 핸들이라며 오류가 뜹니다.

그래서 spy++로 본 결과 Edit이라는 클래스로 추측만 해봤는데요. 이것도 정확한지 모르겠습니다.



코드입니다.

def Scanstatfind(windowname) :
    time.sleep(2)
    savestring = ""
    hwnd2nd, childwnds2nd = GetChildWindows(windowname)
    print("%X %s" % (hwnd2nd, win32gui.GetWindowText(hwnd2nd)))

    print("2nd HWND       CtlrID\tClass\tWindow Text")
    print('=' * 20)

    for child2nd in childwnds2nd:
        ctrl_id2 = win32gui.GetDlgCtrlID(child2nd)
        #wnd_clas2 = win32gui.GetClassName(child2nd)
        wnd_text2 = win32gui.GetWindowText(child2nd)
        print("%08X %6d\t\t%s" % (child2nd, ctrl_id2, wnd_text2))

    win32gui.SendMessage(childwnds2nd, win32, savestring, 255)
    print("%s"%(savestring))

GetClassName 부분은 오류가 나서 주석 처리 해놨습니다.

MSDN 뒤져서 Edit_GetText라는 메크로를 찾아봤는데 파이썬에서 어떻게 사용할지 모르겠습니다.. 

사용해서 가져올 수 있을지도 모르겠구요.


고수님들 조언이 필요합니다.

0
0
  • 답변 0

  • 로그인을 하시면 답변을 등록할 수 있습니다.