Как вывести окно на передний план?
Нужно понятие, как вывести окно в Windows с определённым названием на передний план.
Конкретного, рабочего варианта тупо найдено не было на просторах интернета, либо плагины мёртвые, либо команды просто не работают.
Вот например мне надо переключиться на окно, в имени которого содержится «notepad», какой нужен скрипт для того, чтобы вывести это окно на передний план?
Это не работает:
hwnd = win32gui.FindWindow(None,"notepad") win32gui.ShowWindow(hwnd, win32con.SW_NORMAL) win32gui.SetForegroundWindow(hwnd)
- Вопрос задан более двух лет назад
- 465 просмотров
Комментировать
Решения вопроса 1
soremix @SoreMix Куратор тега Python
Код рабочий. Другое дело если окна с именем «notepad» нет.
Можно перебрать все окна и найти те, в которых есть «notepad»
def enum_handler(hwnd, ctx): if win32gui.IsWindowVisible(hwnd): if 'notepad' in win32gui.GetWindowText(hwnd): win32gui.SetForegroundWindow(hwnd) win32gui.EnumWindows(enum_handler, None)
Ответ написан более двух лет назад
Нравится 1 7 комментариев
Ermac301 @Ermac301 Автор вопроса
Я создал файл .txt с названием «notepad.txt», открыл его в «notepad», не тот и не другой вариант не работают.
Ваш вариант, не работает, пишет:
File «», line 1, in
File «C:\Python\PyCharm Community Edition 2021.1.1\plugins\python-ce\helpers\pydev\_pydev_bundle\pydev_umd.py», line 198, in runfile
pydev_imports.execfile(filename, global_vars, local_vars) # execute the script
File «C:\Python\PyCharm Community Edition 2021.1.1\plugins\python-ce\helpers\pydev\_pydev_imps\_pydev_execfile.py», line 18, in execfile
exec(compile(contents+»\n», file, ‘exec’), glob, loc)
Неужели нету команды, которая просто переключает окно на передний экран. Мне не нужны там ID окон, специальные их hWND номера, или я что то не так делаю и не так понимаю?
Ermac301 @Ermac301 Автор вопроса
Спасибо вам огромное вот это работает:
import win32gui def enum_handler(hwnd, ctx): if win32gui.IsWindowVisible(hwnd): if 'ИМЯ_Окна' in win32gui.GetWindowText(hwnd): win32gui.SetForegroundWindow(hwnd) win32gui.EnumWindows(enum_handler, None)
Просто я просил о том что бы указали весь скрипт, но модератор Zettabyte отредактировал моё сообщение удалив важную по сути строчку-просьбу, из за чего вы не полностью указали скрипт. Огромное вам спасибо ещё раз!
soremix @SoreMix Куратор тега Python
модератор soremix отредактировал моё сообщение удалив важную по сути строчку-просьбу, из за чего вы не полностью указали скрипт
Первый раз слышу о том, что я модератор и могу редактировать чужие сообщения без разрешения пользователей.
Ermac301 @Ermac301 Автор вопроса
soremix, Ну простите. Куратор тега. Но сути это не меняет и не изменяет моей претензии к вам как и к тому как именно вы изменили моё сообщение. В любом случае, я не просто так написал строчку в конце «Молю, дайте только полный скрипт а не обрывки (я пока не профессионал).» То не двусмысленно намекает, что если ты переходишь с других языков программирования, то такие строки как «import win32gui» и «# pip install win32gui» вырезать из скрипта и выкладывать сюда то что без них работать не будет, не стоит, а стоит их указывать перед самим скриптом. Такие строки, очевидно ТОЛЬКО для профессионалов программирования на языке Phyton, но не разу не очевидно для остальных языков и не очевидно для Новичков этого языка. Так что искренняя просьба, не править ключевые строки сообщения или хотя бы как то их согласовывать с тем кто их пишут (Автор вопроса).
soremix @SoreMix Куратор тега Python
Ermac301, ещё раз повторю: у меня нет прав на редактирование сообщений. И честно говоря сомневаюсь что модераторы могут это делать, а даже если и могут, зачем им вырезать вашу важную информацию?
именно вы изменили моё сообщение
У вас какое-то уведомление пришло что я вырезал нужную информацию? Или на чем эта догадка
Ermac301 @Ermac301 Автор вопроса
Оу. Прошу прощения. Не тот никнейм скопировал в сообщении. Вот виновник недопонимания Zettabyte
К вам претензий ноль. К вам только искренняя благодарность за помощь. А вот Zettabyte отредактировал моё сообщение удалив просьбу «указать весь скрипт а не вырезки».
Ermac301 @Ermac301 Автор вопроса
Вот хорошо работающий вариант с окнами Win, он сворачивает и разворачивает окно, что хорошо работает с Windows 10 и моложе:
# pip install win32gui import win32gui import win32con имя_окна_01 = 'Test.txt' #Сюда вписать имя окна def enumHandler(hwnd, ctx): # Свернуть окно if имя_окна_01 in win32gui.GetWindowText(hwnd): win32gui.ShowWindow(hwnd, win32con.SW_MINIMIZE) # sleep(0.5) # Ожидание win32gui.EnumWindows(enumHandler, None) def enumHandler(hwnd, ctx): # Развернуть окно if имя_окна_01 in win32gui.GetWindowText(hwnd): win32gui.ShowWindow(hwnd, win32con.SW_MAXIMIZE) # SW_MAXIMIZE # sleep(0.5) # Ожидание win32gui.EnumWindows(enumHandler, None) def enum_handler(hwnd, ctx): # На передний план if win32gui.IsWindowVisible(hwnd): if имя_окна_01 in win32gui.GetWindowText(hwnd): win32gui.SetForegroundWindow(hwnd) win32gui.EnumWindows(enumHandler, None)
Ответы на вопрос 1
Ermac301 @Ermac301 Автор вопроса
Вот нашёл такие команды, но они открывают файл:
#Найти и запустить приложение (программу) from pywinauto.application import Application app = Application(backend="uia").start("notepad.exe")
Это не совсем что нужно, мне нужно уже открытое окно вывести на передний план.
Ответ написан более двух лет назад
Комментировать
Нравится Комментировать
Ваш ответ на вопрос
Войдите, чтобы написать ответ
- Python
- +1 ещё
Почему не удаляются сообщения в vk_api?
- 1 подписчик
- 8 часов назад
- 11 просмотров
Окно за пределами экрана в Windows — как вернуть программу на экран
Многие пользователи сталкивались с тем, что программа по той или иной причине вышла за пределы экрана, а возможности вернуть окно на рабочий стол к его центру не видно: мышью схватиться не за что, а контекстное меню в панели задач показывает не те действия, которые нужны. В этой простой инструкции для начинающих подробно о том, как именно вернуть окно программы из-за границ экрана если оно случайно оказалось там и мышью этого сделать не получается.
Примечание: если у вас все окна выходят за границы экрана и, более того, туда же перемещается указатель мыши, причиной этого могут быть: неверно выставленное разрешение экрана (установите рекомендуемое разрешение) либо подключенный второй монитор, ТВ или проектор — даже если он выключен, отключите кабель от него или отключите отображение на втором экране в параметрах экрана Windows.
- Как вытащить окно из-за пределов экрана в панели задач
- Программа для размещения окна по центру рабочего стола
- Видео инструкция
Как вернуть окно из-за границ экрана в Windows 10, 8.1 и Windows 7 с помощью панели задач
Значки запущенных вами программ как правило отображаются в панели задач Windows 10, 8.1 и Windows 7 (по умолчанию находится внизу рабочего стола), именно они помогут нам переместить окно в нужное расположение:
- Если нажать по значку запущенной программы правой кнопкой мыши, удерживая клавишу Shift, откроется меню, из которого вы можете выполнить один из следующих шагов на выбор.
- Выбрать пункт «Развернуть» (если пункт недоступен, используйте следующий метод): в итоге оно откроется на весь экран. Затем развернутое приложение вы можете перетащить мышью как обычно «схватив» его за строку заголовка.
- В том же меню вы можете выбрать пункт «Переместить». При этом указатель мыши изменится на значок перемещения. Если вы не можете переместить окно мышью с помощью этого указателя (причем это можно сделать за любую его часть), сделайте это с помощью стрелок на клавиатуре — в режиме «Переместить» они будут работать. Более того, после первого нажатия стрелок окно будет «прилеплено» к указателю мыши и его можно будет перемещать мышкой без нажатия кнопок, а нажатие «отпустит» окно.
Еще один способ с помощью встроенных средств Windows — нажать правой кнопкой мыши по пустому месту панели задач и выбрать из контекстного меню пункт «Расположить окна каскадом», «Расположить окна стопкой» или другой пункт, связанный с расположением окон на рабочем столе (сработает только для развернутых окон).
Простая утилита для быстрого размещения окна по центру экрана
После запуска программы вы можете включить в ней две опции: автоматическое размещение новых окон по центру экрана и автоматическое помещение окна в центр экрана при тройном нажатии клавиши Shift. Оба пункта исправно работают и каких-то проблем не возникает.
Видео инструкция
Надеюсь, материал для кого-то из начинающих пользователей оказался полезным.
А вдруг и это будет интересно:
- Лучшие бесплатные программы для Windows
- Компьютер не видит внешний диск — как исправить?
- TakeOwnershipEx — получение полного доступа к папкам и файлам и восстановление прав по умолчанию
- Ошибка 0x8007000d в Windows 11 или 10 — как исправить?
- Chrome открывает поиск вместо сайта — решение
- Недопустимая конфигурация приложения в Steam — варианты решения
- Windows 11
- Windows 10
- Android
- Загрузочная флешка
- Лечение вирусов
- Восстановление данных
- Установка с флешки
- Настройка роутера
- Всё про Windows
- В контакте
- Одноклассники
-
Peveksky 17.02.2020 в 09:29
- Dmitry 19.02.2020 в 14:35
Windows 10: сочетания клавиш
Многие из нас используют сочетания клавиш, чтобы выполнить какую-то типовую задачу быстрее. Такие сочетания, как Ctrl + C (копировать), Ctrl + V (вставить), Win + D (свернуть окна) или Win + E (открыть проводник), знают все. В Windows 10 появилось несколько полезных сочетаний клавиш, которые также стоит запомнить и использовать.
Новые полезные функции – в серии постов Советы по Windows 10 и Office и советах по повышению продуктивности
Snap
Режим Snap в Windows 10 был улучшен, а вместе с ним – удобство работы с несколькими окнами, одновременно расположенными на экране. Быстро разместить окна помогут такие сочетания:
- Win + ↑ (развернуть на весь экран)
- Win + ↓ (свернуть окно)
- Win + → (закрепить в правой части экрана)
- Win + ← закрепить в левой части экрана)
- Win + → Win + ↓ (окно занимает четверть экрана в нижней правой части)
Click here to load media
Все открытые приложения на одном экране
В Windows 10 можно привычно переключаться между открытыми приложениями с помощью Alt+Tab, но чтобы увидеть сразу все открытые приложения и виртуальные столы, стоит воспользоваться сочетанием Win+Tab. Это действительно удобно!
Виртуальные рабочие столы
Обратите внимание – в правом нижнем углу снимка экрана есть клавиша «Создать рабочий стол». Эта возможность доступна также с помощью Кнопки просмотра задач в панели управления. Виртуальные рабочие столы – еще одно полезное нововведение в Windows 10, о котором мы также рассказывали в блоге Windows. Для работы с несколькими рабочими столами вам пригодятся такие сокращения:
- Win + Ctrl + D (создать виртуальный рабочий стол)
- Win + Ctrl + F4 (закрыть виртуальный рабочий стол)
- Win + Ctrl + → /← (открыть соседний рабочий стол)
Как вывести окно поверх всех окон в Windows?
Нужно вывести окно поверх всех окон, для эффекта водяного знака. Возможно ли это сделать с помощью WPF без использования WinApi?
Отслеживать
13.7k 12 12 золотых знаков 43 43 серебряных знака 75 75 бронзовых знаков
задан 16 апр 2019 в 6:20
Максим Поздеев Максим Поздеев
55 1 1 серебряный знак 5 5 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
У окна WPF есть специальное свойство Topmost . Его нужно установить в true :
UPD. Не сразу понял, чего хотел добиться автор. Для того, чтобы сделать некоторое подобие «водяного знака» лучше использовать Image , а не окно.
Пусть наш водяной знак будет котиком. Думаю, все любят котиков 🙂
Изображение, с которым мы будем работать: 1.jpg
А возможно ли сделать окно некликабельным? Чтобы можно было взаимодействовать с объектами за ним
Это возможно для любого UIElement . Для этого нам понадобится свойство IsHitTestVisible установить в false . Ну и чтобы сделать изображение полупрозрачным, используем свойство Opacity=»0.2″ .
Таким образом, xaml-код будет выглядеть так:
Теперь мы можем кликать на кнопку, и котик нам не будет мешать это делать)
Результат работы программы:
P.S. Обработчик событий в code-behind вызывает MessageBox с сообщением Hello.