pywin32 獲取 windows 的窗體內文本框的內容


用 spy++去確認找到了文本框的句柄了。

用函數 win32gui.SendMessage 獲取不了文本框的文本內容,用 str 類型的參數接收獲取的內容的話沒有獲取到東西,而用 PyBuffer 類型去獲取則得到類似於 16 進制的東西。

希望能找到解決方案。 以下是代碼:

 1 from win32gui import *
 2 from win32api import *
 3 from win32process import *
 4 import win32con
 5 
 6 import time
 7 
 8 time.sleep(3)
 9 
10 # 獲取窗體句柄
11 hWnd = GetForegroundWindow()
12 print('hownd: ', hWnd)
13 
14 FormThreadID = GetCurrentThreadId()
15 print('FormThreadID: ', FormThreadID)
16 
17 CWndThreadID = GetWindowThreadProcessId(hWnd)
18 print('CWndThreadID: ', CWndThreadID)
19 
20 AttachThreadInput(CWndThreadID[0], FormThreadID, True)
21 
22 # 獲取光標所在文本框句柄
23 hWnd = GetFocus()
24 print('hWnd: ', hWnd)
25 
26 AttachThreadInput(CWndThreadID[0], FormThreadID, False)
27 
28 # SendMessage(hWnd, win32con.WM_SETTEXT, 0, "mextb1860 第一個文本框")
29 
30 # 文本框內容長度
31 length = SendMessage(hWnd, win32con.WM_GETTEXTLENGTH)+1
32 print('Length: ', length)
33 
34 buf = '0'*length
35 # 生成buffer對象
36 # buf = PyMakeBuffer(length)
37 
38 # 獲取文本框內容
39 print('get: ', SendMessage(hWnd, win32con.WM_GETTEXT, length, buf))
40 
41 print('text: ', buf)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM