Войти

Показать полную графическую версию : [решено] Какое сочетание клавиш нужно для команды свернуть активное окно?


Kamerin
07-11-2024, 15:28
Приветствую!
Казалось бы простая задача, но не могу найти решение…
Мне нужно узнать сочетание клавиш в win 10, чтобы свернуть ОДНО АКТИВНОЕ окно, к примеру проводник, или браузер, за один раз, и на любой раскладке клавиатуры. Попадались команды, свернуть все окна, не то. Есть близкая к нужной команда: win+стрелка вниз, но есть косяк, при развёрнутом окне, оно сначала уменьшается, и только при повторной команде сворачивается…
Сочетание клавиш нужно для записи в макрос мыши, т.к. просто свернуть активное окно, она не может.
Мышь двадцатилетней давности могла, а эта супер/пупер не может…..

Avatar-Lion
07-11-2024, 17:54
Универсального способа нет. Есть сочетание Alt+Пробел+С, но работает только на русской раскладке. Для записи макросов вряд ли подойдет, т.к. регистрируется обычно нажатие (код) самой клавиши как таковой, а не конкретный символ (в данном случае русская С). То есть работоспособность макроса по-прежнему будет зависеть от текущей раскладки клавиатуры.

Kamerin
07-11-2024, 18:14
А может что на AutoIt придумать? Мышь приложения тоже запускать может через макрос.

Avatar-Lion
07-11-2024, 18:27
Не знаю, я таким ПО не пользуюсь, хватает того софта, что в комплекте к клавиатуре идет. Сейчас вот поэкспериментировал... В принципе, есть стандартные последовательности нажатия клавиш на любой раскладке: Alt + пробел > 4 раза стрелка вниз > Enter.

ПО от Logitech для записи макросов выставляет интервал в 25мс между нажатиями клавиш. Попробовал ради интереса 1мс прописать, но не успевает отрабатывать. Тогда поставил интервал в 5мс. После этого начало работать. Конечно, окно не прям мгновенно сворачивается, в сумме проходит где-то одна четверть или одна треть секунды, прежде чем окно реально свернется, но в целом это все равно быстрее получается, чем мышкой тянуться к кнопке сворачивания окна. Но я макрос этот в итоге удалил, т.к. необходимости быстро свернуть текущее окно у меня никогда не было. Вот все окна сразу свернуть, это да, но для этого Win+D есть.

Если ваша мышь поддерживает последовательное нажатие из 7 клавиш и там тоже можно выставить минимальную задержку, то можете попробовать. Тогда от раскладки не будете уже зависеть. Но если не умеет ваша мышь такое... Тогда придется покупать клаву как у меня. :) Модель в профиле.

Amigos
07-11-2024, 19:10
А может что на AutoIt »
Если пользуетесь PuntoSwitcher , то в нём можно назначить произвольный хоткей на это .
https://i2.imageban.ru/thumbs/2024.11.07/45aa4a800641aa945ea27c67c45d9fad.png (https://imageban.ru/show/2024/11/07/45aa4a800641aa945ea27c67c45d9fad/png)

Grabber2006
07-11-2024, 19:57
В прикрепленном файле экзешник, который сворачивает активное окно.

Kamerin
07-11-2024, 20:50
Avatar-Lion, Amigos, Grabber2006 - просто высший уровень! Все варианты работают! День сам промучился, потом день поддержку Logitech терзал, и все без толку.....
поставил интервал в 5мс. После этого начало работать. »
Экспериментировал с разными задержками, между разных клавиш в макросе, довёл общую задержку до 25мс. Всё шикарно работает. Позже вылез один прикол: на моей системе, не везде 4 раза стрелку вниз надо. К примеру в блокноте - 3.
Если пользуетесь PuntoSwitcher , то в нём можно назначить произвольный хоткей на это . »
Интересно, как они это реализовали? Задержки практически нет.
В прикрепленном файле экзешник, который сворачивает активное окно. »
Прекрасно тоже работает! Написано с помощью AutoIt, или чего то другого?

Удовольствие от решения проблемы, больше, чем от покупки мыши.....

Avatar-Lion
07-11-2024, 21:47
Grabber2006, Надо бы перепаковать во что-то другое... А то Защитник Windows ругается.

Kamerin, А что вас так удивляет? Это же полноценная программа, взаимодействующая с операционной системой. Уж конечно ее авторам не составило труда сделать вызов функции типа "свернуть активное окно". Думаю, такое на уроках программирования сейчас школьникам преподают, поскольку это наверняка очень просто делается и позволяет наглядно показать способы и методы взаимодействия с интерфейсом ОС.

Grabber2006
07-11-2024, 23:03
Защитник? Может SmartScreen? Файл не запакован.

Написано с помощью AutoIt, или чего то другого? »
Delphi 7.

Vadikan
07-11-2024, 23:14
Win + ↓ (иногда - для развернутых во весь экран окон - два раза надо будет нажать ↓)
Alt+Esc убирает с глаз в конец стопки

Вложения
Project1.rar »
безумству храбрых...

Avatar-Lion
08-11-2024, 09:25
Grabber2006, На сайте Майкрософта отсылка указана именно к Defender Antivirus, а не SmartScreen: https://www.microsoft.com/en-us/wdsi/threats/malware-encyclopedia-description?name=Program%3AWin32%2FWacapew.C!ml&threatid=265744 - SmartScreen просто уведомление выводит при попытке запуска exe'шника. А Защитник хлопает файл еще на этапе скачивания.

Grabber2006
08-11-2024, 17:08
Это ложное срабатывание. В экзешнике 3 строчки.

Kamerin
09-11-2024, 14:31
Защитник? Может SmartScreen? »
Да. SmartScreen. Но ничего криминального. Один раз он появился, я сказал ему, что все в порядке, и всё, больше он не появлялся.
Защитник никак не отреагировал на экзешник, хотя "заплаток" много он попортил..... Но это все лично на моей системе. У других может и по другому.
В экзешнике 3 строчки. »
Круто! А что сложнее в освоении, Delphi 7 или AutoIt? Или это как сравнивать зелёное с горьким?
Win + ↓ (иногда - для развернутых во весь экран окон - два раза надо будет нажать ↓) »
Как я писал в первом сообщении, эта комбинация не подходит, ибо:
иногда - для развернутых во весь экран окон - два раза надо будет нажать ↓ »
Скрипт не поймёт, сколько раз когда ему кнопку нажимать.
безумству храбрых... »
Завидую белой завистью, когда вот так, парой лёгких движений, без напряга, можно экзешник под любые задачи написать.

Grabber2006
09-11-2024, 17:41
Среда программирования Delphi он хоть и выпускается до сих пор, но считается устаревшей. А вообще на ней можно приложения писать для Windows, AppleOS и Android. Используемые языки - Delphi (Object Pascal) и C++. Обычно на Delphi базы данных пишут.

По событию FormShow (появления окна программы на экране) пишем следующие строчки:

Application.Minimize; // сразу сворачиваем. При этом на передний план выходит окно программы, которая до этого была на экране и она становится активной. Т.е. фактически ничего не меняется
// при запуске нашего приложения.
SendMessage(GetForegroundWindow, WM_SYSCOMMAND, SC_MINIMIZE, 0); // Посылаем чужому окну сообщение. GetForegroundWindow возвращает handle активного окна, WM_SYSCOMMAND - тип
// команды - системная команда, SC_MINIMIZE - тип системной команды (минимизировать), 0 - дополнительное поле в
// данном случае не используется
Close; // всё сделали, закрываем приложение

Vadikan
10-11-2024, 13:48
Как я писал в первом сообщении, эта комбинация не подходит, ибо: »
Я предложил вам два сочетания клавиш. Второе, значит, подходит?

Завидую белой завистью, когда вот так, парой лёгких движений, без напряга, можно экзешник под любые задачи написать. »
Такое вам чатгпт написать может. А вот запускать неизвестные файлы без раздумий - это отвага!

Avatar-Lion
10-11-2024, 18:48
Vadikan, Как ему может подходить второе сочетание, если Alt + Esc вообще ничего не сворачивает? :)

Kamerin
10-11-2024, 23:39
Такое вам чатгпт написать может. »
Что за шайтан машина?! Действительно что то написал....
Диалог:
Мне нужно написать программу, которая сворачивает одно активное окно.
---
Вот пример простой программы на Python, которая сворачивает активное окно с использованием библиотеки `pygetwindow` и `pyautogui`. Убедитесь, что у вас установлены эти библиотеки:
pip install pygetwindow pyautogui
А затем вы можете использовать следующий код:

import pygetwindow as gw
import pyautogui

def minimize_active_window():
# Получаем список всех окон
windows = gw.getAllWindows()

# Находим активное окно
active_window = gw.getActiveWindow()

if active_window is not None:
# Сворачиваем окно
active_window.minimize()
print(f"Свержено окно: {active_window.title}")
else:
print("Нет активного окна.")

minimize_active_window()
Эта программа находит активное окно и сворачивает его. Запустите код, и активное окно будет минимизировано.
---
Забавно!
Я так понимаю, без установки Рython, опробовать код не получится?

Мне нужно написать программу на Delphi, которая сворачивает активное окно.
---
Для того чтобы свернуть активное окно в Delphi, вы можете использовать следующий код с использованием API Windows. Вот пример простого приложения:

uses
Windows, Messages, SysUtils, Classes, Vcl.Forms, Vcl.Controls, Vcl.StdCtrls;

procedure TForm1.Button1Click(Sender: TObject);
var
hwnd: HWND;
begin
// Получаем дескриптор активного окна
hwnd := GetForegroundWindow;
if hwnd <> 0 then
begin
// Свернуть окно
ShowWindow(hwnd, SW_MINIMIZE);
end;
end;
В этом примере:
1. Вы создаете кнопку на вашей форме (Button1).
2. Когда вы нажимаете на кнопку, программа получает дескриптор активного окна с помощью `GetForegroundWindow`.
3. Затем окно сворачивается при помощи функции `ShowWindow` с параметром `SW_MINIMIZE`.

Убедитесь, что у вас есть необходимые зависимости и используете правильный интерфейс для вашего проекта.
Это реально рабочий код?

Grabber2006
11-11-2024, 21:13
Python надо либо ставить на машину (в принципе он лёгкий), либо делать EXE около 15 мб.

Это реально рабочий код? »
Нет, не рабочий.

Vadikan
12-11-2024, 17:41
Как ему может подходить второе сочетание, если Alt + Esc вообще ничего не сворачивает? »
А с чего вы взяли, что ему надо именно сворачивать? Да, он это просил. Ну и что?

Может он не знает другого варианта убрать окно с глаз долой. Но если у вас есть хоть одно другое окно во весь экран, именно это и происходит.

Vadikan
13-01-2025, 13:49
Может он не знает другого варианта убрать окно с глаз долой. Но если у вас есть хоть одно другое окно во весь экран, именно это и происходит. »
Я знал...
В форуме я не получил отзыва ТС на свое предложение. Отреагировал лишь другой участник: "оно же не сворачивает ахаха". Однако спустя пару недель в чате точно такой же вопрос задал Андрей Шубин. И как выяснилось, он просто хотел убирать окно, нежели именно сворачивать его!

Сочетание Alt+Esc Андрея устраивало
Развернуто про это сочетание https://t.me/sterkin_ru/1709




© OSzone.net 2001-2012