Что нового

Горячие клавиша "свернуть", "развернуть".

DirtyJohny

Новичок
Сообщения
40
Репутация
0
Всем доброго вечера, нужна помощь в настройке скрипта, нужно назначить одно и тоже сочетание клавиш(ctrl+q), чтобы можно было сворачивать\разворачивать приложение в трей\из трея (плюс чтобы иконка не отображалась в панели задач при сворачивании).На счёт первого, я нашел как сделать на то, чтобы совершалась только одна операция "свернуть" и не знаю как добавить условие для @SW_SHOW.

Код:
HotKeySet("^q", "HideMessage")
Func HideMessage() ; по нажатию комбинации клавиш ctrl+q
    WinSetState($UI, '', @SW_HIDE)
EndFunc

На счет второго знаю как при запуске gui скрыть значок в панели задач "WinGetHandle(AutoItWinGetTitle" и не особо понимаю как внедрить все это в одну функцию...Помогите пожалуйста)
 

xXx

╚{■_■}╗
Меценат
Сообщения
220
Репутация
82
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WinAPISysInternals.au3>

HotKeySet("^q", "HideMessage")
Global $hGui, $iFlag

$hGui = GUICreate("Мой GUI", 300, 200, -1, -1, $GUI_SS_DEFAULT_GUI)
GUISetState(@SW_SHOW)

Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE

Func HideMessage() ; по нажатию комбинации клавиш ctrl+q
    If $iFlag Then
        DllCall('User32.dll', 'int', 'SetWindowLong', 'hwnd', $hGui, 'int', $GWL_STYLE, 'int', $GUI_SS_DEFAULT_GUI)
        GUISetState(@SW_SHOW)
        $iFlag = 0
    Else
        GUISetState(@SW_HIDE)
        DllCall('User32.dll', 'int', 'SetWindowLong', 'hwnd', $hGui, 'int', $GWL_STYLE, 'int', $WS_EX_TOOLWINDOW)
        $iFlag = 1
    EndIf
EndFunc   ;==>HideMessage
 
Автор
DirtyJohny

DirtyJohny

Новичок
Сообщения
40
Репутация
0
Спасибо огромное, реально круто)Это лайк)
Сообщение автоматически объединено:

От себя добавлю.Если вы хотите, чтобы окно сворачивалось на всех раскладках,что у вас есть,просто дополните сочетания клавиш.
Пример:
HotKeySet("^q", "HideMessage")
HotKeySet("^ё", "HideMessage")

На русскую и английскую раскладку.
 
Последнее редактирование:

xXx

╚{■_■}╗
Меценат
Сообщения
220
Репутация
82
Если вы хотите, чтобы окно сворачивалось на всех раскладках,
Читаем: Обход проблемы с Send/HotKeySet/Accelerators при разных раскладках клавиатуры

просто дополните сочетания клавиш
У такого подхода есть как минимум 2 минуса:
1. Если, к примеру, вы захотите задать сочетание "Shift+Ы" и "Shift+S", то увидите неприятный эффект от сработавшей дублирующей функции - это сочетание может пропечатать букву в постороннее активное окно.
2. Возможно такое же сочетание уже назначено у другого приложения.
 
Последнее редактирование:
Верх