2017-09-11 4 views
0

내가 며칠 전에 파이썬을 배우기 시작하고 나는 나에게 창 제목을 반환 아래 메모장에서창 (메모장)에서 텍스트

코드를 텍스트를 얻으려고 노력하는 동안 붙어하지만 win32gui.GetWindowText을 사용하고 때 한 얻기 (제어) null을 리턴합니다. 누군가 내 실수를 여기에 표시 할 수 있습니까? 미리 감사드립니다.

import time 
import win32gui 

while True: 
    window = win32gui.GetForegroundWindow() 
    title = win32gui.GetWindowText(window) 
    control = win32gui.FindWindowEx(window, 0, 'Edit', None) 
    print('text: ', win32gui.GetWindowText(window)) 
    print('control to %s, window to %s' %(str(control), str(window))) 
    time.sleep(1) 
+1

오류를 확인하지 않았습니다. 어떤 디버깅을 했습니까? 어쨌든 메모장에 관심이 없습니다. 실제 목표는 무엇입니까? 이 접근법이 실제 목표에 맞는지 확신하십니까? –

+0

* "여기에 내 실수를 표시 할 수 있습니까?"* - 여기에 사용되는 인프라를 사용하는 대신 저수준 구현 세부 정보를 해킹합니다. [UI 자동화] (https://msdn.microsoft.com/ko -us/library/windows/desktop/ee684009.aspx). – IInspectable

+0

@DavidHeffernan 디버깅을했는데 제대로 작동했습니다.하지만 틀렸고 GetWindowText의 funcationality를 잊어 버렸습니다. – Mat

답변

2

documentation에 MSDN에서 두 번 알려줍니다!

et Wi ndow Te xt는 또 다른 과정에서 컨트롤의 텍스트를 검색 et Wi ndow Te xt는 전화로 직접 대신 WM_GETTEXT 메시지를 보내려면 다른 응용 프로그램

에서 컨트롤의 텍스트를 검색 할 수 없습니다.

+0

팁 주셔서 감사합니다. I는 completly 대해 잊어 I는 C# 길이 = win32gui.SendMessage (제어 win32con.WM_GETTEXT, 255, BUF) 결과 = 버피와 과거에 사용하고있다 : I가 작동한다 반드시 같이 길이] 이 같은하지만 메모장 (형식화 된 단어의 길이가 제대로 작동하는지)에서 문자열 값을 가져 오지 않을거야. – Mat

관련 문제