เดชเตเดคเตเดคเตบ เดฒเตเดฌเตเดฐเดฑเดฟ เดตเดฟเตปเดกเตเดธเดฟเตฝ เดกเตเดธเตเดเตเดเตเดชเตเดชเต GUI เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเตพ เดเดเตเดเตเดฎเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฐเต เดเดชเตเดชเตบ เดธเตเดดเตเดธเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเดพเดฃเต. เดเดดเดฟเดเตเด เดฐเดฃเตเดเต เดตเตผเดทเดฎเดพเดฏเดฟ, เด เดคเดฟเตฝ เดชเตเดคเดฟเดฏ เดชเตเดฐเดงเดพเดจ เดธเดตเดฟเดถเตเดทเดคเดเตพ เดชเตเดฐเดคเตเดฏเดเตเดทเดชเตเดชเตเดเตเดเต:
- MS UI เดเดเตเดเตเดฎเตเดทเตป เดธเดพเดเตเดเตเดคเดฟเดเดตเดฟเดฆเตเดฏเดฏเตเดเตเดเตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃ. เดเดจเตเดฑเตผเดซเตเดธเต เดเดจเตเดจเตเดคเดจเตเดจเตเดฏเดพเดฃเต, เดเดชเตเดชเตเตพ เดเดคเต เดชเดฟเดจเตเดคเตเดฃเดฏเตเดเตเดเตเดจเตเดจเต: WinForms, WPF, Qt5, Windows Store (UWP) เด เดเตเดเดจเต เดชเดฒเดคเตเด - Windows-เตฝ เดเดณเตเดณ เดฎเดฟเดเตเดเดตเดพเดฑเตเด เดเดฒเตเดฒเดพเด.
- เดฌเดพเดเตเดเตเตปเดกเต/เดชเตเดฒเดเดฟเดจเตเดเดณเตเดเต เดธเดฟเดธเตเดฑเตเดฑเด (เดจเดฟเดฒเดตเดฟเตฝ เด
เดตเดฏเดฟเตฝ เดฐเดฃเตเดเตเดฃเตเดฃเด เดนเตเดกเดฟเดจเต เดเตเดดเดฟเตฝ เดเดฃเตเดเต: เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟ
"win32"เดชเตเดคเดฟเดฏเดคเตเด"uia"). เดคเตเดเตผเดจเตเดจเต เดเดเตเดเตพ เดเตเดฐเตเดธเต-เดชเตเดฒเดพเดฑเตเดฑเตเดซเตเดฎเดฟเดฒเตเดเตเดเต เดธเตเดเดฎเดฎเดพเดฏเดฟ เดจเตเดเตเดเตเดจเตเดจเต. - เดฎเตเดธเดฟเดจเตเด เดเตเดฌเตเตผเดกเดฟเดจเตเดฎเตเดณเตเดณ Win32 เดนเตเดเตเดเตเดเตพ (เดชเตเดนเตเดเตเดเดฟเดจเตเดฑเต เดธเตเดชเดฟเดฐเดฟเดฑเตเดฑเดฟเดฒเตเดณเตเดณ เดนเตเดเตเดเต เดเตเดเตพ).
เดกเตเดธเตโเดเตโเดเตเดชเตเดชเต เดเดเตเดเตเดฎเตเดทเดจเดพเดฏเดฟ เดเดชเตเดชเตบ เดธเตเดดเตโเดธเดฟเตฝ เดเดจเตเดคเตเดฒเตเดฒเดพเด เดฒเดญเตเดฏเดฎเดพเดฃเต เดเดจเตเดจเดคเดฟเดจเตเดฑเต เดเดฐเต เดเตเดฑเดฟเดฏ เด เดตเดฒเตเดเดจเดตเตเด เดเดเตเดเตพ เดจเตฝเดเตเด (เดเตเดฐเตเดคเดฐเดฎเดพเดฏ เดเดฐเต เดคเดพเดฐเดคเดฎเตเดฏเดฎเดพเดฏเดฟ เด เดญเดฟเดจเดฏเดฟเดเตเดเดพเดคเต).
เด เดฒเตเดเดจเด เดฎเดฟเตปเดธเตเดเดฟเตฝ เดจเดเดจเตเดจ SQA Days 20 เดเตเตบเดซเดฑเตปเดธเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดเดฐเต เดฑเดฟเดชเตเดชเตเตผเดเตเดเดฟเดจเตเดฑเต เดญเดพเดเดฟเด เดเตเดฐเดพเตปเดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเดพเดฃเต ( ะธ ), เดญเดพเดเดฟเดเดฎเดพเดฏเดฟ เดฑเดทเตเดฏเตป เดชเดคเดฟเดชเตเดชเต pywinauto-เดฏเตโเดเตเดเต.
- เด
เดเดฟเดธเตเดฅเดพเดจ เดธเดฎเตเดชเดจเดเตเดเตพ
- เด
เดเดฟเดธเตเดฅเดพเดจ เดกเตเดธเตเดเตเดเตเดชเตเดชเต เดชเตเดฐเดตเตเดถเดจเดเตเดทเดฎเดค เดธเดพเดเตเดเตเดคเดฟเดเดตเดฟเดฆเตเดฏเดเตพ
เด เดฎเตเดเดฒเดฏเดฟเดฒเต เดเดชเตเดชเตบ เดธเตเดดเตโเดธเดฟเดจเตเดฑเต เดเดฐเต เดนเตเดฐเดธเตเดต เด เดตเดฒเตเดเดจเดคเตเดคเตเดเต เดจเดฎเตเดเตเดเต เดเดฐเดเดญเดฟเดเตเดเดพเด. เดกเตเดธเตโเดเตโเดเตเดชเตเดชเต GUI เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเตพเดเตเดเดพเดฏเดฟ, เดธเตเดฒเดฟเดจเดฟเดฏเด เดเดณเตเดณ เดตเตเดฌเดฟเดจเตเดเตเดเดพเตพ เดเดฒเตเดฒเดพเด เดเตเดฑเดเตเดเตเดเตเดเดฟ เดธเดเตเดเตเตผเดฃเตเดฃเดฎเดพเดฃเต. เดชเตเดฐเดงเดพเดจ เดธเดฎเตเดชเดจเดเตเดเตพ เดเดคเดพ:
เดเตเตผเดกเดฟเดจเตเดฑเตเดฑเต เดฐเตเดคเดฟ
เดเตเดฒเดฟเดเตเดเต เดชเตเดฏเดฟเดจเตเดฑเตเดเตพ เดนเดพเตผเดกเตเดเตเดกเต เดเตเดฏเตเดฏเตเด, เดตเดฟเดเดฏเดเดฐเดฎเดพเดฏ เดนเดฟเดฑเตเดฑเตเดเตพ เดเดเตเดเตพ เดชเตเดฐเดคเตเดเตเดทเดฟเดเตเดเตเดจเตเดจเต.
[+] เดเตเดฐเตเดธเต-เดชเตเดฒเดพเดฑเตเดฑเตเดซเตเด, เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเดพเตป เดเดณเตเดชเตเดชเดฎเดพเดฃเต.
[+] เดเตเดธเตเดฑเตเดฑเต เดฑเตเดเตเดเตเตผเดกเดฟเดเดเตเดเตพ "เดฑเตเดเตเดเตเตผเดกเต-เดฑเตเดชเตเดฒเต" เดเตเดฏเตเดฏเตเดจเตเดจเดคเต เดเดณเตเดชเตเดชเดฎเดพเดฃเต.
[-] เดธเตเดเตเดฐเตเตป เดฑเตเดธเดฒเตเดฏเตเดทเตป, เดคเตเด, เดซเตเดฃเตเดเตเดเตพ, เดตเดฟเตปเดกเต เดตเดฒเตเดชเตเดชเดเตเดเตพ เดฎเตเดคเดฒเดพเดฏเดต เดฎเดพเดฑเตเดฑเตเดจเตเดจเดคเดฟเตฝ เดเดฑเตเดฑเดตเตเด เด
เดธเตเดฅเดฟเดฐเดฎเดพเดฃเต.
[-] เดตเดฒเดฟเดฏ เดชเดฟเดจเตเดคเตเดฃเดพ เดถเตเดฐเดฎเดเตเดเตพ เดเดตเดถเตเดฏเดฎเดพเดฃเต; เดธเตเดเตเดฐเดพเดเตเดเดฟเตฝ เดจเดฟเดจเตเดจเต เดเตเดธเตเดฑเตเดฑเตเดเตพ เดชเตเดจเดฐเตเดเตเดเตเดตเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเต เด
เดฒเตเดฒเตเดเตเดเดฟเตฝ เดธเตเดตเดฎเตเดงเดฏเดพ เดชเดฐเตเดเตเดทเดฟเดเตเดเตเดจเตเดจเดคเต เดชเดฒเดชเตเดชเตเดดเตเด เดเดณเตเดชเตเดชเดฎเดพเดฃเต.
[-] เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ เดฎเดพเดคเตเดฐเด เดเดเตเดเตเดฎเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดจเตเดจเต; เดกเดพเดฑเตเดฑ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด เดตเตเดฃเตเดเตเดเตเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด เดฎเดฑเตเดฑเต เดฐเตเดคเดฟเดเดณเตเดฃเตเดเต.
เดเตเดณเตเดเตพ (เดเตเดฐเตเดธเต-เดชเตเดฒเดพเดฑเตเดฑเตเดซเตเด): , , เดเตเดเดพเดคเต เดฎเดฑเตเดฑเต เดชเดฒเดคเตเด. เดธเดพเดงเดพเดฐเดฃเดเดคเดฟเดฏเดฟเตฝ, เดเตเดเตเดคเตฝ เดธเดเตเดเตเตผเดฃเตเดฃเดฎเดพเดฏ เดเตเดณเตเดเดณเดฟเตฝ เด เดชเตเดฐเดตเตผเดคเตเดคเดจเด เดเตพเดชเตเดชเตเดเตเดจเตเดจเต (เดเดฒเตเดฒเดพเดฏเตเดชเตเดชเตเดดเตเด เดเตเดฐเตเดธเต-เดชเตเดฒเดพเดฑเตเดฑเตเดซเตเด เด เดฒเตเดฒ).
เดเตเตผเดกเดฟเดจเตเดฑเตเดฑเต เดฐเตเดคเดฟเดเตเดเต เดฎเดฑเตเดฑเต เดธเดฎเตเดชเดจเดเตเดเดณเต เดชเตเตผเดคเตเดคเตเดเดฐเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเดฎเตเดจเตเดจเต เดชเดฑเดฏเตเดฃเตเดเดคเดพเดฃเต. เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดเดทเตโเดเดพเดจเตเดธเตเดค เดเตเดฐเดพเดซเดฟเดเตโเดธเดฟเดจเดพเดฏเดฟ, เดจเดฟเดเตเดเตพเดเตเดเต เดเดชเตเดเตเดทเดฟเด เดเตเตผเดกเดฟเดจเตเดฑเตเดฑเตเดเดณเดฟเตฝ เดเตเดฒเดฟเดเตเดเตเดเตเดฏเตเดฏเดพเด (เดตเดฟเตปเดกเตเดฏเตเดเต / เดเดเดเดคเตเดคเดฟเดจเตเดฑเต เดฎเตเดเดณเดฟเตฝ เดเดเดคเต เดเตเดฃเดฟเตฝ เดจเดฟเดจเตเดจเต, เดฎเตเดดเตเดตเตป เดธเตโเดเตเดฐเตเดจเดฟเดฒเตเด เด เดฒเตเดฒ) - เดเดคเต เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดคเดฟเดเดเตเดเตเด เดตเดฟเดถเตเดตเดธเดจเตเดฏเดฎเดพเดฃเต, เดชเตเดฐเดคเตเดฏเตเดเดฟเดเตเดเตเด เดจเดฟเดเตเดเตพ เด เดคเดฟเดจเตเดฑเต เดจเตเดณเด / เดตเตเดคเดฟ เดเดฃเดเตเดเดฟเดฒเตเดเตเดเตเดเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ. เดฎเตเดดเตเดตเตป เดเดเดเดตเตเด (เด เดชเตเดชเตเตพ เดตเตเดฏเดคเตเดฏเดธเตเดค เดธเตโเดเตเดฐเตเตป เดฑเตเดธเดฒเตเดฏเตเดทเดจเตเดเตพ เดเดชเดฆเตเดฐเดตเดฟเดเตเดเดฟเดฒเตเดฒ).
เดฎเดฑเตเดฑเตเดฐเต เดเดชเตเดทเตป: เดเตเดธเตเดฑเตเดฑเดฟเดเดเดฟเดจเดพเดฏเดฟ เดธเตเดฅเดฟเดฐเดคเดฏเตเดณเตเดณ เดเตเดฐเดฎเตเดเดฐเดฃเดเตเดเดณเตเดณเตเดณ เดเดฐเต เดฎเตเดทเตเตป เดฎเดพเดคเตเดฐเด เด เดจเตเดตเดฆเดฟเดเตเดเตเด (เดเตเดฐเตเดธเต-เดชเตเดฒเดพเดฑเตเดฑเตเดซเตเดฎเดฒเตเดฒ, เดเดฟเดฒ เดธเดจเตเดฆเตผเดญเดเตเดเดณเดฟเตฝ เดเดคเต เดจเดฒเตเดฒเดคเดพเดฃเต).
เดฑเดซเดฑเตปเดธเต เดเดฎเตเดเต เดคเดฟเดฐเดฟเดเตเดเดฑเดฟเดฏเตฝ
[+] เดเตเดฐเตเดธเต-เดชเตเดฒเดพเดฑเตเดฑเตเดซเตเด[+-] เดคเดพเดฐเดคเดฎเตเดฏเตเดจ เดตเดฟเดถเตเดตเดธเดจเตเดฏเดฎเดพเดฃเต (เดเตเตผเดกเดฟเดจเตเดฑเตเดฑเต เดฐเตเดคเดฟเดฏเตเดเตเดเดพเตพ เดฎเดฟเดเดเตเดเดคเต), เดชเดเตเดทเต เดเดชเตเดชเตเดดเตเด เดเดฟเดฒ เดคเดจเตเดคเตเดฐเดเตเดเตพ เดเดตเดถเตเดฏเดฎเดพเดฃเต.
[-+] เดคเดพเดฐเดคเดฎเตเดฏเตเดจ เดชเดคเตเดเตเดเต, เดเดพเดฐเดฃเด เดคเดฟเดฐเดฟเดเตเดเดฑเดฟเดฏเตฝ เด เตฝเดเตเดฐเดฟเดคเดเตเดเตพเดเตเดเดพเดฏเดฟ CPU เดเดฑเดตเดฟเดเดเตเดเตพ เดเดตเดถเตเดฏเดฎเดพเดฃเต.
[-] เดเตเดเตเดธเตเดฑเตเดฑเต เดฑเตเดเตเดเดเตเดจเดฟเดทเตป (OCR), เดเดเตเดเด เดชเตเดฒเต, เดเตเดฆเตเดฏเดคเตเดคเดฟเดจเต เดชเตเดฑเดคเตเดคเดพเดฃเต => เดเตเดเตเดธเตเดฑเตเดฑเต เดกเดพเดฑเตเดฑ เดฒเดญเดฟเดเตเดเดฟเดฒเตเดฒ. เดเดจเดฟเดเตเดเดฑเดฟเดฏเดพเดตเตเดจเตเดจเดฟเดเดคเตเดคเตเดณเด, เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณ OCR เดธเตเดฒเตเดฏเตเดทเดจเตเดเตพ เดเดคเตเดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดเตเดฒเดฟเดเตพเดเตเดเต เดตเดณเดฐเต เดตเดฟเดถเตเดตเดธเดจเตเดฏเดฎเดฒเตเดฒ, เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ เด เดต เดตเตเดฏเดพเดชเดเดฎเดพเดฏเดฟ เดเดชเดฏเตเดเดฟเดเตเดเดชเตเดชเตเดเตเดจเตเดจเดฟเดฒเตเดฒ (เดเดคเต เดเดคเดฟเดจเดเด เด เดเตเดเดจเตเดฏเดฒเตเดฒเตเดเตเดเดฟเตฝ เด เดญเดฟเดชเตเดฐเดพเดฏเดเตเดเดณเดฟเตฝ เดธเตเดตเดพเดเดคเด).
เดเดชเดเดฐเดฃเดเตเดเตพ: , (เดธเดฟเดเตเดฒเดฟ-เด เดจเตเดฏเตเดเตเดฏเดฎเดพเดฏ, เดถเตเดฆเตเดงเดฎเดพเดฏ เดชเตเดคเตเดคเตบ), .
เดชเตเดฐเดตเตเดถเดจเดเตเดทเดฎเดค เดธเดพเดเตเดเตเดคเดฟเดเดตเดฟเดฆเตเดฏ
[+] เดเดฑเตเดฑเดตเตเด เดตเดฟเดถเตเดตเดธเดจเตเดฏเดฎเดพเดฏ เดฐเตเดคเดฟ, เดเดพเดฐเดฃเด เดธเดฟเดธเตเดฑเตเดฑเดฎเต เดเดเตเดเดเตเดเตเดเต เดเดเตเดเดจเต เดฑเตเตปเดกเตผ เดเตเดฏเตโเดคเดพเดฒเตเด, เดเตเดเตโเดธเตโเดฑเตเดฑเต เดเดชเดฏเตเดเดฟเดเตเดเต เดคเดฟเดฐเดฏเดพเตป เดจเดฟเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต.[+] เดเตเดเตโเดธเตโเดฑเตเดฑเต เดกเดพเดฑเตเดฑ เดเดเตโเดธเตโเดเตเดฐเดพเดเตโเดฑเตเดฑเตเดเตเดฏเตเดฏเดพเตป เดจเดฟเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต => เดเตเดธเตเดฑเตเดฑเต เดซเดฒเดเตเดเตพ เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเดคเต เดเดณเตเดชเตเดชเดฎเดพเดฃเต.
[+] เดเดเตเดเด เดชเตเดฒเต, เดเดฑเตเดฑเดตเตเด เดตเตเดเดคเดฏเตเดฑเดฟเดฏเดคเต, เดเดพเดฐเดฃเด เดฎเดฟเดเตเดเดตเดพเดฑเตเด CPU เดเดฑเดตเดฟเดเดเตเดเดณเตเดจเตเดจเตเด เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒ.
[-] เดเดฐเต เดเตเดฐเตเดธเต-เดชเตเดฒเดพเดฑเตเดฑเตเดซเตเด เดเตเตพ เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเตเดจเตเดจเดคเต เดฌเตเดฆเตเดงเดฟเดฎเตเดเตเดเดพเดฃเต: เดคเตเตผเดเตเดเดฏเดพเดฏเตเด เดเดฒเตเดฒเดพ เดเดชเตเดชเตบ เดธเตเดดเตเดธเต เดฒเตเดฌเตเดฐเดฑเดฟเดเดณเตเด เดเดจเตเดจเต เดฐเดฃเตเดเต เดชเตเดฐเดตเตเดถเดจเดเตเดทเดฎเดค เดธเดพเดเตเดเตเดคเดฟเดเดตเดฟเดฆเตเดฏเดเดณเต เดชเดฟเดจเตเดคเตเดฃเดฏเตเดเตเดเตเดจเตเดจเต. Windows/Linux/MacOS-เดจเต TestComplete, UFT เด เดฒเตเดฒเตเดเตเดเดฟเตฝ Squish เดชเตเดฒเตเดณเตเดณ เดชเดฃเดฎเดเดเตเดเตเดณเตเดณเดต เดเดดเดฟเดเต เดฎเดฑเตเดฑเดพเดฐเตเด เดชเตเตผเดฃเตเดฃเดฎเดพเดฏเดฟ เดชเดฟเดจเตเดคเตเดฃเดฏเตเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒ.
[-] เด เดคเตเดคเดฐเด เดธเดพเดเตเดเตเดคเดฟเดเดตเดฟเดฆเตเดฏ เดเดฒเตเดฒเดพเดฏเตเดชเตเดชเตเดดเตเด เดคเดคเตเดตเดคเตเดคเดฟเตฝ เดฒเดญเตเดฏเดฎเดฒเตเดฒ. เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, VirtualBox-เดจเตเดณเตเดณเดฟเตฝ เดฒเตเดกเดฟเดเดเต เดธเตเดเตเดฐเตเตป เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเต - เดเดฎเตเดเต เดคเดฟเดฐเดฟเดเตเดเดฑเดฟเดฏเตฝ เดเดฒเตเดฒเดพเดคเต เดเดคเต เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเดฟเดฒเตเดฒ. เดเดจเตเดจเดพเตฝ เดชเดฒ เดเตเดฒเดพเดธเดฟเดเต เดเตเดธเตเดเดณเดฟเดฒเตเด, เดชเตเดฐเดตเตเดถเดจเดเตเดทเดฎเดค เดธเดฎเตเดชเดจเด เดเดชเตเดชเตเดดเตเด เดฌเดพเดงเดเดฎเดพเดฃเต. เดเดคเต เดเตเดเตเดคเตฝ เดเตผเดเตเด เดเตเดฏเตเดฏเตเด.
เดเดชเดเดฐเดฃเดเตเดเตพ: C#-เตฝ, C#-เตฝ (เดธเตเดฒเดฟเดจเดฟเดฏเด เด เดจเตเดฏเตเดเตเดฏเด), C#-เตฝ (Appium เด เดจเตเดฏเตเดเตเดฏเด), , (LDTP เด เดจเตเดฏเตเดเตเดฏเด) , เดฑเตเดฌเดฟเดฏเดฟเตฝ, (เดฒเดฟเดจเดเตเดธเต เดกเตเดธเตเดเตเดเตเดชเตเดชเต เดเตเดธเตเดฑเตเดฑเดฟเดเดเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเต) เด เดคเดฟเดจเตเดฑเต เดตเดฟเตปเดกเตเดธเต เดชเดคเดฟเดชเตเดชเตเด .
เดชเตเดฐเดตเตเดถเดจเดเตเดทเดฎเดคเดพ เดธเดพเดเตเดเตเดคเดฟเดเดตเดฟเดฆเตเดฏเดเดณเต เด เดเดฟเดธเตเดฅเดพเดจเดฎเดพเดเตเดเดฟเดฏเตเดณเตเดณ เดเด เดเตเดฐเตเดธเต-เดชเตเดฒเดพเดฑเตเดฑเตเดซเตเด เดเดชเตเดชเตบ เดธเตเดดเตเดธเต เดเตเตพ (เดเตเดเตเดคเตฝ เดเตเดคเตเดฏเดฎเดพเดฏเดฟ เดชเดฑเดเตเดเดพเตฝ, เดฒเตเดฌเตเดฐเดฑเดฟเดเดณเตเดเต เดเดฐเต เดเตเดเตเดเดฌเด) LDTP เดเดฏเดฟเดฐเดฟเดเตเดเดพเด. เดเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด, เดเดคเต เดตเดณเดฐเต เดเดจเดชเตเดฐเดฟเดฏเดฎเดฒเตเดฒ. เดเดพเตป เดเดคเต เดธเตเดตเดฏเด เดเดชเดฏเตเดเดฟเดเตเดเดฟเดเตเดเดฟเดฒเตเดฒ, เดชเดเตเดทเต เด เดตเดฒเตเดเดจเดเตเดเตพ เด เดจเตเดธเดฐเดฟเดเตเดเต, เด เดคเดฟเดจเตเดฑเต เดเดจเตเดฑเตผเดซเตเดธเต เดเดฑเตเดฑเดตเตเด เดธเตเดเดฐเตเดฏเดชเตเดฐเดฆเดฎเดฒเตเดฒ. เดจเดฟเดเตเดเตพเดเตเดเต เดชเตเดธเดฟเดฑเตเดฑเตเดตเต เดซเตเดกเตเดฌเดพเดเตเดเต เดเดฃเตเดเตเดเตเดเดฟเตฝ, เด เดญเดฟเดชเตเดฐเดพเดฏเดเตเดเดณเดฟเตฝ เด เดคเต เดชเดเตเดเดฟเดเตเด.
เดเตเดธเตเดฑเตเดฑเต เดฌเดพเดเตเดเตเดกเตเตผ (เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดเตปเดกเตเตผ เดฌเตเดเตเดเต)
เดเตเดฐเตเดธเต-เดชเตเดฒเดพเดฑเตเดฑเตเดซเตเด เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเตพเดเตเดเดพเดฏเดฟ, เดเตเดธเตเดฑเตเดฑเดฌเดฟเดฒเดฟเดฑเตเดฑเดฟ เดเดฑเดชเตเดชเดพเดเตเดเดพเตป เดกเดตเดฒเดชเตเดชเตผเดฎเดพเตผ เดคเดจเตเดจเต เดชเดฒเดชเตเดชเตเดดเตเด เดเดฐเต เดเดจเตเดคเดฐเดฟเด เดธเดเดตเดฟเดงเดพเดจเด เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเต. เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด เดตเตผ เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเดฟเตฝ เดเดฐเต เดธเตเดตเดจ เดเดฟเดธเดฟเดชเดฟ เดธเตเตผเดตเตผ เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเต, เดเตเดธเตเดฑเตเดฑเตเดเตพ เด เดคเดฟเดฒเตเดเตเดเต เดเดฃเดเตเดฑเตเดฑเตเดเตเดฏเตเดฏเตเดเดฏเตเด เดเตเดเตเดธเตเดฑเตเดฑเต เดเดฎเดพเตปเดกเตเดเตพ เด เดฏเดฏเตเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต: เดเดจเตเดคเดฟเตฝ เดเตเดฒเดฟเดเตเดเต เดเตเดฏเตเดฏเดฃเด, เดกเดพเดฑเตเดฑ เดเดตเดฟเดเต เดจเดฟเดจเตเดจเต เดฒเดญเดฟเดเตเดเตเด เดฎเตเดคเดฒเดพเดฏเดต. เดตเดฟเดถเตเดตเดธเดจเตเดฏเดฎเดพเดฃเต, เดชเดเตเดทเต เดธเดพเตผเดตเดคเตเดฐเดฟเดเดฎเดฒเตเดฒ.
เด เดเดฟเดธเตเดฅเดพเดจ เดกเตเดธเตเดเตเดเตเดชเตเดชเต เดชเตเดฐเดตเตเดถเดจเดเตเดทเดฎเดค เดธเดพเดเตเดเตเดคเดฟเดเดตเดฟเดฆเตเดฏเดเตพ
เดจเดฒเตเดฒ เดชเดดเดฏ Win32 API
WPF-เดจเตเดฑเต เดฑเดฟเดฒเตเดธเดฟเดจเต เดฎเตเดฎเตเดชเต เดเดดเตเดคเดฟเดฏ เดฎเดฟเดเตเด เดตเดฟเตปเดกเตเดธเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเดณเตเด เดตเดฟเตปเดกเตเดธเต เดธเตเดฑเตเดฑเตเดฑเตเด เดเดฐเต เดคเดฐเดคเตเดคเดฟเตฝ เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดฎเดฑเตเดฑเตเดฐเต เดฐเตเดคเดฟเดฏเดฟเตฝ Win32 API-เดฏเดฟเตฝ เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเดคเดพเดฃเต. เด เดคเดพเดฏเดคเต, MFC, WTL, C++ Builder, Delphi, VB6 - เด เดเดชเดเดฐเดฃเดเตเดเดณเตเดฒเตเดฒเดพเด Win32 API เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต. เดตเดฟเตปเดกเตเดธเต เดซเตเดฎเตเดเตพ เดชเตเดฒเตเด เดชเตเดฐเดงเดพเดจเดฎเดพเดฏเตเด Win32 API เด เดจเตเดฏเตเดเตเดฏเดฎเดพเดฃเต.
เดเดชเดเดฐเดฃเดเตเดเตพ: (เดตเดฟเดฌเดฟเดเตเดเต เดธเดฎเดพเดจเดฎเดพเดฏเดคเต) เดชเตเดคเตเดคเตบ เดฑเดพเดชเตเดชเดฑเตเด , (เดธเตเดตเดจเตเดคเด เดญเดพเดท, เดเดฐเต IDispatch COM เดเดจเตเดฑเตผเดซเตเดธเต เดเดฃเตเดเต) (เดชเตเดคเตเดคเตบ) (เดฑเตเดฌเดฟ) (เดฑเตเดฌเดฟ).
เดฎเตเดเตเดฐเตเดธเตเดซเตเดฑเตเดฑเต เดฏเตเด เดเดเตเดเตเดฎเตเดทเตป
เดชเตเดฐเดงเดพเดจ เดจเตเดเตเดเด: MS UI เดเดเตเดเตเดฎเตเดทเตป เดธเดพเดเตเดเตเดคเดฟเดเดตเดฟเดฆเตเดฏ เด เดชเตเตผเดตเดฎเดพเดฏ เดเดดเดฟเดตเดพเดเตเดเดฒเตเดเดณเตเดเต เดตเดฟเตปเดกเตเดธเดฟเดฒเต เดญเตเดฐเดฟเดญเดพเดเด GUI เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเดณเตเดฏเตเด เดชเดฟเดจเตเดคเตเดฃเดฏเตเดเตเดเตเดจเตเดจเต. เดชเตเดฐเดถเตเดจเด: Win32 API-เดฏเตเดเตเดเดพเตพ เดชเด เดฟเดเตเดเตเดจเตเดจเดคเต เด เดคเตเดฐ เดเดณเตเดชเตเดชเดฎเดฒเตเดฒ. เด เดฒเตเดฒเดพเดคเตเดคเดชเดเตเดทเด, เดเดฐเตเด เด เดคเดฟเดจเตเดฎเตเตฝ เดชเตเดคเดฟเดเตพ เดเดฃเตเดเดพเดเตเดเดฟเดฒเตเดฒ.
เดตเดพเดธเตเดคเดตเดคเตเดคเดฟเตฝ, เดเดคเต เดเดทเตโเดเดพเดจเตเดธเตเดค COM เดเดจเตเดฑเตผเดซเตเดธเตเดเดณเตเดเต เดเดฐเต เดเตเดเตเดเดฎเดพเดฃเต (เดชเตเดฐเดงเดพเดจเดฎเดพเดฏเตเด UIAutomationCore.dll), เดเตเดเดพเดคเต เดฐเตเดชเดคเตเดคเดฟเตฝ เดเดฐเต .NET เดฑเดพเดชเตเดชเดฑเตเด เดเดฃเตเดเต namespace System.Windows.Automation. เดตเดดเดฟเดฏเดฟเตฝ, เดเดคเดฟเดจเต เด
เดตเดคเดฐเดฟเดชเตเดชเดฟเดเตเด เดเดฐเต เดฌเดเต เดเดณเตเดณเดคเดฟเดจเดพเตฝ เดเดฟเดฒ UI เดเดเดเดเตเดเตพ เดจเดทเตโเดเดฎเดพเดฏเตเดเตเดเดพเด. เด
เดคเดฟเดจเดพเตฝ, UIAutomationCore.dll เดจเตเดฐเดฟเดเตเดเต เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเดพเดฃเต เดจเดฒเตเดฒเดคเต (เดจเดฟเดเตเดเตพ C#-เตฝ UiaComWrapper-เดจเตเดเตเดเตเดฑเดฟเดเตเดเต เดเตเดเตเดเดฟเดเตเดเตเดฃเตเดเตเดเตเดเดฟเตฝ, เดเดคเต เดเดคเดพเดฃเต).
COM เดเดจเตเดฑเตผเดซเตเดธเตเดเดณเตเดเต เดคเดฐเดเตเดเตพ:
(1) เด
เดฑเดฟเดฏเดชเตเดชเตเดเตเดจเตเดจ เด
เดเดฟเดธเตเดฅเดพเดจ - "เดเดฒเตเดฒเดพ เดคเดฟเดจเตเดฎเดเดณเตเดเตเดฏเตเด เดฑเตเดเตเดเต". เดเดฑเตเดฑเดตเตเด เดคเดพเดดเตเดจเตเดจ เดจเดฟเดฒ, เดเดฐเดฟเดเตเดเดฒเตเด เดเดชเดฏเตเดเตเดคเต เดธเตเดนเตเดฆเดฎเดฒเตเดฒ.
(2) เดเดกเดฟเดธเตเดชเดพเดเตเดเตเด เดกเตเดฑเดฟเดตเตเดฑเตเดฑเตเดตเตเดเดณเตเด (เดเดฆเดพ Excel.Application), เดเดคเต win32com.client เดชเดพเดเตเดเตเดเต เดเดชเดฏเตเดเดฟเดเตเดเต เดชเตเดคเตเดคเดฃเดฟเตฝ เดเดชเดฏเตเดเดฟเดเตเดเดพเด (pyWin32-เตฝ เดเตพเดชเตเดชเตเดเตเดคเตเดคเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต). เดเดฑเตเดฑเดตเตเด เดธเตเดเดฐเตเดฏเดชเตเดฐเดฆเดตเตเด เดฎเดจเตเดนเดฐเดตเตเดฎเดพเดฏ เดเดชเตเดทเตป.
(3) เดเดฐเต เดฎเตเดจเตเดจเดพเด เดเดเตเดทเดฟ เดชเตเดคเตเดคเตบ เดชเดพเดเตเดเตเดเดฟเดจเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเดจเตเดจ เดเดทเตโเดเดพเดจเตเดธเตเดค เดเดจเตเดฑเตผเดซเตเดธเตเดเตพ .
เดเดชเดเดฐเดฃเดเตเดเตพ: C#-เตฝ, 0.6.0+, C#-เตฝ, (UIAutomationCore.dll เดตเดดเดฟเดฏเตเดณเตเดณ C เดฑเดพเดชเตเดชเดฑเตเดเดณเตเดเต เดธเตเดดเตเดธเต เดเตเดกเต เดตเตเดณเดฟเดชเตเดชเตเดเตเดคเตเดคเดฟเดฏเดฟเดเตเดเดฟเดฒเตเดฒ) เดฑเตเดฌเดฟเดฏเดฟเตฝ.
เดเดเดฟ-เดเดธเตเดชเดฟเด
เดฒเดฟเดจเดเตเดธเต เดเตเดเตเดเดฌเดคเตเดคเดฟเดฒเต เดฎเดฟเดเตเดเดตเดพเดฑเตเด เดเดฒเตเดฒเดพ เด เดเตเดทเดเตเดเดณเตเด เดเดเตเดธเต เดตเดฟเตปเดกเต เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเดฒเดพเดฃเต เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเต เดเดจเตเดจ เดตเดธเตเดคเตเดค เดเดฃเตเดเดพเดฏเดฟเดฐเตเดจเตเดจเดฟเดเตเดเตเด (เดซเตเดกเตเดฑ 25-เตฝ, "เดเดเตเดธเต" เดตเตเดฏเตโเดฒเดพเตปเดกเดฟเดฒเตเดเตเดเต เดฎเดพเดฑเตเดฑเดฟ), "เดเดเตเดธเต" เดจเดฟเดเตเดเดณเต เดเตเดชเตเดชเต เดฒเตเดตเตฝ เดตเดฟเตปเดกเตเดเดณเตเด เดฎเตเดธเตเด เดฎเดพเดคเตเดฐเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเดพเตป เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต. เดเตเดฌเตเตผเดกเต. เดฌเดเตเดเดฃเตเดเตพ, เดฒเดฟเดธเตเดฑเตเดฑเต เดฌเตเดเตเดธเตเดเตพ เดคเตเดเดเตเดเดฟเดฏเดตเดฏเตเดเต เดตเดฟเดถเดฆเดฎเดพเดฏ เดตเดฟเดถเดเดฒเดจเดคเตเดคเดฟเดจเต, AT-SPI เดธเดพเดเตเดเตเดคเดฟเดเดตเดฟเดฆเตเดฏเดฏเตเดฃเตเดเต. เดเดฑเตเดฑเดตเตเด เดเดจเดชเตเดฐเดฟเดฏเดฎเดพเดฏ เดตเดฟเตปเดกเต เดฎเดพเดจเตเดเตผเดฎเดพเตผเดเตเดเต AT-SPI เดฐเดเดฟเดธเตเดเตเดฐเดฟ เดกเตเดฎเตบ เดเดจเตเดจเต เดตเดฟเดณเดฟเดเตเดเดชเตเดชเตเดเตเดจเตเดจเต, เด เดคเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเตพเดเตเดเดพเดฏเดฟ เดเดฐเต เดเดเตเดเตเดฎเตเดฑเตเดฑเดกเต GUI เดจเตฝเดเตเดจเตเดจเต (เดเตเดฑเดเตเดเดคเต Qt, GTK เดเดจเตเดจเดฟเดตเดฏเตเดเตเดเดฟเดฒเตเด เดชเดฟเดจเตเดคเตเดฃเดฏเตเดเตเดเตเดจเตเดจเต).
เดเดชเดเดฐเดฃเดเตเดเตพ: .
pyatspi2, เดเดจเตเดฑเต เด
เดญเดฟเดชเตเดฐเดพเดฏเดคเตเดคเดฟเตฝ, PyGObject เดชเตเดฒเตเดณเตเดณ เดจเดฟเดฐเดตเดงเดฟ เดกเดฟเดชเตปเดกเตปเดธเดฟเดเตพ เด
เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เดธเดพเดเตเดเตเดคเดฟเดเดตเดฟเดฆเตเดฏ เดคเดจเตเดจเต เดเดฐเต เดธเดพเดงเดพเดฐเดฃ เดกเตเดจเดพเดฎเดฟเดเต เดฒเตเดฌเตเดฐเดฑเดฟเดฏเดพเดฏเดฟ เดฒเดญเตเดฏเดฎเดพเดฃเต libatspi.so. เดเดฐเต เดเดฃเตเดเต . pywinauto เดฒเตเดฌเตเดฐเดฑเดฟเดเตเดเดพเดฏเดฟ, AT-SPI เดชเดฟเดจเตเดคเตเดฃ เด เดฐเตเดคเดฟเดฏเดฟเตฝ เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเดพเตป เดเดเตเดเตพ เดชเดฆเตเดงเดคเดฟเดฏเดฟเดเตเดจเตเดจเต: libatspi.so, ctypes เดฎเตเดกเตเดฏเตเตพ เดเดจเตเดจเดฟเดต เดฒเตเดกเตเดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดฒเตเดเต. เดเดตเดถเตเดฏเดฎเดพเดฏ เดชเดคเดฟเดชเตเดชเต เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเตฝ เดฎเดพเดคเตเดฐเด เดเดฐเต เดเตเดฑเดฟเดฏ เดชเตเดฐเดถเตเดจเดฎเตเดฃเตเดเต, เดเดพเดฐเดฃเด GTK+, Qt เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเตพเดเตเดเต เด
เดต เด
เดฒเตเดชเด เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฃเต. เดชเตเตผเดฃเตเดฃ เดฒเดฟเดจเดเตเดธเต เดชเดฟเดจเตเดคเตเดฃเดฏเตเดเต pywinauto 0.7.0 เดจเตเดฑเต เดฑเดฟเดฒเตเดธเต 2018 เดจเตเดฑเต เดเดฆเตเดฏ เดชเดเตเดคเดฟเดฏเดฟเตฝ เดชเตเดฐเดคเตเดเตเดทเดฟเดเตเดเดพเด.
Apple เดชเตเดฐเดตเตเดถเดจเดเตเดทเดฎเดค API
MacOS-เดจเต เดธเตเดตเดจเตเดคเด เดเดเตเดเตเดฎเตเดทเตป เดญเดพเดทเดฏเตเดฃเตเดเต, AppleScript. เดชเตเดคเตเดคเดฃเดฟเตฝ เดเดคเตเดชเตเดฒเตเดจเตเดจเต เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเดพเตป, เดคเตเตผเดเตเดเดฏเดพเดฏเตเด, เดจเดฟเดเตเดเตพ ObjectiveC-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดซเดเดเตเดทเดจเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต. เดเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเดคเต, MacOS 10.6-เตฝ, pyobjc เดชเดพเดเตเดเตเดเต เดฎเตเตปเดเตเดเตเดเดฟ เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดค เดชเตเดคเตเดคเดฃเดฟเตฝ เดเตพเดชเตเดชเตเดเตเดคเตเดคเดฟเดฏเดฟเดเตเดเตเดฃเตเดเต. pywinauto-เดฏเดฟเตฝ เดญเดพเดตเดฟ เดชเดฟเดจเตเดคเตเดฃเดฏเตโเดเตเดเดพเดฏเดฟ เดกเดฟเดชเตปเดกเตปเดธเดฟเดเตพ เดฒเดฟเดธเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเตเด เดเดคเต เดเดณเตเดชเตเดชเดฎเดพเดเตเดเตเด.
เดเดชเดเดฐเดฃเดเตเดเตพ: เดเดชเตเดชเดฟเตพ เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเต เดญเดพเดทเดฏเตเดเตเดเต เดชเตเดฑเดฎเต, เดเดคเต เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเดฃเตเดเดคเดพเดฃเต , aka pyatom. เดเดคเต เดเตฝโเดกเดฟโเดเดฟโเดชเดฟเดฏเตเดฎเดพเดฏเดฟ เดชเตเดฐเตเดคเตเดคเดชเตเดชเตเดเตเดจเตเดจ เดเดจเตเดฑเตผเดซเตเดธเต เดเดฃเต, เดชเดเตเดทเต เดเดฐเต เดเดฑเตเดฑเดชเตเดชเตเดเตเด เดฒเตเดฌเตเดฐเดฑเดฟ เดเตเดเดฟเดฏเดพเดฃเต. เด
เดคเดฟเดจเตเดฃเตเดเต , เดเดจเตเดฑเต เดตเดฟเดฆเตเดฏเดพเตผเดคเตเดฅเดฟ เดเดดเตเดคเดฟเดฏเดคเต. เด
เดฑเดฟเดฏเดชเตเดชเตเดเตเดจเตเดจ เดเดฐเต เดชเตเดฐเดถเตเดจเดฎเตเดฃเตเดเต: เดซเตเดฒเตเดเตเดธเดฟเดฌเดฟเตพ เดเตเดฎเดฟเดเดเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒ (เดฐเตเดคเดฟเดเตพ waitFor*). เดเดจเตเดจเดพเตฝ เดฎเตเดคเตเดคเดคเตเดคเดฟเตฝ, เดเดฐเต เดฎเตเดถเด เดเดพเดฐเตเดฏเดฎเดฒเตเดฒ.
Pywinauto เดเดชเดฏเตเดเดฟเดเตเดเต เดเดเตเดเดจเต เดเดฐเดเดญเดฟเดเตเดเดพเด
เดเดฐเต GUI เดเดฌเตโเดเดเตโเดฑเตเดฑเต เดเตปเดธเตโเดชเตเดเตเดเตผ (เดธเตโเดชเต เดเตเตพ เดเดจเตเดจเต เดตเดฟเดณเดฟเดเตเดเตเดจเตเดจเดคเต) เดเดชเดฏเตเดเดฟเดเตเดเต เดธเตเดตเดฏเด เดเดฏเตเดงเดฎเดพเดเตเดเตเด เดเดจเตเดจเดคเดพเดฃเต เดเดฆเตเดฏเดชเดเดฟ. เดเดณเตเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดชเด เดฟเดเตเดเดพเตป เดเดคเต เดจเดฟเดเตเดเดณเต เดธเดนเดพเดฏเดฟเดเตเดเตเด: เดฎเตเดฒเดเดเตเดเดณเตเดเต เดถเตเดฐเตเดฃเดฟ เดเดเตเดเดจเต เดเดเดจเดพเดชเดฐเดฎเดพเดฃเต, เดเดจเตเดคเตเดเตเดเต เดชเตเดฐเตเดชเตเดชเตผเดเตเดเดฟเดเตพ เดฒเดญเตเดฏเดฎเดพเดฃเต. เดเดฑเตเดฑเดตเตเด เดชเตเดฐเดถเดธเตเดคเดฎเดพเดฏ เดธเตเดฑเตเดฑเต เดเตปเดธเตเดชเตเดเตเดเตผเดฎเดพเตผ:
- เดธเตเดชเต++ - เดเดเตเดธเตเดชเตเดฐเดธเต เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดเดฎเตเดฎเตเดฏเตเดฃเดฟเดฑเตเดฑเดฟ เดชเดคเดฟเดชเตเดชเต เดเตพเดชเตเดชเตเดเต, เดตเดฟเดทเตเดตเตฝ เดธเตเดฑเตเดฑเตเดกเดฟเดฏเตเดฏเดฟเตฝ เดเตพเดชเตเดชเตเดเตเดคเตเดคเดฟเดฏเดฟเดเตเดเตเดฃเตเดเต. Win32 API เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต. เด เดฆเตเดฆเตเดนเดคเตเดคเดฟเดจเตเดฑเต เดเตเดฒเตเดฃเตเด เด เดฑเดฟเดฏเดชเตเดชเตเดเตเดจเตเดจเต เดเดเตเดเตเดเดฑเตเดฑเต เดตเดฟเตปเดกเต เดตเดฟเดตเดฐเด.
- Inspect.exe - Windows SDK-เดฏเดฟเตฝ เดเตพเดชเตเดชเตเดเตเดคเตเดคเดฟเดฏเดฟเดเตเดเตเดฃเตเดเต. เดจเดฟเดเตเดเตพ เดเดคเต เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดคเดฟเดเตเดเตเดฃเตเดเตเดเตเดเดฟเตฝ, 64-เดฌเดฟเดฑเตเดฑเต เดตเดฟเตปเดกเตเดธเดฟเตฝ เดจเดฟเดเตเดเตพเดเตเดเต เด
เดคเต เดซเตเตพเดกเดฑเดฟเตฝ เดเดฃเตเดเตเดคเตเดคเดพเดจเดพเดเตเด
C:Program Files (x86)Windows Kits<winver>binx64. เดเตปเดธเตเดชเตเดเตเดเดฑเดฟเตฝ เดคเดจเตเดจเต เดจเดฟเดเตเดเตพ เดเดฐเต เดฎเตเดกเต เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต เดฏเตเด เดเดเตเดเตเดฎเตเดทเตป เดเดเดเดธเต เดเดเดฏเตเดเตเดเต เดชเดเดฐเด (เดธเดเตเดต เดชเตเดฐเดตเตเดถเดจเดเตเดทเดฎเดค, เดฏเตเด เดเดเตเดเตเดฎเตเดทเดจเตเดฑเต เดชเตเตผเดตเตเดตเดฟเดเตป).
เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดชเดฐเดฟเดถเตเดงเดฟเดเตเด เดถเตเดทเด, เดเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจ เดฌเดพเดเตเดเตเตปเดกเต เดเดเตเดเตพ เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเตเดจเตเดจเต. เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดเดฌเตโเดเดเตโเดฑเตเดฑเต เดธเตเดทเตโเดเดฟเดเตเดเตเดฎเตเดชเตเตพ เดฌเดพเดเตเดเตเตปเดกเดฟเดจเตเดฑเต เดชเตเดฐเต เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเดฟเดฏเดพเตฝ เดฎเดคเดฟ.
- เดฌเดพเดเตเดเตเตปเดกเต=โwin32โณ โ เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ เดเดชเดฏเตเดเดฟเดเตเดเตเดฎเตเดชเตเตพ, MFC, WTL, VB6, เดฎเดฑเตเดฑเต เดฒเตเดเดธเดฟ เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเตพ เดเดจเตเดจเดฟเดตเดฏเดฟเตฝ เดจเดจเตเดจเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต.
- เดฌเดพเดเตเดเตเตปเดกเต=โuiaโ - MS UI เดเดเตเดเตเดฎเตเดทเดจเดพเดฏเตเดณเตเดณ เดชเตเดคเดฟเดฏ เดฌเดพเดเตเดเตเตปเดกเต: WPF, WinForms เดเดจเตเดจเดฟเดตเดฏเดฟเตฝ เดจเดจเตเดจเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต; เดกเตเตฝเดซเดฟ, เดตเดฟเตปเดกเตเดธเต เดธเตเดฑเตเดฑเตเตผ เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเตพเดเตเดเตเด เดจเดฒเตเดฒเดคเดพเดฃเต; Qt5, เดเดฟเดฒ เดเดพเดต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเตพ เดเดจเตเดจเดฟเดตเดฏเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต. เดชเตเดคเตเดตเต, Inspect.exe เดฎเตเดฒเดเดเตเดเดณเตเด เด
เดตเดฏเตเดเต เดเตเดฃเดเตเดเดณเตเด เดเดพเดฃเตเดเดฏเดพเดฃเตเดเตเดเดฟเตฝ, เด เดฌเดพเดเตเดเตเตปเดกเต เด
เดจเตเดฏเตเดเตเดฏเดฎเดพเดฃเต. เดคเดคเตเดตเดคเตเดคเดฟเตฝ, เดฎเดฟเดเตเด เดฌเตเดฐเตเดธเดฑเตเดเดณเตเด เดฏเตเด เดเดเตเดเตเดฎเตเดทเดจเต เดชเดฟเดจเตเดคเตเดฃเดฏเตเดเตเดเตเดจเตเดจเต (เดฎเตเดธเดฟเดฒเตเดฒ เดธเตเดฅเดฟเดฐเดธเตเดฅเดฟเดคเดฟเดฏเดพเดฏเดฟ, เดเดฐเดเดญเดฟเดเตเดเตเดฎเตเดชเตเตพ Chrome-เดจเต เดเดฎเดพเตปเดกเต เดฒเตเตป เดเต เดจเตฝเดเตเดฃเตเดเดคเตเดฃเตเดเต.
--force-renderer-accessibilityInspect.exe-เดฒเต เดชเตเดเตเดเดณเดฟเดฒเต เดเดเดเดเตเดเตพ เดเดพเดฃเตเดจเตเดจเดคเดฟเดจเต). เดคเตเตผเดเตเดเดฏเดพเดฏเตเด, เด เดฎเตเดเดฒเดฏเดฟเตฝ เดธเตเดฒเดฟเดจเดฟเดฏเดตเตเดฎเดพเดฏเตเดณเตเดณ เดฎเดคเตเดธเดฐเด เดธเดพเดงเตเดฏเดฎเดฒเตเดฒ. เดฌเตเดฐเตเดธเดฑเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดพเดจเตเดณเตเดณ เดฎเดฑเตเดฑเตเดฐเต เดฎเดพเตผเดเด (เดเดฐเต เดเตเดฐเตเดธเต-เดชเตเดฐเตเดกเดเตเดฑเตเดฑเต เดธเดพเดนเดเดฐเตเดฏเดคเตเดคเดฟเดจเต เดเดชเดฏเตเดเดชเตเดฐเดฆเดฎเดพเดฏเตเดเตเดเดพเด).
เดเดเตเดเตเดฎเตเดทเดจเตเดณเตเดณ เดเตปเดเตเดฐเดฟ เดชเตเดฏเดฟเดจเตเดฑเตเดเตพ
เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดตเดฟเดชเตเดฒเดฎเดพเดฏเดฟ เดเดตเตเดทเดฃเด เดเตเดฏเตเดคเดฟเดเตเดเตเดฃเตเดเต. เดเดฐเต เด
เดชเตเดฒเดฟเดเตเดเตเดทเตป เดเดฌเตโเดเดเตโเดฑเตเดฑเต เดธเตเดทเตโเดเดฟเดเตเดเต เด
เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเดพเดจเต เดเดคเดฟเดจเดเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจ เดเดจเตเดจเดฟเดฒเตเดเตเดเต เด
เดฑเตเดฑเดพเดเตเดเตเดเตเดฏเตเดฏเดพเดจเต เดธเดฎเดฏเดฎเดพเดฏเดฟ. เดเดคเต เดเดฐเต เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเต เดเตเดฒเดพเดธเดฟเดจเตเดฑเต เดเดฐเต เดเตเดฒเตเตบ เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ subprocess.Popen, เด
เดคเดพเดฏเดคเต เดจเดฟเดเตเดเดณเตเดเต เดเดฒเตเดฒเดพ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเดณเตเดฏเตเด เดชเตเดฐเดเตเดฐเดฟเดฏเดฏเตเดเต เด
เดคเดฟเดฐเตเดเดณเดฟเดฒเตเดเตเดเต เดชเดฐเดฟเดฎเดฟเดคเดชเตเดชเตเดเตเดคเตเดคเตเดจเตเดจ เดเดฐเต เดเตปเดชเตเดเตเดเต เดเดฌเตโเดเดเตเดฑเตเดฑเต. เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดฑเต เดจเดฟเดฐเดตเดงเดฟ เดธเดจเตเดฆเตผเดญเดเตเดเตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเตเดฃเตเดเตเดเตเดเดฟเตฝ เดเดคเต เดตเดณเดฐเต เดเดชเดฏเตเดเดชเตเดฐเดฆเดฎเดพเดฃเต, เดเดจเตเดจเดพเตฝ เดฌเดพเดเตเดเดฟเดฏเตเดณเตเดณเดต เดคเตเดเดพเตป เดจเดฟเดเตเดเตพ เดเดเตเดฐเดนเดฟเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒ.
from pywinauto.application import Application
app = Application(backend="uia").start('notepad.exe')
# ะะฟะธัะตะผ ะพะบะฝะพ, ะบะพัะพัะพะต ั
ะพัะธะผ ะฝะฐะนัะธ ะฒ ะฟัะพัะตััะต Notepad.exe
dlg_spec = app.UntitledNotepad
# ะถะดะตะผ ะฟะพะบะฐ ะพะบะฝะพ ัะตะฐะปัะฝะพ ะฟะพัะฒะธััั
actionable_dlg = dlg_spec.wait('visible')เดจเดฟเดเตเดเตพเดเตเดเต เดเดฐเตเดธเดฎเดฏเด เดจเดฟเดฐเดตเดงเดฟ เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเตพ เดเตเดเดพเดฐเตเดฏเด เดเตเดฏเตเดฏเดฃเดฎเตเดเตเดเดฟเตฝ, เด เดเตเดฒเดพเดธเต เดจเดฟเดเตเดเดณเต เดธเดนเดพเดฏเดฟเดเตเดเตเด Desktop. เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, Win10-เดฒเต เดเดฐเต เดเดพเตฝเดเตเดเตเดฒเตเดฑเตเดฑเดฑเดฟเตฝ, เดเดเดเดเตเดเดณเตเดเต เดถเตเดฐเตเดฃเดฟ เดจเดฟเดฐเดตเดงเดฟ เดชเตเดฐเดเตเดฐเดฟเดฏเดเดณเดฟเตฝ เดตเตเดฏเดพเดชเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต (เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ calc.exe). เด
เดคเดฟเดจเดพเตฝ เดเดฐเต เดตเดธเตเดคเตเดตเตเด เดเดฒเตเดฒ Desktop เดชเตเดฐเดพ.
from subprocess import Popen
from pywinauto import Desktop
Popen('calc.exe', shell=True)
dlg = Desktop(backend="uia").Calculator
dlg.wait('visible')เดฑเตเดเตเดเต เดเดฌเตเดเดเตเดฑเตเดฑเต (Application เด
เดฅเดตเดพ Desktop) เดจเดฟเดเตเดเตพ เดฌเดพเดเตเดเตเตปเดกเต เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเตเดฃเตเด เดเดฐเตเดฏเตเดฐเต เดธเตเดฅเดฒเดฎเดพเดฃเต. เดฎเดฑเตเดฑเตเดฒเตเดฒเดพเด "เดธเตเดชเตเดธเดฟเดซเดฟเดเตเดเตเดทเตป-> เดฑเดพเดชเตเดชเตผ" เดเดจเตเดจ เดเดถเดฏเดคเตเดคเดฟเดฒเตเดเตเดเต เดธเตเดคเดพเดฐเตเดฏเดฎเดพเดฏเดฟ เดตเตเดดเตเดจเตเดจเต, เด
เดคเต เดชเดฟเดจเตเดจเตเดเต เดเตผเดเตเด เดเตเดฏเตเดฏเดชเตเดชเตเดเตเด.
เดตเดฟเตปเดกเต/เดเดฒเดฎเตเดจเตเดฑเต เดธเตเดชเตเดธเดฟเดซเดฟเดเตเดเตเดทเดจเตเดเตพ
เดเดคเดพเดฃเต pywinauto เดเดจเตเดฑเตผเดซเตเดธเต เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดชเตเดฐเดงเดพเดจ เดเดถเดฏเด. เดจเดฟเดเตเดเตพเดเตเดเต เดเดฐเต เดตเดฟเตปเดกเต/เดเดเดเด เดเดเดฆเตเดถเด เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดเตเดเตเดคเตฝ เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดตเดฟเดตเดฐเดฟเดเตเดเดพเด, เด เดคเต เดเดคเตเดตเดฐเต เดจเดฟเดฒเดตเดฟเดฒเดฟเดฒเตเดฒเตเดเตเดเดฟเดฒเตเด เดเดคเดฟเดจเดเด เด เดเดเตเดเดฟเดเตเดเตเดฃเตเดเตเดเตเดเดฟเดฒเตเด. เดตเดฟเตปเดกเต เดธเตเดชเตเดธเดฟเดซเดฟเดเตเดเตเดทเตป (เดตเดธเตเดคเต เดตเดฟเตปเดกเต เดธเตเดชเตเดธเดฟเดซเดฟเดเตเดเตเดทเตป) เดเดฐเต เดฏเดฅเดพเตผเดคเตเดฅ เดตเดฟเตปเดกเต เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดเดเดเดคเตเดคเดฟเดจเดพเดฏเดฟ เดคเดฟเดฐเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดฎเดพเดจเดฆเดฃเตเดกเด เดธเดเดญเดฐเดฟเดเตเดเตเดจเตเดจเต.
เดตเดฟเดถเดฆเดฎเดพเดฏ เดตเดฟเตปเดกเต เดธเตเดชเตเดธเดฟเดซเดฟเดเตเดเตเดทเดจเตเดฑเต เดเดฆเดพเดนเดฐเดฃเด:
>>> dlg_spec = app.window(title='Untitled - Notepad')
>>> dlg_spec
<pywinauto.application.WindowSpecification object at 0x0568B790>
>>> dlg_spec.wrapper_object()
<pywinauto.controls.win32_controls.DialogWrapper object at 0x05639B70>เดฐเตเดคเดฟ เดตเดฟเดณเดฟเดเตเดเตเดจเตเดจเดคเดฟเดฒเตเดเต เดตเดฟเตปเดกเต เดคเดฟเดฐเดฏเตฝ เดคเดจเตเดจเต เดธเดเดญเดตเดฟเดเตเดเตเดจเตเดจเต .wrapper_object(). เดเดคเต เดเดฐเต เดฏเดฅเดพเตผเดคเตเดฅ เดตเดฟเตปเดกเต/เดเดเดเด เด
เดฒเตเดฒเตเดเตเดเดฟเตฝ เดคเตเดฐเตเดเตพเดเตเดเดพเดฏเดฟ เดเดฐเต เดจเดฟเดถเตเดเดฟเดค "เดฑเดพเดชเตเดชเตผ" เดจเตฝเดเตเดจเตเดจเต ElementNotFoundError (เดเดฟเดฒเดชเตเดชเตเตพ ElementAmbiguousError, เดจเดฟเดฐเดตเดงเดฟ เดเดเดเดเตเดเตพ เดเดฃเตเดเตเดคเตเดคเดฟเดฏเดพเตฝ, เด
เดคเดพเดฏเดคเต, เดจเดฟเดเตเดเตพ เดคเดฟเดฐเดฏเตฝ เดฎเดพเดจเดฆเดฃเตเดกเด เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต). เด "เดฑเดพเดชเตเดชเตผ" เดเดคเดฟเดจเดเด เดเดฐเต เดเดเดเด เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฟเดฒ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ เดเดเตเดเดจเต เดเตเดฏเตเดฏเดพเดฎเตเดจเตเดจเตเด เด
เดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดกเดพเดฑเตเดฑ เดธเตเดตเตเดเดฐเดฟเดเตเดเดฃเดฎเตเดจเตเดจเตเด เด
เดฑเดฟเดฏเดพเด.
เดชเตเดคเตเดคเดฃเดฟเดจเต เดเตเตพ เดฎเดฑเดฏเตเดเตเดเดพเตป เดเดดเดฟเดฏเตเด .wrapper_object(), เด
เดคเดฟเดจเดพเตฝ เด
เดจเตเดคเดฟเดฎ เดเตเดกเต เดเตเดฑเตเดคเดพเดฏเดฟ เดฎเดพเดฑเตเดจเตเดจเต. เดกเตเดฌเดเตเดเดฟเดเดเต เดเดตเดถเตเดฏเดเตเดเตพเดเตเดเดพเดฏเดฟ เดฎเดพเดคเตเดฐเด เดเดคเต เดเดชเดฏเตเดเดฟเดเตเดเดพเตป เดเดเตเดเตพ เดถเตเดชเดพเตผเดถ เดเตเดฏเตเดฏเตเดจเตเดจเต. เด
เดเตเดคเตเดค เดฐเดฃเตเดเต เดตเดฐเดฟเดเดณเตเด เดเดฐเต เดเดพเดฐเตเดฏเด เดเตเดฏเตเดฏเตเดจเตเดจเต:
dlg_spec.wrapper_object().minimize() # debugging
dlg_spec.minimize() # productionเดเดฐเต เดตเดฟเตปเดกเต เดธเตเดชเตเดธเดฟเดซเดฟเดเตเดเตเดทเดจเดพเดฏเดฟ เดจเดฟเดฐเดตเดงเดฟ เดคเดฟเดฐเดฏเตฝ เดฎเดพเดจเดฆเดฃเตเดกเดเตเดเดณเตเดฃเตเดเต. เดเดตเดฟเดเต เดเดคเดพเดจเตเด เดเดฆเดพเดนเดฐเดฃเดเตเดเตพ เดฎเดพเดคเตเดฐเด:
# ะผะพะณัั ะธะผะตัั ะฝะตัะบะพะปัะบะพ ััะพะฒะฝะตะน
app.window(title_re='.* - Notepad$').window(class_name='Edit')
# ะผะพะถะฝะพ ะบะพะผะฑะธะฝะธัะพะฒะฐัั ะบัะธัะตัะธะธ (ะบะฐะบ AND) ะธ ะฝะต ะพะณัะฐะฝะธัะธะฒะฐัััั ะพะดะฝะธะผ ะฟัะพัะตััะพะผ ะฟัะธะปะพะถะตะฝะธั
dlg = Desktop(backend="uia").Calculator
dlg.window(auto_id='num8Button', control_type='Button')เดธเดพเดงเตเดฏเดฎเดพเดฏ เดเดฒเตเดฒเดพ เดฎเดพเดจเดฆเดฃเตเดกเดเตเดเดณเตเดเตเดฏเตเด เดเดฐเต เดฒเดฟเดธเตเดฑเตเดฑเต เดซเดเดเตเดทเตป เดกเตเดเตโเดธเดฟเตฝ เดเดฃเตเดเต .
เดเดเตเดฐเดฟเดฌเตเดฏเตเดเตเดเตเด เดเตเดฏเตเด เดตเดดเดฟเดฏเตเดณเตเดณ เดเดเตโเดธเดธเตเดธเดฟเดจเตเดฑเต เดฎเดพเดจเตเดคเตเดฐเดฟเดเดค
เดตเดฟเตปเดกเต เดธเตเดชเตเดธเดฟเดซเดฟเดเตเดเตเดทเดจเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเดคเตเด เดเดฌเตเดเดเตเดฑเตเดฑเต เดเดเตเดฐเดฟเดฌเตเดฏเตเดเตเดเตเดเตพ เดเดฒเดจเดพเดคเตเดฎเดเดฎเดพเดฏเดฟ เดคเดฟเดฐเดฟเดเตเดเดฑเดฟเดฏเตเดจเตเดจเดคเตเด เดชเตเดคเตเดคเตบ เดเดณเตเดชเตเดชเดฎเดพเดเตเดเตเดจเตเดจเต (เดเดจเตเดคเดฐเดฟเดเดฎเดพเดฏเดฟ, เดฐเตเดคเดฟ เด
เดธเดพเดงเตเดตเดพเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต __getattribute__). เดคเตเตผเดเตเดเดฏเดพเดฏเตเด, เดเดคเตเดเตเดเดฟเดฒเตเด เดตเตเดฐเดฟเดฏเดฌเดฟเดณเดฟเดจเตเดฑเต เดชเตเดฐเดฟเดฒเตเดณเตเดณ เด
เดคเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฃเดเตเดเตพ เดเดเตเดฐเดฟเดฌเตเดฏเตเดเตเดเต เดจเดพเดฎเดคเตเดคเดฟเดฒเตเด เดเตผเดชเตเดชเตเดเตเดคเตเดคเดฟเดฏเดฟเดเตเดเตเดฃเตเดเต (เดจเดฟเดเตเดเตพเดเตเดเต เดธเตโเดชเตเดฏเตโเดธเตเดเดณเต เดเตเดฎเดเดณเต เดฎเดฑเตเดฑเต เดชเตเดฐเดคเตเดฏเตเด เดชเตเดฐเดคเตเดเดเตเดเดณเต เดเตเตผเดเตเดเดพเตป เดเดดเดฟเดฏเดฟเดฒเตเดฒ). เดญเดพเดเตเดฏเดตเดถเดพเตฝ, เด
เดเตเดทเดฐเดคเตเดคเตเดฑเตเดฑเตเดเตพเดเตเดเตเด เดเตเดฑเดฟเดฏ เดตเตเดฏเดคเดฟเดฏเดพเดจเดเตเดเตพเดเตเดเตเด เดชเตเดฐเดคเดฟเดฐเตเดงเดถเตเดทเดฟเดฏเตเดณเตเดณ "เดฎเดฟเดเดเตเด เดชเตเดฐเตเดคเตเดคเด" เดเดจเตเดจเต เดตเดฟเดณเดฟเดเตเดเดชเตเดชเตเดเตเดจเตเดจ เดคเดฟเดฐเดฏเตฝ เด
เตฝเดเตเดฐเดฟเดคเด pywinauto เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต.
app.UntitledNotepad
# ัะพ ะถะต ัะฐะผะพะต, ััะพ
app.window(best_match='UntitledNotepad')เดจเดฟเดเตเดเตพเดเตเดเต เดเดชเตเดชเตเดดเตเด เดฏเตเดฃเดฟเดเตเดกเต เดธเตโเดเตเดฐเดฟเดเดเตเดเตพ เดเดตเดถเตเดฏเดฎเตเดฃเตเดเตเดเตเดเดฟเตฝ (เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดฑเดทเตเดฏเตป เดญเดพเดทเดฏเตโเดเตเดเต), เดธเตโเดชเตเดฏเตโเดธเตเดเตพ เดฎเตเดคเดฒเดพเดฏเดต, เดจเดฟเดเตเดเตพเดเตเดเต เดเต เดเดชเดฏเตเดเดฟเดเตเดเต เดเดเตโเดธเดธเต เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเตเด (เดเดฐเต เดธเดพเดงเดพเดฐเดฃ เดจเดฟเดเดฃเตเดเต เดชเตเดฒเต):
app['Untitled - Notepad']
# ัะพ ะถะต ัะฐะผะพะต, ััะพ
app.window(best_match='Untitled - Notepad')เดฎเดพเดจเตเดคเตเดฐเดฟเด เดจเดพเดฎเดเตเดเตพเดเตเดเตเดณเตเดณ เด เดเตเดเต เดจเดฟเดฏเดฎเดเตเดเตพ
เดธเดพเดงเดพเดฐเดฃ เดฎเดพเดเดฟเดเต เดชเตเดฐเตเดเตพ เดเดเตเดเดจเต เดเดฃเตเดเตเดคเตเดคเดพเด? เดคเดฟเดฐเดฏเตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เดเดเดเดคเตเดคเดฟเดฒเตเดเตเดเต เด เดธเตเตป เดเตเดฏเตเดคเดต. เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเดฟเดจเต เดธเดฎเดพเดจเดฎเดพเดฏ เดเดฐเต เดชเตเดฐเต เดจเดฟเดเตเดเตพ เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเดฟเดฏเดพเตฝ, เดเดเดเด เดเดฃเตเดเตเดคเตเดคเตเด.
- เดถเตเตผเดทเดเด เดชเตเดฐเดเดพเดฐเด (เดเตเดเตโเดธเตเดฑเตเดฑเต, เดชเตเดฐเต):
app.Properties.OK.click() - เดตเดพเดเดเด เดตเดดเดฟเดฏเตเด เดเดฒเดฎเตเดจเตเดฑเต เดคเดฐเด เด
เดจเตเดธเดฐเดฟเดเตเดเต:
app.Properties.OKButton.click() - เดคเดฐเดตเตเด เดจเดฎเตเดชเดฑเตเด เด
เดจเตเดธเดฐเดฟเดเตเดเต:
app.Properties.Button3.click()(เดชเตเดฐเตเดเตพButton0ะธButton1เดเดฃเตเดเตเดคเตเดคเดฟเดฏ เดเดฆเตเดฏเดคเตเดคเต เดฎเตเดฒเดเดตเตเดฎเดพเดฏเดฟ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต,Button2- เดฐเดฃเตเดเดพเดฎเดคเตเดคเตเดคเดฟเดฒเตเดเตเดเต, เดคเตเดเตผเดจเตเดจเต เดเตเดฐเดฎเดคเตเดคเดฟเตฝ - เดเดฐเดฟเดคเตเดฐเดชเดฐเดฎเดพเดฏเดฟ เดเดคเต เดธเดเดญเดตเดฟเดเตเดเดคเต เดเดเตเดเดจเตเดฏเดพเดฃเต) - เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเดเต เดเตเดเตโเดธเตโเดฑเตเดฑเต (เดเดเดคเต เด
เดฒเตเดฒเตเดเตเดเดฟเตฝ เดฎเตเดเดณเดฟเตฝ) เดเตเดเดพเดคเต เดคเดฐเด เด
เดจเตเดธเดฐเดฟเดเตเดเต:
app.OpenDialog.FileNameEdit.set_text("")(เดกเตเดจเดพเดฎเดฟเดเต เดเตเดเตเดธเตเดฑเตเดฑเตเดณเตเดณ เดเดเดเดเตเดเตพเดเตเดเต เดเดชเดฏเตเดเดชเตเดฐเดฆเดฎเดพเดฃเต) - เดเตเดชเตเดชเตเด เดเดณเตเดณเดฟเดฒเต เดตเดพเดเดเดตเตเด เด
เดจเตเดธเดฐเดฟเดเตเดเต:
app.Properties.TabControlSharing.select("General")
เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดฐเดฃเตเดเต เดฎเตเดจเตเดจเต เดจเดฟเดฏเดฎเดเตเดเตพ เดเดฐเต เดธเดฎเดฏเด เดชเตเดฐเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต, เด เดชเตเตผเดตเตเดตเดฎเดพเดฏเดฟ เดเตเดเตเดคเตฝ. เดเดฐเต เดเดเดเดคเตเดคเดฟเดจเตเด เดเดคเตเดเตเดเต เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเด เดชเตเดฐเตเดเตพ เดฒเดญเตเดฏเดฎเดพเดฃเตเดจเตเดจเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเดพเตป, เดจเดฟเดเตเดเตพเดเตเดเต เดฐเตเดคเดฟ เดเดชเดฏเตเดเดฟเดเตเดเดพเด print_control_identifiers(). เดเดคเดฟเดจเต เดธเตโเดเตเดฐเตเดจเดฟเดฒเตเดเตเดเตเด เดซเดฏเดฒเดฟเดฒเตเดเตเดเตเด เดเดเดเดเตเดเดณเตเดเต เดเดฐเต เดเตเดฐเต เดชเตเดฐเดฟเดจเตเดฑเต เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเตเด. เดเดฐเต เดฎเตเดฒเดเดคเตเดคเดฟเดจเตเด, เด เดคเดฟเดจเตเดฑเต เดธเตเดฑเตเดฑเดพเตปเดกเตเตผเดกเต เดฎเดพเดเดฟเดเต เดชเตเดฐเตเดเตพ เด เดเตเดเดเดฟเดเตเดเตเดจเตเดจเต. เดจเดฟเดเตเดเตพเดเตเดเต เด เดตเดฟเดเต เดจเดฟเดจเตเดจเต เดเตเตฝเดกเต เดเดเดเดเตเดเดณเตเดเต เดเตเดเตเดคเตฝ เดตเดฟเดถเดฆเดฎเดพเดฏ เดธเตเดชเตเดธเดฟเดซเดฟเดเตเดเตเดทเดจเตเดเตพ เดชเดเตผเดคเตเดคเดฟ เดเดเตเดเดฟเดเตเดเดพเด. เดธเตเดเตเดฐเดฟเดชเตเดฑเตเดฑเดฟเดฒเต เดซเดฒเด เดเดคเตเดชเตเดฒเต เดเดพเดฃเดชเตเดชเตเดเตเด:
app.Properties.child_window(data-gt-translate-attributes='["title"]' title="Contains:", auto_id="13087", control_type="Edit")เดฎเตเดฒเดเดเตเดเดณเตเดเต เดตเตเดเตเดทเด เดคเดจเตเดจเต เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เดเดฐเต เดตเดฒเดฟเดฏ เดชเดพเดฆเดฐเดเตเดทเดฏเดพเดฃเต.
>>> app.Properties.print_control_identifiers()
Control Identifiers:
Dialog - 'Windows NT Properties' (L688, T518, R1065, B1006)
[u'Windows NT PropertiesDialog', u'Dialog', u'Windows NT Properties']
child_window(data-gt-translate-attributes='["title"]' title="Windows NT Properties", control_type="Window")
|
| Image - '' (L717, T589, R749, B622)
| [u'', u'0', u'Image1', u'Image0', 'Image', u'1']
| child_window(auto_id="13057", control_type="Image")
|
| Image - '' (L717, T630, R1035, B632)
| ['Image2', u'2']
| child_window(auto_id="13095", control_type="Image")
|
| Edit - 'Folder name:' (L790, T596, R1036, B619)
| [u'3', 'Edit', u'Edit1', u'Edit0']
| child_window(data-gt-translate-attributes='["title"]' title="Folder name:", auto_id="13156", control_type="Edit")
|
| Static - 'Type:' (L717, T643, R780, B658)
| [u'Type:Static', u'Static', u'Static1', u'Static0', u'Type:']
| child_window(data-gt-translate-attributes='["title"]' title="Type:", auto_id="13080", control_type="Text")
|
| Edit - 'Type:' (L790, T643, R1036, B666)
| [u'4', 'Edit2', u'Type:Edit']
| child_window(data-gt-translate-attributes='["title"]' title="Type:", auto_id="13059", control_type="Edit")
|
| Static - 'Location:' (L717, T669, R780, B684)
| [u'Location:Static', u'Location:', u'Static2']
| child_window(data-gt-translate-attributes='["title"]' title="Location:", auto_id="13089", control_type="Text")
|
| Edit - 'Location:' (L790, T669, R1036, B692)
| ['Edit3', u'Location:Edit', u'5']
| child_window(data-gt-translate-attributes='["title"]' title="Location:", auto_id="13065", control_type="Edit")
|
| Static - 'Size:' (L717, T695, R780, B710)
| [u'Size:Static', u'Size:', u'Static3']
| child_window(data-gt-translate-attributes='["title"]' title="Size:", auto_id="13081", control_type="Text")
|
| Edit - 'Size:' (L790, T695, R1036, B718)
| ['Edit4', u'6', u'Size:Edit']
| child_window(data-gt-translate-attributes='["title"]' title="Size:", auto_id="13064", control_type="Edit")
|
| Static - 'Size on disk:' (L717, T721, R780, B736)
| [u'Size on disk:', u'Size on disk:Static', u'Static4']
| child_window(data-gt-translate-attributes='["title"]' title="Size on disk:", auto_id="13107", control_type="Text")
|
| Edit - 'Size on disk:' (L790, T721, R1036, B744)
| ['Edit5', u'7', u'Size on disk:Edit']
| child_window(data-gt-translate-attributes='["title"]' title="Size on disk:", auto_id="13106", control_type="Edit")
|
| Static - 'Contains:' (L717, T747, R780, B762)
| [u'Contains:1', u'Contains:0', u'Contains:Static', u'Static5', u'Contains:']
| child_window(data-gt-translate-attributes='["title"]' title="Contains:", auto_id="13088", control_type="Text")
|
| Edit - 'Contains:' (L790, T747, R1036, B770)
| [u'8', 'Edit6', u'Contains:Edit']
| child_window(data-gt-translate-attributes='["title"]' title="Contains:", auto_id="13087", control_type="Edit")
|
| Image - 'Contains:' (L717, T773, R1035, B775)
| [u'Contains:Image', 'Image3', u'Contains:2']
| child_window(data-gt-translate-attributes='["title"]' title="Contains:", auto_id="13096", control_type="Image")
|
| Static - 'Created:' (L717, T786, R780, B801)
| [u'Created:', u'Created:Static', u'Static6', u'Created:1', u'Created:0']
| child_window(data-gt-translate-attributes='["title"]' title="Created:", auto_id="13092", control_type="Text")
|
| Edit - 'Created:' (L790, T786, R1036, B809)
| [u'Created:Edit', 'Edit7', u'9']
| child_window(data-gt-translate-attributes='["title"]' title="Created:", auto_id="13072", control_type="Edit")
|
| Image - 'Created:' (L717, T812, R1035, B814)
| [u'Created:Image', 'Image4', u'Created:2']
| child_window(data-gt-translate-attributes='["title"]' title="Created:", auto_id="13097", control_type="Image")
|
| Static - 'Attributes:' (L717, T825, R780, B840)
| [u'Attributes:Static', u'Static7', u'Attributes:']
| child_window(data-gt-translate-attributes='["title"]' title="Attributes:", auto_id="13091", control_type="Text")
|
| CheckBox - 'Read-only (Only applies to files in folder)' (L790, T825, R1035, B841)
| [u'CheckBox0', u'CheckBox1', 'CheckBox', u'Read-only (Only applies to files in folder)CheckBox', u'Read-only (Only applies to files in folder)']
| child_window(data-gt-translate-attributes='["title"]' title="Read-only (Only applies to files in folder)", auto_id="13075", control_type="CheckBox")
|
| CheckBox - 'Hidden' (L790, T848, R865, B864)
| ['CheckBox2', u'HiddenCheckBox', u'Hidden']
| child_window(data-gt-translate-attributes='["title"]' title="Hidden", auto_id="13076", control_type="CheckBox")
|
| Button - 'Advanced...' (L930, T845, R1035, B868)
| [u'Advanced...', u'Advanced...Button', 'Button', u'Button1', u'Button0']
| child_window(data-gt-translate-attributes='["title"]' title="Advanced...", auto_id="13154", control_type="Button")
|
| Button - 'OK' (L814, T968, R889, B991)
| ['Button2', u'OK', u'OKButton']
| child_window(data-gt-translate-attributes='["title"]' title="OK", auto_id="1", control_type="Button")
|
| Button - 'Cancel' (L895, T968, R970, B991)
| ['Button3', u'CancelButton', u'Cancel']
| child_window(data-gt-translate-attributes='["title"]' title="Cancel", auto_id="2", control_type="Button")
|
| Button - 'Apply' (L976, T968, R1051, B991)
| ['Button4', u'ApplyButton', u'Apply']
| child_window(data-gt-translate-attributes='["title"]' title="Apply", auto_id="12321", control_type="Button")
|
| TabControl - '' (L702, T556, R1051, B962)
| [u'10', u'TabControlSharing', u'TabControlPrevious Versions', u'TabControlSecurity', u'TabControl', u'TabControlCustomize']
| child_window(auto_id="12320", control_type="Tab")
| |
| | TabItem - 'General' (L704, T558, R753, B576)
| | [u'GeneralTabItem', 'TabItem', u'General', u'TabItem0', u'TabItem1']
| | child_window(data-gt-translate-attributes='["title"]' title="General", control_type="TabItem")
| |
| | TabItem - 'Sharing' (L753, T558, R801, B576)
| | [u'Sharing', u'SharingTabItem', 'TabItem2']
| | child_window(data-gt-translate-attributes='["title"]' title="Sharing", control_type="TabItem")
| |
| | TabItem - 'Security' (L801, T558, R851, B576)
| | [u'Security', 'TabItem3', u'SecurityTabItem']
| | child_window(data-gt-translate-attributes='["title"]' title="Security", control_type="TabItem")
| |
| | TabItem - 'Previous Versions' (L851, T558, R947, B576)
| | [u'Previous VersionsTabItem', u'Previous Versions', 'TabItem4']
| | child_window(data-gt-translate-attributes='["title"]' title="Previous Versions", control_type="TabItem")
| |
| | TabItem - 'Customize' (L947, T558, R1007, B576)
| | [u'CustomizeTabItem', 'TabItem5', u'Customize']
| | child_window(data-gt-translate-attributes='["title"]' title="Customize", control_type="TabItem")
|
| TitleBar - 'None' (L712, T521, R1057, B549)
| ['TitleBar', u'11']
| |
| | Menu - 'System' (L696, T526, R718, B548)
| | [u'System0', u'System', u'System1', u'Menu', u'SystemMenu']
| | child_window(data-gt-translate-attributes='["title"]' title="System", auto_id="MenuBar", control_type="MenuBar")
| | |
| | | MenuItem - 'System' (L696, T526, R718, B548)
| | | [u'System2', u'MenuItem', u'SystemMenuItem']
| | | child_window(data-gt-translate-attributes='["title"]' title="System", control_type="MenuItem")
| |
| | Button - 'Close' (L1024, T519, R1058, B549)
| | [u'CloseButton', u'Close', 'Button5']
| | child_window(data-gt-translate-attributes='["title"]' title="Close", control_type="Button")เดเดฟเดฒ เดธเดจเตเดฆเตผเดญเดเตเดเดณเดฟเตฝ, เดฎเตเดดเตเดตเตป เดเตเดฐเตเดฏเตเด เดชเตเดฐเดฟเดจเตเดฑเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเต เดฎเดจเตเดฆเดเดคเดฟเดฏเดฟเดฒเดพเดฏเดฟเดฐเดฟเดเตเดเดพเด (เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, iTunes-เตฝ เดเดฐเต เดเดพเดฌเดฟเตฝ เดฎเตเดตเดพเดฏเดฟเดฐเดคเตเดคเตเดณเด เดเดเดเดเตเดเตพ เดเดฃเตเดเต!), เดเดจเตเดจเดพเตฝ เดจเดฟเดเตเดเตพเดเตเดเต เดเดชเตเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเดพเด depth (เดเดดเด): depth=1 - เดฎเตเดฒเดเด เดคเดจเตเดจเต, depth=2 - เดเดเดจเดเดฟเดฏเตเดณเตเดณ เดเตเดเตเดเดฟเดเตพ เดฎเดพเดคเตเดฐเด, เดคเตเดเดเตเดเดฟเดฏเดต. เดธเตเดทเตเดเดฟเดเตเดเตเดฎเตเดชเตเตพ เดธเตเดชเตเดธเดฟเดซเดฟเดเตเดเตเดทเดจเตเดเดณเดฟเดฒเตเด เดเดคเต เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเดพเด child_window.
เดเดฆเดพเดนเดฐเดฃเดเตเดเตพ
เดเดเตเดเตพ เดจเดฟเดฐเดจเตเดคเดฐเด เดจเดฟเดฑเดฏเตเดเตเดเตเดจเตเดจเต . เด
เดเตเดคเตเดคเดฟเดเตเดฏเตเดณเตเดณเดตเดฏเดฟเตฝ, WireShark เดจเตเดฑเตเดฑเตโเดตเตผเดเตเดเต เด
เดจเดฒเตเดธเดฑเดฟเดจเตเดฑเต เดเดเตเดเตเดฎเตเดทเตป เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเดฃเตเดเดคเดพเดฃเต (เดเดคเต เดเดฐเต Qt5 เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดฑเต เดฎเดฟเดเดเตเด เดเดฆเดพเดนเดฐเดฃเดฎเดพเดฃเต; เดเดฐเต GUI เดเดฒเตเดฒเดพเดคเต เด เดเดพเดธเตโเดเตเดเต เดชเดฐเดฟเดนเดฐเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเตเดฎเตเดเตเดเดฟเดฒเตเด, เดเดพเดฐเดฃเด เดเดฃเตเดเต scapy.Sniffer เดชเตเดคเตเดคเตบ เดชเดพเดเตเดเตเดเดฟเตฝ เดจเดฟเดจเตเดจเต ). เดฑเดฟเดฌเตบ เดเตเตพเดฌเดพเดฑเดฟเดจเตเดชเตเดชเด เดเดเดเดธเต เดชเตเดฏเดฟเดจเตเดฑเต เดเดเตเดเตเดฎเตเดทเดจเตเดฑเต เดเดฐเต เดเดฆเดพเดนเดฐเดฃเดตเตเดฎเตเดฃเตเดเต.
เดเดจเตเดฑเต เดเดฐเต เดตเดฟเดฆเตเดฏเดพเตผเดคเตเดฅเดฟ เดเดดเตเดคเดฟเดฏ เดฎเดฑเตเดฑเตเดฐเต เดฎเดฟเดเดเตเด เดเดฆเดพเดนเดฐเดฃเด: (เด เดคเต เดเตเดฑเดเตเดเต เดเดดเดฟเดเตเดเต เดชเตเดฐเดงเดพเดจ เดถเตเดเดฐเดคเตเดคเดฟเดฒเตเดเตเดเต เดจเตเดเตเดเตเด).
เดเตเดเดพเดคเต, เดคเตเตผเดเตเดเดฏเดพเดฏเตเด, เดเตเดฌเตเตผเดกเต (เดนเตเดเตเดเต เดเตเดเตพ), เดฎเตเดธเต เดเดตเดจเตเดฑเตเดเตพ เดเดจเตเดจเดฟเดตเดฏเดฟเดฒเตเดเตเดเต เดธเดฌเตโเดธเตโเดเตเดฐเตเดฌเตเดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเดฐเต เดเดฆเดพเดนเดฐเดฃเด:
.
เด เดเดเตเดเดพเดฐเดเตเดเตพ
เดชเตเดฐเตเดเดเตเดฑเตเดฑเต เดตเดฟเดเดธเดฟเดชเตเดชเดฟเดเตเดเดพเตป เดจเดฟเดฐเดจเตเดคเดฐเด เดธเดนเดพเดฏเดฟเดเตเดเตเดจเตเดจเดตเตผเดเตเดเต เดชเตเดฐเดคเตเดฏเตเด เดจเดจเตเดฆเดฟ. เดเดจเดฟเดเตเดเตเด เดเดชเตเดชเด เดเดคเตเดฐเต เดธเตเดฅเดฟเดฐเด เดนเตเดฌเดฟเดฏเดพเดฃเต. UNN-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดเดจเตเดฑเต เดฐเดฃเตเดเต เดตเดฟเดฆเตเดฏเดพเตผเดคเตเดฅเดฟเดเตพ เด
เดเตเดคเตเดคเดฟเดเต เด เดตเดฟเดทเดฏเดคเตเดคเดฟเตฝ เด
เดตเดฐเตเดเต เดฌเดพเดเตเดเดฟเดฒเตเดดเตเดธเต เดกเดฟเดเตเดฐเดฟเดเดณเต เดจเตเดฏเดพเดฏเตเดเดฐเดฟเดเตเดเต. MS UI เดเดเตเดเตเดฎเตเดทเดจเต เดชเดฟเดจเตเดคเตเดฃเดฏเตโเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดตเดฒเดฟเดฏ เดธเดเดญเดพเดตเดจ เดจเตฝเดเดฟ, เดเตเดเตโเดธเตโเดฑเตเดฑเต เดชเตเดฐเตเดชเตเดชเตผเดเตเดเดฟเดเดณเต เด
เดเดฟเดธเตเดฅเดพเดจเดฎเดพเดเตเดเดฟเดฏเตเดณเตเดณ "เดฑเตเดเตเดเตเตผเดกเต-เดชเตเดฒเตเดฌเดพเดเตเดเต" เดคเดคเตเดตเดคเตเดคเต เด
เดเดฟเดธเตเดฅเดพเดจเดฎเดพเดเตเดเดฟ เด
เดเตเดคเตเดคเดฟเดเต เดเดฐเต เดเดเตเดเตเดฎเดพเดฑเตเดฑเดฟเดเต เดเตเดกเต เดเดจเดฑเตเดฑเตเดฑเตผ เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเดพเตป เดคเตเดเดเตเดเดฟ (เดเดคเต เดเดฑเตเดฑเดตเตเด เดธเดเตเดเตเตผเดฃเตเดฃเดฎเดพเดฏ เดธเดตเดฟเดถเตเดทเดคเดฏเดพเดฃเต), เดเดคเตเดตเดฐเต "uia" เดฌเดพเดเตเดเตเตปเดกเดฟเดจเดพเดฏเดฟ เดฎเดพเดคเตเดฐเด. AT-SPI (เดฎเตเดกเตเดฏเตเดณเตเดเตพ) เด
เดเดฟเดธเตเดฅเดพเดจเดฎเดพเดเตเดเดฟ เดฒเดฟเดจเดเตเดธเดฟเดจเดพเดฏเดฟ เดเดฐเต เดชเตเดคเดฟเดฏ เดฌเดพเดเตเดเตเตปเดกเต เดตเดฟเดเดธเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต mouse ะธ keyboard เด
เดเดฟเดธเตเดฅเดพเดจเดฎเดพเดเตเดเดฟเดฏเตเดณเตเดณเดคเต - เดเดคเดฟเดจเดเด 0.6.x เดฑเดฟเดฒเตเดธเตเดเดณเดฟเตฝ).
เดเดพเตป เดเตเดฑเดเตเดเต เดเดพเดฒเดฎเดพเดฏเดฟ เดชเตเดคเตเดคเดฃเดฟเตฝ เดเดเตเดเตเดฎเตเดทเดจเตเดเตเดเตเดฑเดฟเดเตเดเตเดณเตเดณ เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดเตเดดเตโเดธเต เดชเด เดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเดพเตฝ, เดเดฟเดฒ เดฎเดพเดธเตเดฑเตเดฑเตเดดเตเดธเต เดตเดฟเดฆเตเดฏเดพเตผเดคเตเดฅเดฟเดเตพ เดเตเดนเดชเดพเด เด เดเตเดฏเตเดฏเตเดจเตเดจเต, เดเตเดฑเดฟเดฏ เดธเดตเดฟเดถเตเดทเดคเดเดณเต เดเดเตเดเตเดฎเตเดทเดจเตเดฑเต เดเดฆเดพเดนเดฐเดฃเดเตเดเดณเต เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจเต. เดเดตเตเดทเดฃ เดเดเตเดเดคเตเดคเดฟเดฒเต เดเดฟเดฒ เดชเตเดฐเดงเดพเดจ เดเดพเดฐเตเดฏเดเตเดเดณเตเด เดเดฐเดฟเดเตเดเตฝ เดตเดฟเดฆเตเดฏเดพเตผเดคเตเดฅเดฟเดเตพ เดเดฃเตเดเตเดคเตเดคเดฟเดฏเดฟเดฐเตเดจเตเดจเต. เดเดฟเดฒเดชเตเดชเตเตพ เดจเดฟเดเตเดเตพ เดเตเดกเดฟเดจเตเดฑเต เดเตเดฃเดจเดฟเดฒเดตเดพเดฐเด เดเตผเดถเดจเดฎเดพเดฏเดฟ เดจเดฟเดฐเตเดเตเดทเดฟเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเตเดเตเดเดฟเดฒเตเด. เดเดเดฆเตเดถเด 95% เดเตเดกเต เดเดตเดฑเตเดเตเดณเตเดณ เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเดเต เด เดจเดฒเตเดธเดฑเตเดเดณเตเด (QuantifiedCode, Codacy, Landscape) เดเตเดฒเตเดกเดฟเดฒเต เดเดเตเดเตเดฎเดพเดฑเตเดฑเดฟเดเต เดเตเดธเตเดฑเตเดฑเตเดเดณเตเด (AppVeyor เดธเตเดตเดจเด) เดเดคเดฟเดจเต เดตเดณเดฐเตเดฏเดงเดฟเดเด เดธเดนเดพเดฏเดฟเดเตเดเตเดจเตเดจเต.
เดเตเดเดพเดคเต เด เดตเดฒเตเดเดจเดเตเดเตพ เดจเตฝเดเตเดเดฏเตเด เดฌเดเตเดเตพ เดเดฏเตผเดคเตเดคเตเดเดฏเตเด เดชเตเตพ เด เดญเตเดฏเตผเดคเตเดฅเดจเดเตพ เด เดฏเดฏเตเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจ เดเดฒเตเดฒเดพเดตเตผเดเตเดเตเด เดจเดจเตเดฆเดฟ!
เด เดงเดฟเด เดตเดฟเดญเดตเดเตเดเตพ
เดเดเตเดเตพ เดเตเดฆเตเดฏเดเตเดเตพ เดชเดฟเดจเตเดคเตเดเดฐเตเดจเตเดจเต (เด เดเตเดคเตเดคเดฟเดเต เดชเตเดฐเดคเตเดฏเดเตเดทเดชเตเดชเตเดเตเดเดคเต ) เดเดชเตเดชเด . เดเดฃเตเดเต .
เดเดเตเดเตพ เดเดฒเตเดฒเดพ เดฎเดพเดธเดตเตเด เด เดชเตเดกเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดจเตเดจเต . GitHub-เดฒเต เดจเดเตเดทเดคเตเดฐเดเตเดเดณเตเดเต เดเดฃเตเดฃเดคเตเดคเดฟเดจเตเดฑเต เดเดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, Autohotkey (เด เดตเดฏเตเดเตเดเต เดตเดณเดฐเต เดตเดฒเดฟเดฏ เดเดฐเต เดธเดฎเตเดนเดตเตเด เดเดฐเต เดจเตเดฃเตเด เดเดฐเดฟเดคเตเดฐเดตเตเดฎเตเดฃเตเดเต) PyAutoGUI เดเดจเตเดจเดฟเดต เดฎเดพเดคเตเดฐเดฎเต เด เดคเดฟเดตเตเดเด เดตเดณเดฐเตเดจเตเดจเตเดณเตเดณเต (เด เดคเดฟเดจเตเดฑเต เดฐเดเดฏเดฟเดคเดพเดตเต เด เตฝ เดธเตเดตเตเดเดพเตผเดเตเดเดฟเดจเตเดฑเต เดชเตเดธเตเดคเดเดเตเดเดณเตเดเต เดเดจเดชเตเดฐเตเดคเดฟ เดเดพเดฐเดฃเด: โเดฌเตเดฑเดฟเดเต เดธเตเดฑเตเดฑเดซเต เดเดเตเดเตเดฎเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเด เดชเตเดคเตเดคเตบ" เดเดจเตเดจเดฟเดตเดฏเตเด เดฎเดฑเตเดฑเตเดณเตเดณเดตเดฏเตเด).
เด เดตเดฒเดเดฌเด: www.habr.com
