Есть ли способ, которым я могу получить доступ к исполняемому файлу через python? [Дубликат]

По вопросу «что мне делать с этим» может быть много ответов.

Более «формальный» способ предотвращения таких ошибок при разработке применяя дизайн по контракту в вашем коде. Это означает, что при разработке вы должны установить инварианты класса и / или даже предпосылки для функции и .

Короче говоря, инварианты класса гарантируют, что в вашем классе будут некоторые ограничения, которые не будут нарушены при нормальном использовании (и, следовательно, класс будет not получить в несогласованном состоянии). Предпосылки означают, что данные, данные как входные данные для функции / метода, должны соответствовать установленным ограничениям и никогда не нарушать их, а постулаты означают, что вывод функции / метода должен соответствовать установленным ограничениям снова не нарушая их. Условия контракта никогда не должны нарушаться во время выполнения программы без ошибок, поэтому дизайн по контракту проверяется на практике в режиме отладки, а отключен в выпусках , чтобы максимизировать развитую производительность системы.

Таким образом, вы можете избежать случаев NullReferenceException, которые являются результатом нарушения установленных ограничений. Например, если вы используете свойство объекта X в классе, а затем попытаетесь вызвать один из его методов, а X имеет нулевое значение, то это приведет к NullReferenceException:

public X { get; set; }

public void InvokeX()
{
    X.DoSomething(); // if X value is null, you will get a NullReferenceException
}

Но если вы установите «свойство X никогда не должно иметь нулевого значения» в качестве предпосылки для метода, вы можете предотвратить описанный ранее сценарий:

//Using code contracts:
[ContractInvariantMethod]
protected void ObjectInvariant () 
{
    Contract.Invariant ( X != null );
    //...
}

По этой причине Код Контракт существует для приложений .NET.

В качестве альтернативы дизайн по контракту может быть применен с использованием утверждений .

ОБНОВЛЕНИЕ: Стоит отметить, что этот термин был придуман Бертраном Майером в связи с его дизайном языка программирования Эйфеля .

19
задан Li-aung Yip 14 March 2012 в 10:51
поделиться

6 ответов

Дайте Autohotkey другой взгляд, из ваших требований он подходит для задания.

Альтернативно проверять автоматизацию пользовательского интерфейса от Microsoft: http://msdn.microsoft.com/en-us/library /ms747327.aspx, а также белый: http://white.codeplex.com/

5
ответ дан Cilvic 27 August 2018 в 08:58
поделиться

Sikuli - это визуальная технология для автоматизации и тестирования графических пользовательских интерфейсов (GUI) с использованием изображений (снимки экрана). Sikuli включает в себя Sikuli Script, визуальный скриптовый API для Jython и Sikuli IDE, интегрированную среду разработки для написания визуальных сценариев с снимками экрана. Sikuli Script автоматизирует все, что вы видите на экране, без поддержки внутреннего API. Вы можете программно управлять веб-страницей, настольным приложением Windows / Linux / Mac OS X или даже приложением для iphone или Android, работающим в симуляторе или через VNC.

Посмотрите на Сикули , это сработало для меня.

11
ответ дан Adam 27 August 2018 в 08:58
поделиться

Посмотрите на это https://pywinauto.github.io/

Вы можете использовать скрипт python для управления вашим окном.

Преимущество:

  • нет необходимости изучать новый язык / синтаксис
  • легко интегрируется с другим существующим скриптом
4
ответ дан Hetal 27 August 2018 в 08:58
поделиться

Вы можете использовать библиотеку PyAutoGUI для Python, которая работает в Windows, macOS и Linux.

Должно допускать временные задержки между действиями.

Пример для ввода с четверть-секундной паузой между каждой клавишей:

import pyautogui
pyautogui.typewrite('Hello world!', interval=0.25)

Вот пример, чтобы установить паузу в 2,5 секунды после каждого вызова PyAutoGUI:

pyautogui.PAUSE = 2.5

Должен допускать композицию сложного ввода клавиатуры.

Контрольные функции для контроля клавиатуры , где вы можете использовать pyautogui.typewrite для ввода чего-либо. Вы можете передавать переменные, чтобы разрешить сложный ввод на клавиатуре.

Определение события для запуска действий.

Вы можете использовать функции поиска визуально найти что-то на экране и сделать условие на основе этого в рамках простого цикла.

Решение должно быть бесплатным для коммерческого использования.

лицензированный под BSD, который разрешает коммерческое использование.


См. также:

0
ответ дан kenorb 27 August 2018 в 08:58
поделиться

RIATest не использует Python, но в противном случае подходит для счета. Это похоже на Selenium, но для Win32 и Интернета.

RIATest использует API автоматизации пользовательского интерфейса Windows и может управлять любым приложением Windows, которое правильно использует GUI для автоматизации пользовательского интерфейса (включая все собственные и .NET-приложения).

Отказ от ответственности: Я работаю в Cogitek, компании RIATest.

0
ответ дан TN. 27 August 2018 в 08:58
поделиться

Взгляните на Automa - он написан на Python. Он может использоваться как автономный инструмент или как библиотека Python в ваших собственных скриптах:

from automa.api import *

Он позволяет автоматизировать любое приложение Windows с помощью таких команд, как щелчок, печать, запись и т. Д.

Некоторые примеры сценариев автоматизации можно найти в http://www.getautoma.com/blog/category/ui-automation-examples

Отказ от ответственности : Я один из разработчиков Automa.

6
ответ дан Tytus 27 August 2018 в 08:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: