Блокировка в многопоточных ключах pywinauto send - PullRequest
0 голосов
/ 27 марта 2019

Я новичок в pywinauto, и я создаю несколько окон блокнота и набираю текст во всех них.Однако это не зависит друг от друга, поэтому его можно запускать одновременно с использованием потоков.

Однако, когда я пытаюсь сделать то же самое, текст портится, потому что есть несколько потоков, пытающихся получить доступ к методу type_keys() одновременно.Есть ли способ, которым я могу достичь того же одновременно?

Ответы [ 2 ]

2 голосов
/ 27 марта 2019

Существует еще один метод .set_text("..."), который не требует, чтобы окно было в фокусе.Он доступен только для поля редактирования.

.type_keys() или .click_input() не подходит для одновременной автоматизации или для заблокированной машины / минимизированного RDP.Более подробную информацию можно найти в Руководство по удаленному выполнению .

1 голос
/ 27 марта 2019

вы также можете попробовать импортировать эту клавиатуру из pywinauto, и отправьте строку, которую вы хотите отправить, это небольшой пример:

from pywinauto import application
from pywinauto import keyboard 
app = application.Application()
app.start("Notepad.exe")
keyboard.SendKeys('hello')

с этим кодом вы откроете Notepade и напишите привет в Блокноте,Я только что создал в .py файл, и оба имеют один и тот же код, и я вызывал их в основном файле, и работал отлично. Я создал A.py и поместил в него код, я создал B.py и поместил тот же код, и в C.py я сделалимпортируйте A, импортируйте B это и запустите это, это действительно открыло 2 Notpad и написал текст, ищите этот пример: A.py

from pywinauto import application
from pywinauto import keyboard 
app = application.Application()
app.start("Notepad.exe")
keyboard.SendKeys('hello')

B.py

from pywinauto import application
from pywinauto import keyboard 
app = application.Application()
app.start("Notepad.exe")
keyboard.SendKeys('hello friends',with_spaces=True)

C.py

import A,B

и запустите C.py make sur, все файлы будут сохранены в одной папке

...