Имитировать нажатие клавиши на Windows [дубликат]

Следующий способ позволит вам осветлить или затемнить значение экспозиции шестнадцатеричной (Hex) цветовой строки:

private static string GetHexFromRGB(byte r, byte g, byte b, double exposure)
{
    exposure = Math.Max(Math.Min(exposure, 1.0), -1.0);
    if (exposure >= 0)
    {
        return "#"
            + ((byte)(r + ((byte.MaxValue - r) * exposure))).ToString("X2")
            + ((byte)(g + ((byte.MaxValue - g) * exposure))).ToString("X2")
            + ((byte)(b + ((byte.MaxValue - b) * exposure))).ToString("X2");
    }
    else
    {
        return "#"
            + ((byte)(r + (r * exposure))).ToString("X2")
            + ((byte)(g + (g * exposure))).ToString("X2")
            + ((byte)(b + (b * exposure))).ToString("X2");
    }

}

Для последнего значения параметра в GetHexFromRGB (), передать двойное значение где-то между -1 и 1 (-1 - черный, 0 не изменяется, 1 - белый):

// split color (#e04006) into three strings
var r = Convert.ToByte("e0", 16);
var g = Convert.ToByte("40", 16);
var b = Convert.ToByte("06", 16);

GetHexFromRGB(r, g, b, 0.25);  // Lighten by 25%;
22
задан Nakilon 20 September 2013 в 16:54
поделиться

4 ответа

Я делаю автоматическое тестирование в Python. Я имею тенденцию использовать следующее:

http://www.tizmoi.net/watsup/intro.html Изменить: Ссылка мертва, архивная версия: https: http://www.mayukhbose.com /python/IEC/index.php

Я не всегда (почти никогда) не моделирую нажатия клавиш и движения мыши. Обычно я использую COM для установки значений объектов Windows и вызова их методов .click ().

Вы можете отправить сигналы нажатия клавиш с помощью этого:

import win32com.client

shell = win32com.client.Dispatch("WScript.Shell")
shell.SendKeys("^a") # CTRL+A may "select all" depending on which window's focused
shell.SendKeys("{DELETE}") # Delete selected text?  Depends on context. :P
shell.SendKeys("{TAB}") #Press tab... to change focus or whatever

Все это в Windows. Если вы находитесь в другой среде, я понятия не имею.

24
ответ дан dagur 1 September 2018 в 06:40
поделиться

Возможно, вы ищете Sendkeys ?

SendKeys - это модуль Python для Windows, который может отправить одно или несколько комбинаций клавиш или комбинаций клавиш в активное окно.

кажется, что это только окна

Также у вас есть pywinauto (скопировано из моего SO ответа )

pywinauto - это набор модулей с открытым исходным кодом (LGPL) для использования Python в качестве драйвера автоматизации GUI для операционных систем на базе Windows NT (NT / W2K / XP).

и пример с веб-страницы

> from pywinauto import application
> app = application.Application.start("notepad.exe")
> app.notepad.TypeKeys("%FX")
> app.Notepad.MenuSelect("File->SaveAs")
> app.SaveAs.ComboBox5.Select("UTF-8")
> app.SaveAs.edit1.SetText("Example-utf8.txt")
> app.SaveAs.Save.Click()
15
ответ дан Community 1 September 2018 в 06:40
поделиться

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

Мышь

Вот простой код для перемещения мышь на середину экрана:

import pyautogui
screenWidth, screenHeight = pyautogui.size()
pyautogui.moveTo(screenWidth / 2, screenHeight / 2)

Страница документов: Функции управления мышью .

Связанный вопрос: Управление мышью с помощью Python .

Клавиатура

Пример:

pyautogui.typewrite('Hello world!')                 # prints out "Hello world!" instantly
pyautogui.typewrite('Hello world!', interval=0.25)  # prints out "Hello world!" with a quarter second delay after each character

Страница документов: Функции управления клавиатурой .

< hr>

More reading: Управление клавиатурой и мышью с помощью GUI-автоматизации (глава 18 электронной книги).

Связанные вопросы:

0
ответ дан kenorb 1 September 2018 в 06:40
поделиться

pyautogui - отличный пакет для отправки ключей и автоматизации нескольких задач, связанных с клавиатурой и мышью. Проверьте Управление клавиатурой и мышью с помощью GUI Automation и документации PyAutoGUI .

7
ответ дан Mitesh Budhabhatti 1 September 2018 в 06:40
поделиться
Другие вопросы по тегам:

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