Следующий способ позволит вам осветлить или затемнить значение экспозиции шестнадцатеричной (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%;
Я делаю автоматическое тестирование в 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. Если вы находитесь в другой среде, я понятия не имею.
Возможно, вы ищете Sendkeys ?
SendKeys - это модуль Python для Windows, который может отправить одно или несколько комбинаций клавиш или комбинаций клавиш в активное окно.
blockquote>кажется, что это только окна
Также у вас есть pywinauto (скопировано из моего SO ответа )
pywinauto - это набор модулей с открытым исходным кодом (LGPL) для использования Python в качестве драйвера автоматизации GUI для операционных систем на базе Windows NT (NT / W2K / XP).
blockquote>и пример с веб-страницы
> 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()
Вы можете использовать библиотеку 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 электронной книги).
Связанные вопросы:
pyautogui - отличный пакет для отправки ключей и автоматизации нескольких задач, связанных с клавиатурой и мышью. Проверьте Управление клавиатурой и мышью с помощью GUI Automation и документации PyAutoGUI .