1

Тема: AHK: Активация Mozilla Firefox без панели задач

Доброго времени суток, есть потребность пользоваться браузером внутри оконного приложения без рамки используя глобальную клавишу, ввиду чего я собрал небольшой скрипт, всё получилось, но хочется большего.

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

toggle := 0
F2::
toggle := !toggle
if toggle
   WinActivate ahk_class MozillaWindowClass
else
   WinMinimize ahk_class MozillaWindowClass
Return

2

Re: AHK: Активация Mozilla Firefox без панели задач

DxNeferzul
В шапке раздела есть тема с отметкой "Важно". См. нижнее указание.
Также прошу ознакомиться с правилами форума.
Заголовок исправлен с добавлением префикса.

Кстати,  на днях обсуждался вопрос скрытия панели задач. Правда не уверен, соответствует ли это потребностям.

3

Re: AHK: Активация Mozilla Firefox без панели задач

DxNeferzul пишет:

Нужно чтобы при использовании скрипта панель задач не активировалась.

Не пойму, что имеется в виду. При активации окна панель задач не может активироваться, активным может быть только одно окно.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

4 (изменено: DxNeferzul, 2017-03-02 19:37:28)

Re: AHK: Активация Mozilla Firefox без панели задач

Возможно я не совсем корректно выразился.
http://imgur.com/a/j8wjC
Во время использования окна #1 панели задач нету тк. выставлена настройка "Оконный режим без рамки"
Нужно чтобы во время обращения к окну #2[Браузер] панель задач не появлялась.

5

Re: AHK: Активация Mozilla Firefox без панели задач

Тогда может просто скрыть панель задач на всё время работы скрипта?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

6

Re: AHK: Активация Mozilla Firefox без панели задач

Ваша правда, это мне поможет, по правде говоря я собирался использовать этот метод в случае тут ничего не выйдет, у меня имеется софт для скрытия панели задач.

Находясь в активном окне в оконном режиме без рамки(в котором не отображается панель задач), хотелось бы посредством горячей клавиши активировать браузер всё также сохраняя сокрытие панели задач.

Однако в другие моменты мне нужна панель задач и выходит так что мне каждый раз придётся пользоваться горячими клавишами для проявления панели задач или же панель будет показываться в момент наведение курсора мыши.

Техническая сторона данного вопроса для меня сложна, я думаю что нужен подобный механизм.
Если: Нажата горячая клавиша "F2" ; работа в режиме toggle
То: Скрыть панель задач, активировать окно браузера
Если: Нажата горячая клавиша "F2"  работа в режиме toggle
То: Показать панель задач, свернуть окно браузера ; В данном случае показываться панель задач должна не в буквальном смысле слова, восстановление возможности показываться, т.е. во время работы в оконном режиме без рамки панель задач должна быть всё так-же не видна.

7

Re: AHK: Активация Mozilla Firefox без панели задач

Так а в чём вопрос? Как скрыть панель задач по горячей клавише?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

8

Re: AHK: Активация Mozilla Firefox без панели задач

Кусок моего кода:

toggle := 0
F2::
toggle := !toggle
if toggle
   WinActivate ahk_class MozillaWindowClass
else
   WinMinimize ahk_class MozillaWindowClass
Return

Кусок вашего кода

F2:: HideShowTaskbar(hide := !hide)
   
HideShowTaskbar(action)
{
   static ABM_SETSTATE := 0xA, ABS_AUTOHIDE := 0x1, ABS_ALWAYSONTOP := 0x2
   
   VarSetCapacity(APPBARDATA, size := 2*A_PtrSize + 2*4 + 16 + A_PtrSize, 0)
   NumPut(size, APPBARDATA), NumPut(WinExist("ahk_class Shell_TrayWnd"), APPBARDATA, A_PtrSize)
   NumPut(action ? ABS_AUTOHIDE : ABS_ALWAYSONTOP, APPBARDATA, size - A_PtrSize)
   
   DllCall("Shell32\SHAppBarMessage", UInt, ABM_SETSTATE, Ptr, &APPBARDATA)
}

Как совместить?

9 (изменено: teadrinker, 2017-03-03 13:47:47)

Re: AHK: Активация Mozilla Firefox без панели задач

F2::
   HideShowTaskbar(toggle := !toggle)
   if toggle
      WinActivate ahk_class MozillaWindowClass
   else
      WinMinimize ahk_class MozillaWindowClass
   Return
   
HideShowTaskbar(action)
{
   static ABM_SETSTATE := 0xA, ABS_AUTOHIDE := 0x1, ABS_ALWAYSONTOP := 0x2
   
   VarSetCapacity(APPBARDATA, size := 2*A_PtrSize + 2*4 + 16 + A_PtrSize, 0)
   NumPut(size, APPBARDATA), NumPut(WinExist("ahk_class Shell_TrayWnd"), APPBARDATA, A_PtrSize)
   NumPut(action ? ABS_AUTOHIDE : ABS_ALWAYSONTOP, APPBARDATA, size - A_PtrSize)
   
   DllCall("Shell32\SHAppBarMessage", UInt, ABM_SETSTATE, Ptr, &APPBARDATA)
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

10

Re: AHK: Активация Mozilla Firefox без панели задач

teadrinker, спасибо вам за помощь.

11

Re: AHK: Активация Mozilla Firefox без панели задач

Опробовал на Windows XP. Изменяется высота панели задач (была двойная, стала одинарная), выключается "автоматически скрывать панель задач", включается "отображать панель задач поверх остальных окон".

12

Re: AHK: Активация Mozilla Firefox без панели задач

ypppu, всё так и должно быть, кроме высоты. Она не указана явно, видимо, сбивается на дефолтную, на семёрке такого не происходит. Если нужно, могу подправить.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

13

Re: AHK: Активация Mozilla Firefox без панели задач

Не, я просто отметил особенности скрипта.

По теме - мне не очень понятно, для чего изменять размеры рабочей области Рабочего стола. Просто скрыть окно Панели задач командой WinHide- не вариант?

14

Re: AHK: Активация Mozilla Firefox без панели задач

Не знаю, смотря какие задачи. При скрытии на семёрке остаётся кнопка «Старт» и рабочее пространство полноэкранных окон не занимает место таскбара, остаётся бесполезная полоса внизу.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

15

Re: AHK: Активация Mozilla Firefox без панели задач

Если нажать "развернуть", окно растянется не на весь экран, а с вычетом габаритов Панели задач. Но если растягивать окно вручную, им можно заполнить весь экран.
Про кнопку "Старт" не знаю, может это отдельное окно?

16

Re: AHK: Активация Mozilla Firefox без панели задач

На семёрке отдельное окно.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

17

Re: AHK: Активация Mozilla Firefox без панели задач

Как вариант:

f1::
SetWinDelay, -1
if toggle := !toggle
{
    WinHide ahk_class Shell_TrayWnd
    WinHide Start ahk_class Button
    SysGet, Mon, Monitor
    SetWorkArea(MonLeft, MonTop, MonRight, MonBottom)
    WinMove, ahk_class Notepad,, MonLeft, MonTop , MonRight, MonBottom
}
else
{
    WinShow ahk_class Shell_TrayWnd
    WinShow Start ahk_class Button
    SysGet, Mon, MonitorWorkArea
    SetWorkArea(MonLeft, MonTop, MonRight, MonBottom)
    WinMove, ahk_class Notepad,, MonLeft, MonTop , MonRight, MonBottom
}
return

SetWorkArea(left,top,right,bottom)  ; set main monitor work area ; windows are not resized!
{
    VarSetCapacity(area, 16)
    NumPut(left,  area, 0, "UInt") ; left
    NumPut(top,   area, 4, "UInt") ; top
    NumPut(right, area, 8, "UInt") ; right
    NumPut(bottom,area,12, "UInt") ; bottom
    DllCall("SystemParametersInfo", "UInt", 0x2F, "UInt", 0, "UPtr", &area, "UInt", 0) ; SPI_SETWORKAREA
}