1

Тема: AHK: F11 - fullscreen, как заблокировать выезжающие панели.

Приветствую.

Итак, при нажатии клавиши F11 браузер переходит в полноэкранный режим, но при достижении курсора, скажем, top-screen или left-screen, выезжают панели.
Я понимаю, что случай частный, хотелось бы это безобразие заблокировать.

Желательно сделать это по клавише.

Браузеры Yandex и Mozilla Firefox.

P. S. Это не для игрушек.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 10 x64 Pro(AutoHotkey v1.1.37.02)

2 (изменено: __Михаил__, 2024-07-17 21:43:16)

Re: AHK: F11 - fullscreen, как заблокировать выезжающие панели.

Курсор нужен в целом для кликов и т.д? Если нет то у меня есть решение, которое я использую иногда для просмотра видосов:

F2:: HideCursor()

;01:29 27.02.2022	Создаёт Gui окно для скрытия курсора:
HideCursor(){
 Static SW := -1
 If (SW < 0){	; Если окно не создано:
  SW := 1	; Скрыть курсор.
  Gui 11: -Caption +AlwaysOnTop +ToolWindow +LastFound
  Gui 11: Show, x0 y0 w%A_ScreenWidth% h%A_ScreenHeight% NA, Invisible AHK GUI
  WinSet, Transparent, 1
  DllCall("ShowCursor", UInt, 0)
  HotKey, vk1, ShowCursor, On	; Установить перехват ЛКМ, для отключения скрытия курсора.
 }
 Else If(SW = 1){
  SW := 0	; Отобразить курсор.
  Gui 11: Hide
  DllCall("ShowCursor", UInt, 1)
  HotKey, vk1, Off
 }
 Else If(SW = 0){
  SW := 1	; Скрыть курсор.
  Gui 11: Show, x0 y0 w%A_ScreenWidth% h%A_ScreenHeight% NA
  DllCall("ShowCursor", UInt, 0)
  HotKey, vk1, ShowCursor, On
 }
 Tool("Скрыть курсор: " SW,1000,0,0)
}

ShowCursor(){
 KeyWait, %A_ThisHotkey%, U
 HotKey, vk1, Off
 HideCursor()
}
Win11x64, AHK v1.1.37.01 (Unicode 64-bit), AHK v2.0.17| AHK-Wiki | Переменные и выражения | RegEx101

3 (изменено: Indomito, 2024-07-17 22:34:46)

Re: AHK: F11 - fullscreen, как заблокировать выезжающие панели.

__Михаил__
Курсор нужен для кликов(редко, но нужен), т.е. нужно Switch Hidden/Show курсора.

UPD
1. Проще было бы оставить курсор.
2. Надо нажимать на ссылки - без курсора не обойтись.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 10 x64 Pro(AutoHotkey v1.1.37.02)

4

Re: AHK: F11 - fullscreen, как заблокировать выезжающие панели.

Данный код проверяли? Панели появляются?

Win11x64, AHK v1.1.37.01 (Unicode 64-bit), AHK v2.0.17| AHK-Wiki | Переменные и выражения | RegEx101

5 (изменено: __Михаил__, 2024-07-18 00:26:13)

Re: AHK: F11 - fullscreen, как заблокировать выезжающие панели.

Можно оставить курсор для наглядности при этом отправлять клики в окно, правда не все окна принимают такой метод:

CoordMode, ToolTip, Screen
CoordMode, Mouse, Screen

F2::
WinGet, P, PID, A
HideCursor()
Return

;01:29 27.02.2022	Создаёт Gui окно для скрытия курсора:
HideCursor(){
 Static SW := -1
 If (SW < 0){	; Если окно не создано:
  SW := 1	; Скрыть курсор.
  Gui 11: -Caption +AlwaysOnTop +ToolWindow +LastFound
  Gui 11: Show, x0 y0 w%A_ScreenWidth% h%A_ScreenHeight% NA, Invisible AHK GUI
  WinSet, Transparent, 1
  HotKey, vk1, CursorClick, On	; Установить перехват ЛКМ, для отключения скрытия курсора.
 }
 Else If(SW = 1){
  SW := 0	; Отобразить курсор.
  Gui 11: Hide
  HotKey, vk1, Off
 }
 Else If(SW = 0){
  SW := 1	; Скрыть курсор.
  Gui 11: Show, x0 y0 w%A_ScreenWidth% h%A_ScreenHeight% NA
  HotKey, vk1, CursorClick, On
 }
 Tool("Скрыть курсор: " SW,1000,0,0)
}

CursorClick:
MouseGetPos, X, Y
ControlClick, X%x% Y%y%, ahk_pid %P%,, L, 1
ToolTip, X%x% Y%y% %P%,0,0
Return

Tool(Text, Wait := 1000, X := "", Y := ""){
 SetTimer, T_Off, Off
 ToolTip, % Text, %X%, %Y%
 SetTimer, T_Off, % Wait
 Return
}

~Esc::
T_Off:
SetTimer, T_Off, Off
ToolTip
Return
Win11x64, AHK v1.1.37.01 (Unicode 64-bit), AHK v2.0.17| AHK-Wiki | Переменные и выражения | RegEx101

6

Re: AHK: F11 - fullscreen, как заблокировать выезжающие панели.

__Михаил__
Можно сделать проще.
Скрывать курсор, когда он находится в области левой и правой панели, у меня так.
Там кликов-то нет, те достаточно вызывать DllCall("ShowCursor", UInt, 1/0)

Код проверял идёт скрытие, далее "угадай ка" по цветам .

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 10 x64 Pro(AutoHotkey v1.1.37.02)

7

Re: AHK: F11 - fullscreen, как заблокировать выезжающие панели.

А вот так нельзя скрыть курсор в браузере?

;CoordMode, ToolTip, Screen
CoordMode, Mouse, Screen
CoordMode, ToolTip
;+F11::
F2::
  SetTimer, t_on, on
  DllCall("ShowCursor", UInt, 0)
return
T_On:
	MouseGetPos, X, Y
	if (y <= 60) 
		DllCall("ShowCursor", UInt, 0)
	else 
		DllCall("ShowCursor", UInt, 1)
	;ControlClick, X%x% Y%y%, ahk_pid %P%,, L, 1
	;ToolTip, X%x% Y%y%
Return 
F3::
ExitApp
"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 10 x64 Pro(AutoHotkey v1.1.37.02)

8 (изменено: __Михаил__, 2024-07-19 22:01:39)

Re: AHK: F11 - fullscreen, как заблокировать выезжающие панели.

Насколько мне известно нет. Только в своём Gui окне. Либо полностью курсор менять на прозрачный.
Кстати, можно ограничить зону для курсора, он просто не выйдет за рамки. Видел такой код на форуме.

Win11x64, AHK v1.1.37.01 (Unicode 64-bit), AHK v2.0.17| AHK-Wiki | Переменные и выражения | RegEx101

9 (изменено: Indomito, 2024-07-20 22:46:21)

Re: AHK: F11 - fullscreen, как заблокировать выезжающие панели.

__Михаил__

1. Прозрачный курсор все равно будет срабатывать или будет?
2. Ограничение области через пару MouseGetPos и MouseMove или надо извращаться.

Извиняю за тупые опросы, я давно не писал ничего на AutoHotkey.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 10 x64 Pro(AutoHotkey v1.1.37.02)

10

Re: AHK: F11 - fullscreen, как заблокировать выезжающие панели.

Если своё Gui перекрывает браузер не должно же?

Win11x64, AHK v1.1.37.01 (Unicode 64-bit), AHK v2.0.17| AHK-Wiki | Переменные и выражения | RegEx101

11

Re: AHK: F11 - fullscreen, как заблокировать выезжающие панели.

__Михаил__ пишет:

Если своё Gui перекрывает браузер не должно же?

Мне не нужно перекрытие - исходная задача не изменилась.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 10 x64 Pro(AutoHotkey v1.1.37.02)

12 (изменено: __Михаил__, 2024-07-20 23:17:31)

Re: AHK: F11 - fullscreen, как заблокировать выезжающие панели.

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

Win11x64, AHK v1.1.37.01 (Unicode 64-bit), AHK v2.0.17| AHK-Wiki | Переменные и выражения | RegEx101

13 (изменено: Indomito, 2024-08-01 00:10:25)

Re: AHK: F11 - fullscreen, как заблокировать выезжающие панели.

__Михаил__ пишет:

...Если нужно, то можно отправлять клик в той области где курсор в само окно браузера. Это последний код который, без скрытия курсора.

А если так.
1. По таймеру считывать положение курсора.
2. Если курсор превышает значение, то сделать его перемещениё.
Я попытался, но не выходит.

+ Код
;CoordMode, ToolTip, Screen
CoordMode, Mouse, Screen
CoordMode, ToolTip
;+F11::
F2::
  SetTimer, t_on, on
  ;DllCall("ShowCursor", UInt, 0)
return
T_On:
	MouseGetPos, X, Y
	if (y <= 60)
		MouseMove, X, 61
		;DllCall("ShowCursor", UInt, 0)
	;else 
		;DllCall("ShowCursor", UInt, 1)
	;ControlClick, X%x% Y%y%, ahk_pid %P%,, L, 1
	;ToolTip, X%x% Y%y%
Return 

F3::
ExitApp

Подскажи где я ошибся, плиз.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 10 x64 Pro(AutoHotkey v1.1.37.02)

14 (изменено: Alectric, 2024-08-01 17:42:56)

Re: AHK: F11 - fullscreen, как заблокировать выезжающие панели.

AHK: удерживание курсора мыши в определенном окне


F1::
VarSetCapacity(RECT,16,0)
NumPut(10,&RECT+0,"uint") ;x
NumPut(10,&RECT+4,"uint") ;y
NumPut(1000,&RECT+8,"uint") ;w
NumPut(300,&RECT+12,"uint") ;h
DllCall("ClipCursor","PTR",&RECT)
return

F2::
DllCall("ClipCursor","PTR",0)
return

Esc::
DllCall("ClipCursor","PTR",0)
ExitApp

;typedef struct tagRECT {
;  LONG left;
;  LONG top;
;  LONG right;
;  LONG bottom;
;} RECT, *PRECT, *NPRECT, *LPRECT;
Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

15

Re: AHK: F11 - fullscreen, как заблокировать выезжающие панели.

Alectric Ты уверен в правильности написания?

;typedef struct tagRECT {
;  LONG left;
;  LONG top;
;  LONG right;
;  LONG bottom;
;} RECT, *PRECT, *NPRECT, *LPRECT;

Я комментарии убрал — не работает.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 10 x64 Pro(AutoHotkey v1.1.37.02)

16

Re: AHK: F11 - fullscreen, как заблокировать выезжающие панели.

Код рабочий, проверил. Но активация других окон его отключит.
Мне больше нравится перекрыть своим окном с прозрачностью 1, и вырезом в середине. Если вырез будет грузить, то окна по краям.
Ещё плюс можно на второй монитор лазить.
Ну и следить что окно фуллскрин конечно.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

17

Re: AHK: F11 - fullscreen, как заблокировать выезжающие панели.

Indomito пишет:

Я комментарии убрал — не работает.

А оно и не должно работать, это определение структуры, которая используется в ahk скрипте.

18

Re: AHK: F11 - fullscreen, как заблокировать выезжающие панели.

В фаерфоксе у меня никаких попап окон не появляется.
А во всех хромиумах попап окна являются отдельными окнами - просто прячьте их и всё.

19 (изменено: Indomito, 2024-08-09 22:20:06)

Re: AHK: F11 - fullscreen, как заблокировать выезжающие панели.

Извиняюсь ибо typedef из С/С++, я знаю что это определение структуры... и "на автомате" решил что оно реализовано в АНК.

P.S. Около 1.5 года или более, ни чего не писал на АНК.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 10 x64 Pro(AutoHotkey v1.1.37.02)

20 (изменено: Indomito, 2024-08-10 03:07:51)

Re: AHK: F11 - fullscreen, как заблокировать выезжающие панели.

Alectric
Экран разделен на два вертикальных фрейма, те мышка двигается только во одном фрейме(сейчас).
Как исправить это?

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 10 x64 Pro(AutoHotkey v1.1.37.02)

21 (изменено: Alectric, 2024-08-10 22:51:20)

Re: AHK: F11 - fullscreen, как заблокировать выезжающие панели.

Не пойму о чем ты говоришь. Покажи код.
Если говоришь о моем коде, то это только пример использования, тебе нужно подставить свои координаты x, y, w, h (получить их путем вычислений от размеров целевого окна или подставить вручную, как тебе удобно).

Win 10 x64
AHK v1.1.33.02
                       Справка тебе в помощь.

22 (изменено: Indomito, 2024-08-11 22:40:52)

Re: AHK: F11 - fullscreen, как заблокировать выезжающие панели.

Alectric 

+ Твой код
#Requires AutoHotkey v1		;Явное указание версии  AutoHotkey
#SingleInstance  Ignore     ;Запрет повторного запуска скрипта

ShCursor := 1 

Run, "C:\Games\Escort Dreams\Escort Dreams.html","C:\Games\Escort Dreams",UseErrorLevel, OutputVarPID
if (ErrorLevel = "ERROR") {
		ExitApp
	}
else 
	{
	  Sleep, 1000 ; 1 секунда.
	  send {F11}
	}
	
Esc::
DllCall("ClipCursor","PTR",0)
ExitApp

F2::
DllCall("ClipCursor","PTR",0)
return

F1::
VarSetCapacity(RECT,16,0)
NumPut(10,&RECT+0,"uint") ;x
NumPut(10,&RECT+4,"uint") ;y
NumPut(1280,&RECT+8,"uint") ;w
NumPut(1024,&RECT+12,"uint") ;h
DllCall("ClipCursor","PTR",&RECT)
return

Может  надо добавить CoordMode, TargetType [, RelativeTo]?

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 10 x64 Pro(AutoHotkey v1.1.37.02)

23

Re: AHK: F11 - fullscreen, как заблокировать выезжающие панели.

Alectric
Извини, всё верно, а мне "-" за невнимательность.

F1::
varX := 5 ;10
vary := 5 ;10
varXW := A_ScreenWidth - varX
varYH := A_ScreenHeight - varY
VarSetCapacity(RECT,16,0)
NumPut(varX,&RECT+0,"uint") ;x
NumPut(varY,&RECT+4,"uint") ;y
NumPut(varXW,&RECT+8,"uint") ;w
NumPut(varYH,&RECT+12,"uint") ;h
DllCall("ClipCursor","PTR",&RECT)
return

P.S. Писал на на одном компе, а проверял на другом.

Вопрос решён.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 10 x64 Pro(AutoHotkey v1.1.37.02)