Автоматизация контекстного меню с помощью 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
Вы получаете идентификатор с помощью 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...(...)-functions, находясь на экране блокировки Windows, но вы не можете использовать Send(...) функция.

Хотя существует ControlSend(...), но вам понадобится ControlHandle/ID для используй это.

person Samoth    schedule 01.01.2016
comment
Спасибо, Самот. Но моя проблема в том, что autoit не обнаруживает контекстное меню. Для этого контекстного меню не отображается идентификатор. Вот почему я ищу, есть ли какая-либо другая альтернатива для выполнения этой задачи. Например, есть ли какой-либо пакет в python или autoit, чтобы выбрать параметры контекстного меню - person Deepak Ramakrishnan Kalidass; 02.01.2016
comment
@ user2078883, тогда ваш ответ может быть недостаточно ясен, я попытался ответить на него как есть. Если вы цените мои усилия, вы можете проголосовать за него (поскольку этот сайт посвящен репутации, основанной на голосовании). Вам не нужно помечать это как ответ, если, конечно, вы ищете другую подсказку. - person Samoth; 02.01.2016