Monthly Archives: March 2015

Прокручиваем столбцы в вертикальной панели задач Windows 7 с помощью Autohotkey

Собственно, сабж. Всем известно, что с 7-й версии Windows вертикальная панель задач больше не может иметь несколько видимых столбцов.
Когда приложений становится слишком много, они попадают в новый столбец, но он остается невидимым, пока мы не доберемся до него, используя ползунок внизу панели задач. С помощью настроек и правок реестра исправить это никак нельзя.
Единственное решение — чуть облегчить доступ к последущим столцам. Логично использовать для этого колесико мыши.
Следующий скрипт AutoHotkey как раз и позволяет прокручивать столбцы вертикальной панели задач, используя колесико мыши, причем делает это только в том случае, если курсор находится над панелью задач (с автоматически скрываемой панелью тоже работает).

#NoEnv  ; Avoids checking empty variables to see if they are environment
; variables. Recommended for performance and compatibility with future 
; AutoHotkey releases.

#SingleInstance force; Performs in single instance mode.

HScrollTaskBar( aDirection ){
	local hwnd
	local targetHwnd
	static WM_HSCROLL := 0x114
	hwnd := WinExist("ahk_class Shell_TrayWnd")
	ControlGet, targetHwnd, Hwnd,, MSTaskSwWClass1, ahk_id %hwnd%
	DllCall( "PostMessage", "Uint", targetHwnd, "Uint",  WM_HSCROLL, "Uint" , aDirection, "Uint", 0 )
	return
}

MouseIsOverTaskbar() {
	local win
    MouseGetPos,,, Win
    return WinExist("ahk_class Shell_TrayWnd ahk_id " . Win)
}

#If MouseIsOverTaskbar()
WheelUp::
	HScrollTaskBar(6)
	return
WheelDown::
	HScrollTaskBar(7)
	return	
#If

Autohotkey Script: Scroll Windows 7’s vertical taskbar to another column

Here’s another small autohotkey script that elevates the usability of Windows 7’s vertical taskbar. It enables one to scroll to another taskbar column (if open apps span to multiple columns) using mouse wheel.

#NoEnv  ; Avoids checking empty variables to see if they are environment
; variables. Recommended for performance and compatibility with future 
; AutoHotkey releases.

#SingleInstance force; Performs in single instance mode.

HScrollTaskBar( aDirection ){
	local hwnd
	local targetHwnd
	static WM_HSCROLL := 0x114
	hwnd := WinExist("ahk_class Shell_TrayWnd")
	ControlGet, targetHwnd, Hwnd,, MSTaskSwWClass1, ahk_id %hwnd%
	DllCall( "PostMessage", "Uint", targetHwnd, "Uint",  WM_HSCROLL, "Uint" , aDirection, "Uint", 0 )
	return
}

MouseIsOverTaskbar() {
	local win
    MouseGetPos,,, Win
    return WinExist("ahk_class Shell_TrayWnd ahk_id " . Win)
}

#If MouseIsOverTaskbar()
WheelUp::
	HScrollTaskBar(6)
	return
WheelDown::
	HScrollTaskBar(7)
	return	
#If