pywinau.py 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. '''Created Jan 11, 2022 Levi'''
  2. import pywinctl as gw
  3. from pywinauto import Application
  4. # windows = Desktop(backend="uia").windows()
  5. # for window in windows:
  6. # print(f"Window Title: {window.window_text()}, Process ID: {window.process_id()}")
  7. # print([w.window_text() for w in windows])
  8. def automate_write():
  9. win_ = gw.getWindowsWithTitle('Write: ', condition=gw.Re.CONTAINS)[0]
  10. if not win_.isActive:
  11. win_.activate()
  12. app = Application(backend='uia').connect(found_index=0, title_re='Write:') # process=14484
  13. main_window = app.window(found_index=0)
  14. # main_window.print_control_identifiers()
  15. print(f'Window Title: {main_window.window_text()}')
  16. # main_window.set_focus()
  17. # main_window.print_control_identifiers()
  18. if 'Write' in main_window.window_text():
  19. combo_box_from = main_window.child_window(control_type='ComboBox', found_index=0, title='From', auto_id='msgIdentity')
  20. combo_box_from.set_focus()
  21. # combo_box_from.select(2)
  22. combo_box_from.type_keys('{DOWN}')
  23. edit_subject = main_window.child_window(control_type="Edit", found_index=0, title='Subject')
  24. edit_subject.set_focus() # Set focus on the edit field
  25. # Select all text
  26. edit_subject.type_keys('^a'
  27. 'Documente{SPACE}scadente') # Enter new text
  28. edit_body = main_window.child_window(control_type='Document', found_index=0, title='Message body')
  29. edit_body.set_focus()
  30. edit_body.type_keys('{DOWN}'
  31. '{VK_SHIFT down}'
  32. '{DOWN}'
  33. '{DOWN}'
  34. '{DOWN}'
  35. '{DOWN}'
  36. "{VK_SHIFT up}")
  37. edit_body.type_keys('regăsiți{SPACE}lista{SPACE}facturilor{SPACE}emise{SPACE}de{SPACE}Mozaik{SPACE}Consulting{SPACE}pentru{SPACE}compania{SPACE}dumneavoastră{SPACE}și{SPACE}care{SPACE}figurează{SPACE}nesoldate.'
  38. '{ENTER}'
  39. 'Vă{SPACE}rugăm{SPACE}să{SPACE}efectuați{SPACE}plățile{SPACE}aferente{SPACE}sau{SPACE}să{SPACE}ne{SPACE}trimiteți{SPACE}copiile{SPACE}viramentelor{SPACE}efectuate{SPACE}pentru{SPACE}a{SPACE}putea{SPACE}verifica{SPACE}situația,{SPACE}mulțumim!'
  40. '^{VK_TAB}'
  41. '{VK_DELETE}')
  42. if __name__ == '__main__':
  43. automate_write()