1

Тема: AHK: Альтернатива Alt+Tab

У кого какой код на замену Alt+Tab?
Я разные пробовал, во всех бывают ситуации, когда их поведение отличается от нажатия Alt+Tab.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

2

Re: AHK: Альтернатива Alt+Tab

Для чего заменять Alt+Tab? Это сочетание клавиш мешается в каком-то конкретном AutoHotkey-скрипте?

3

Re: AHK: Альтернатива Alt+Tab

Окно мелькает.

В идеале было бы получать предыдущее окно, и список как в Alt+Tab.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

4

Re: AHK: Альтернатива Alt+Tab

Тут же обсуждали:
http://forum.script-coding.com/viewtopic.php?id=16202

5 (изменено: serzh82saratov, 2022-09-06 21:06:31)

Re: AHK: Альтернатива Alt+Tab

Насколько помню там нет решения. Отсюда почитай http://forum.script-coding.com/viewtopi … 28#p146928

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

6

Re: AHK: Альтернатива Alt+Tab

А чем это не устраивает?

Окно AltTab можно перекрыть снимком экрана.

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

7

Re: AHK: Альтернатива Alt+Tab

Ну ты же сам знаешь, что это ломаный костыль.
Если уже ты такое предлагаешь, то тему можно смело закрывать, с грифом - доступ к "окнам Alt+Tab невозможен".

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

8

Re: AHK: Альтернатива Alt+Tab

serzh82saratov пишет:

Окно мелькает.

В смысле имеет место какой-то сбой или проблема? Или просто не нравится табличка, вылезающая поверх всех окон при нажатии Alt+Tab ?

9

Re: AHK: Альтернатива Alt+Tab

serzh82saratov пишет:

Если уже ты такое предлагаешь, то тему можно смело закрывать, с грифом - доступ к "окнам Alt+Tab невозможен".

Можешь поиграться.
https://answers.microsoft.com/en-us/ins … c82dc0ecce

10

Re: AHK: Альтернатива Alt+Tab

Malcev пишет:

Можешь поиграться.

Этот контент для взрослых, я ещё не подрос.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

11

Re: AHK: Альтернатива Alt+Tab

Нужно просто попробовать.
Например, Grid_leftmargin устанавливаешь за экран  - окно открывается за экраном.

12

Re: AHK: Альтернатива Alt+Tab

Malcev пишет:

Нужно просто попробовать.

Я даже не понял о чём ты, ты про

Окно AltTab можно перекрыть снимком экрана.

но это уже совсем другая тема.

Тут осталось 2.5 человека, хотелось узнать авторитетное мнение от всех, в стиле - нет, мы все не знаем как это возможно сделать, но наверняка это возможно, но мы просто не знаем как. )

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

13

Re: AHK: Альтернатива Alt+Tab

Создаешь в реестре ключ:

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MultitaskingView\AltTabViewhost]

В нем создаешь dword "Grid_leftmargin" со значением ширины экрана.
В результате при нажатии alt-tab окно появляется за экраном.
Информацию с него считываешь с помощью uia.

14

Re: AHK: Альтернатива Alt+Tab

Malcev пишет:

Информацию с него считываешь с помощью uia.

А какая там информация, заголовки?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

15

Re: AHK: Альтернатива Alt+Tab

Malcev пишет:

В результате при нажатии alt-tab окно появляется за экраном.

А если ручками нажать alt-tab, куда смотреть...

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

16

Re: AHK: Альтернатива Alt+Tab

serzh82saratov пишет:

А какая там информация, заголовки?

Да.

serzh82saratov пишет:

А если ручками нажать alt-tab, куда смотреть...

Перед появлением окна меняешь значение в реестре.

17

Re: AHK: Альтернатива Alt+Tab

Ясно, в общем API у AltTab не существует.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

18

Re: AHK: Альтернатива Alt+Tab

serzh82saratov
Здравствуйте!
Хотелось бы знать о чём вы пишите, любопытство.
Можете привести пример, в котором бы окно мелькало?

19

Re: AHK: Альтернатива Alt+Tab

Clannad5 пишет:

Можете привести пример, в котором бы окно мелькало?

1::   SendInput  {LAlt Down}{Tab}{LAlt Up}
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

20

Re: AHK: Альтернатива Alt+Tab

serzh82saratov
У меня нет никаких мельканий.
У вас какая операционная система стоит?

У меня Windows 11.
Так же есть возможность использовать Alt+Shift+Esc (->) и Alt+Esc(<-), пробовали?

21

Re: AHK: Альтернатива Alt+Tab

У меня Windows 10. Alt+Esc переключает окна по порядку, а надо только предыдущие.
Если вы имеете ввиду чередовать Alt+Shift+Esc и Alt+Esс, то это может быть выходом, спасибо.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

22

Re: AHK: Альтернатива Alt+Tab

На первый взгляд отлично работает. Косяк только с тем что при первом использовании нужен Alt+Tab, но это мелочи, по сравнению с тем что имеем.


1::   AltTab()

AltTab() {
	Static i
	If (i = "") && (1, i := 0)
		SendInput {LAlt Down}{Tab}{LAlt Up}
	Else
		SendInput % (i := !i) ? "{LAlt Down}{Escape}{LAlt Up}" : "{LShift Down}{LAlt Down}{Escape}{LShift Up}{LAlt Up}"
}
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

23

Re: AHK: Альтернатива Alt+Tab

Рано обрадовался, нажатие Alt+Tab ломает логику. (

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

24 (изменено: ypppu, 2022-09-11 13:50:28)

Re: AHK: Альтернатива Alt+Tab

Опытным путём выяснил, что при каждом нажатии Alt+Tab создаётся окно class #32771 с новым HWND. Следовательно окно "одноразовое", существует только пока мы держим Alt+Tab.
Действительно для Windows 7 Pro x64 упрощённый стиль.

25

Re: AHK: Альтернатива Alt+Tab

serzh82saratov пишет:

Ясно, в общем API у AltTab не существует.

А зачем апи, когда через реестр ты можешь модифицировать окно как хочешь.

26

Re: AHK: Альтернатива Alt+Tab

Malcev пишет:
serzh82saratov пишет:

Ясно, в общем API у AltTab не существует.

А зачем апи, когда через реестр ты можешь модифицировать окно как хочешь.

То что надо сбрасывать значение перед физическим нажатием, как то не комильфо.
Кстати реестр меняется в оперативке, или все изменения пишутся сразу на диск?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

27

Re: AHK: Альтернатива Alt+Tab

На диск.
Если посмотреть, сколько и в каких объемах ежесекундно пишется на диск, то всё это мелочи.

28

Re: AHK: Альтернатива Alt+Tab

Ну например скрипт крашится, и пользователь после нажимает Alt+Tab, он не поймёт что происходит.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

29 (изменено: Malcev, 2022-09-11 15:43:00)

Re: AHK: Альтернатива Alt+Tab

Можно делать так, что после каждого нажатия

1::   SendInput  {LAlt Down}{Tab}{LAlt Up}

данные в реестре стираются.
Хотя, с чего это должен скрипт крашиться...
Самое интересное, что если отвечать на твой вопрос

У кого какой код на замену Alt+Tab?

то я вообще не пользуюсь данным переключением - тыкаю мышкой в нужные мне окна.

30

Re: AHK: Альтернатива Alt+Tab

Malcev пишет:

тыкаю мышкой в нужные мне окна

Мне часто нужно предыдущее окно, мышкой тыкать отвлекает, а если окно находится в сгруппированных, то совсем плохо.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

31

Re: AHK: Альтернатива Alt+Tab

Malcev пишет:

после каждого нажатия

И перед нажатием тоже надо изменить, на каждый такой тык 2 раза в реестр лезть.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

32 (изменено: Clannad5, 2022-09-11 16:07:22)

Re: AHK: Альтернатива Alt+Tab

serzh82saratov

А зачем нужен первоначальный альт+таб? У меня лично вот так работает.

1::   AltTab()

AltTab() {
	Static i
		SendInput % (i := !i) ? "{LAlt Down}{Escape}{LAlt Up}" : "{LShift Down}{LAlt Down}{Escape}{LShift Up}{LAlt Up}"
}

Да и если такие уж проблемы, не проще ли создать тогда свой Alt+Tab?
Пусть запоминает последнее открытое окно и если фокус перешёл на нового окно, то при нажатие клавиши, оно возвращает на прошлое окно?
Тогда не нужен вообще никакой Alt+Tab.

33 (изменено: Malcev, 2022-09-11 16:28:27)

Re: AHK: Альтернатива Alt+Tab

serzh82saratov пишет:

И перед нажатием тоже надо изменить, на каждый такой тык 2 раза в реестр лезть.

Ты так говоришь, будто в этом есть что-то ужасное.
https://superuser.com/questions/1711732 … -timespans

34

Re: AHK: Альтернатива Alt+Tab

Убедил.

Всё же любопытно откуда эти окна AltTab берёт.
К примеру EnumWindows если ещё чутка отсеять в ней, выводит окна в нужном порядке, но проблема что перед ними выводит все TOPMOST окна.


SetFormat, IntegerFast, H
EnumWindowsProcStub:= RegisterCallback("EnumWindowsProc","Fast")
OnExit Exit
global out 
DllCall("EnumWindows", "UInt", EnumWindowsProcStub, "UInt", 0) 
msgbox, % Clipboard := out
return

EnumWindowsProc(hwnd, lParam) { 
	If !DllCall("IsWindowVisible", "Ptr", HWND)
		return 1
	If DllCall("GetAncestor", "Ptr", hwnd, Uint, 3) != hwnd
		return 1
		
    WinGetTitle, text, ahk_id %hwnd%
    WinGetClass, class, ahk_id %hwnd%
    out.="HWND: " . hwnd . "`tlParam: " . lParam . "`tTitle: " . text . "`tClass: " . class . "`n" 
    return 1
}
 
Exit:
	DllCall("GlobalFree", "UInt", EnumWindowsProcStub)
	ExitApp
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

35

Re: AHK: Альтернатива Alt+Tab

Clannad5 пишет:

У меня лично вот так работает.

Не так переключает, если саму активировать.

Clannad5 пишет:

Пусть запоминает последнее открытое окно

Там много ещё нюансов, хотелось бы без них как нибудь.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

36

Re: AHK: Альтернатива Alt+Tab

serzh82saratov пишет:

Всё же любопытно откуда эти окна AltTab берёт.

Наверное стоит хук на создание-активирование окон.
Ты тоже можешь написать dll, которая будет отслеживать.

37

Re: AHK: Альтернатива Alt+Tab

Malcev пишет:

Ты тоже можешь написать dll

А DLL зачем, чем SetWinEventHook не подходит?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui

38

Re: AHK: Альтернатива Alt+Tab

Да, dll тут не нужна.

39

Re: AHK: Альтернатива Alt+Tab

Malcev пишет:

Наверное стоит хук на создание-активирование окон.

Это надо все окна сохранять, при перезапуске все пропадут, в файл писать как то не хочется.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru
Win10x64 v20H2, AutoHotkey_L v1.1.34.01 (Unicode 32-bit). AhkSpy, Hotkey, ClockGui