Автоматизиране на контекстно меню с помощта на Python, когато заключен екран е включен

Имам задачата да автоматизирам приложение, базирано на Windows, използвайки Python. Успях да постигна много от тези задачи с помощта на пакета pyautoit - но имаше една задача което изисква контекстно меню да се появи при щракване с десния бутон в прозорец. Не успях да открия опциите на менюто с помощта на AutoIt. Така че използвах функцията за изпращане, която изпраща сигнали от клавишите на клавиатурата. Използвайки кода по-долу, успях да постигна избора на опцията от менюто, която исках:

    autoit.send("{UP}")
    autoit.send("{UP}")
    autoit.send("{UP}")
    autoit.send("{UP}")
    autoit.send("{UP}")
    autoit.send("{UP}")
    autoit.send("{LEFT}")
    autoit.send("{DOWN}")
    autoit.send("{ENTER}")

Проблемът, с който се сблъсквам сега, е, че кодът няма да работи, ако компютърът ми е заключен (Ctrl+Alt+Del). Тъй като AutoIt няма да разпознае това контекстно меню, сигурен съм, че не може да се направи с този пакет. Искам да знам дали има някакъв пакет в Python, който бих могъл да използвам за изпълнение на тази задача. Искам кодът да работи дори когато компютърът е заключен.


person Deepak Ramakrishnan Kalidass    schedule 01.01.2016    source източник
comment
Можете просто да използвате autoit.send("{Up 6}{Left}{Down}{Enter}") вместо да го извиквате няколко пъти.   -  person Samoth    schedule 01.01.2016
comment
Получавате ли ID с помощта на RanorexSpy?   -  person Samoth    schedule 04.01.2016
comment
Не съм пробвал това. Но както видях, не е безплатно. Трябва да го купим. Всъщност гледам пакети, които са безплатни. Има ли пакети, които са безплатни за постигане на тази задача?   -  person Deepak Ramakrishnan Kalidass    schedule 04.01.2016
comment
Можете да намерите безплатна версия някъде във форум. Изтеглих го преди малко и наистина помага.   -  person Samoth    schedule 06.01.2016


Отговори (1)


Доколкото знам можете да използвате Control...(...)-функции, докато сте на заключен екран на Windows, но не можете да използвате Send(...) функция.

Все пак има ControlSend(...), но ще ви трябва ControlHandle/ID, за използваи го.

person Samoth    schedule 01.01.2016
comment
Благодаря ти Samoth.. Но моят проблем тук е, че autoit не открива контекстното меню. Не се показва идентификатор за това контекстно меню. Ето защо търся има ли друга алтернатива за постигане на тази задача. Както има някакъв пакет в python или autoit, за да изберете опциите на контекстното меню - person Deepak Ramakrishnan Kalidass; 02.01.2016
comment
@user2078883 тогава отговорът ви може да не е достатъчно ясен все още, опитах се да отговоря така, както е. Ако оценявате усилията ми, може да гласувате за него (тъй като този сайт е за репутация, която се основава на гласуване). Не е необходимо да го маркирате като отговорено, ако търсите друга подсказка, разбира се. - person Samoth; 02.01.2016