Этот ответ основан на комментариях о том, что devicePixelRatio неправильно возвращается на ответ user1080381.
Я обнаружил, что эта команда возвращалась некорректно и в некоторых случаях при работе с рабочим столом, Surface Pro 3 и Surface Pro 4.
Я обнаружил, что он работал на моем рабочем столе, но SP3 и SP4 отображали разные числа друг от друга и на рабочем столе.
Я заметил, что SP3 возвращался в полтора раза выше уровня масштабирования, который я ожидал. Когда я взглянул на настройки дисплея, SP3 был фактически установлен на 150% вместо 100%, который у меня был на моем рабочем столе.
Итак, решение комментариев должно состоять в том, чтобы разделить возвращаемое масштабирование уровень по шкале машины, на которой вы в данный момент находитесь.
Мне удалось получить масштаб в настройках Windows, выполнив следующее:
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_DesktopMonitor");
double deviceScale = Convert.ToDouble(searcher.Get().OfType<ManagementObject>().FirstOrDefault()["PixelsPerXLogicalInch"]);
int standardPixelPerInch = 96;
return deviceScale / standardPixelPerInch;
Так что в случае мой SP3, вот как этот код смотрит на 100% -ное масштабирование:
devicePixelRatio = 1.5
deviceScale = 144
deviceScale / standardPixelPerInch = 1.5
devicePixelRatio / (deviceScale / standardPixelPerInch) = 1
Умножение на 100 в исходном ответе user1080381 тогда даст вам масштаб 100 (%).
Этот вопрос немного устарел, но я думал, что оставлю это здесь для других людей, которые задаются вопросом, как это сделать
Как
Command + L
, используйте это в своем скрипте python import pyautogui
pyautogui.hotkey('command', 'l')
Пример программы
Это очистит экран после того, как пользователь наберет вход.
EDIT: Если вы не фокусируетесь на окне инструмента, ваша четкая горячая клавиша не будет работать, вы можете это увидеть сами если вы попытаетесь нажимать горячую клавишу, когда будете сфокусированы, скажем, на редакторе, вы не очистите содержимое встроенных терминалов.
PyAutoGUI не имеет никакого способа напрямую фокусироваться на окнах, чтобы решить эту проблему, вы можете попробовать чтобы найти координату, в которой находится терминал запуска, а затем отправить левый щелчок, чтобы сфокусироваться, если вы еще не знаете координаты, где вы можете щелкнуть мышью, вы можете найти его со следующим кодом:
import pyautogui
from time import sleep
sleep(2)
print(pyautogui.position())
Пример вывода:
(2799, 575)
и теперь фактический код:
import pyautogui
while True:
input_1 = input("?")
print(input_1)
pyautogui.click(x=2799, y=575)
pyautogui.hotkey('command', 'l')
В Pycharm:
CMD + ,
(или предпочтения Пихарма); CTRL + L
или что-нибудь еще)
hotkey('ctrl','l')
– aljgom 14 January 2018 в 08:31