ReactOS taskbar + Win10 desktop + Classic Shell
Feb 23, 2017 7:49:40 GMT -8
Post by Spitfire_x86 on Feb 23, 2017 7:49:40 GMT -8
Important notice: This project is abandoned. I don't know if it still works on newer versions of Windows 10. Use at your own risk.
What's this?
This is an AHK script that combines Windows 10 desktop with ReactOS taskbar. It also allows you to use Classic Shell or any other Start Menu replacement by drawing a custom Start button on top of the ReactOS taskbar. The code quality is questionable, but it does its job well* enough.
*The definition of 'well' varies widely in the Windows world. Proceed at your own discretion.
I'm not responsible for wrecked windows, destroyed desktops, totaled taskbars, broken Start buttons and thermonuclear war.
The AHK script, modified ReactOS Explorer and Start button graphics are available to download from the attachments.
Changelog:
Screenshot:
AHK script:
ReactOS Explorer config file can be found in %appdata%\ReactOS.
Note about ROS Explorer source code: I've only included the explorer-old directory from rosapps module - you need to download the rest of the ROS source code using ReactOS Build Environment (RosBE).
What's this?
This is an AHK script that combines Windows 10 desktop with ReactOS taskbar. It also allows you to use Classic Shell or any other Start Menu replacement by drawing a custom Start button on top of the ReactOS taskbar. The code quality is questionable, but it does its job well* enough.
*The definition of 'well' varies widely in the Windows world. Proceed at your own discretion.
I'm not responsible for wrecked windows, destroyed desktops, totaled taskbars, broken Start buttons and thermonuclear war.
The AHK script, modified ReactOS Explorer and Start button graphics are available to download from the attachments.
Changelog:
Mar 14, 2017
- Fixed start button graphic when opening Start with Win key
- Modified ROS Explorer source added
Mar 11, 2017
- Major changes to ROS explorer
- Completely disabled ROS desktop in the code
- ROS Explorer now always starts in shell mode
- Cleaned up the script a bit
- Removed the delay between starting Explorer and displaying start button
- Example start button graphics are now included
Mar 7, 2017
- Removed ROS-specific buttons from taskbar
- Changed the minimal size of quick launch bar to 0px
- Removed the defunct volume control
- Fixed the clock
- Minor improvements to the script
Feb 23, 2017
- Initial release
Screenshot:
AHK script:
#NoEnv
#NoTrayIcon
SendMode Input
Init:
;; Path to start button picture
ButtonPressed = <Path to pressed start button picture>
ButtonDepressed = <Path to depressed start button picture>
ex = ahk_class Shell_TrayWnd ahk_exe explorer_old.exe
;; Uncomment these 2 lines if you want to use Win-X
; Run, rundll32 TaskbarContextMenuTweaker.dll`,Release
; Run, rundll32 TaskbarContextMenuTweaker.dll`,Inject
;; Hide Win10 taskbar
WinHide ahk_class Shell_TrayWnd ahk_exe explorer.exe
;; Start ROS explorer
Run, <Path to ROS explorer>
WinWaitActive, %ex%
;; Hide ROS start button
Control, Disable,, Button1, %ex%
Control, Hide,, Button1, %ex%
;; Fix for Win10 glowing border on taskbar
WinSet, Style, +0xC00000, %ex%
WinSet, Style, -0xC00000, %ex%
;; Define new GUI
Gui, +hwndChild -Caption -Border +alwaysontop -Resize
DllCall("uxtheme.dll\SetThemeAppProperties", "UInt", 0)
;; Picture instead of button because AHK is weird
Gui, Add, Picture, x0 y0 vStart1 gStartPress, %ButtonDepressed%
Gui, Show, w56 h26
;; Set parent of GUI to ROS taskbar
Parent := WinExist("ahk_class Shell_TrayWnd ahk_exe explorer_old.exe" pid)
DllCall("SetParent", "ptr", Child, "ptr", Parent)
;; Start button position and size
WinMove, ahk_id %child%,, 1, 1, 52, 22
;; Awful workaround part one
SetTimer, IsStartOpen, 50
Return
StartPress:
;; Open ClassicShell start menu by emulating Win key press
Send, {LWin}
SetTimer, IsStartOpen, Off
;; Change button picture to pressed
GuiControl,,Start1,%ButtonPressed%
GuiControl, -g +gStartDepress, Start1,
SetTimer, FixButton, 50
Return
StartDepress:
SetTimer, FixButton, Off
;; Change button picture to depressed
GuiControl,,Start1,%ButtonDepressed%
GuiControl, -g +gStartPress, Start1,
SetTimer, IsStartOpen, 50
Return
FixButton:
;; If button is pressed but start menu is closed, depress the start button
If !WinExist("ahk_class ClassicShell.CMenuContainer") {
Goto, StartDepress
}
Return
IsStartOpen:
;; Awful workaround part two
If WinExist("ahk_class ClassicShell.CMenuContainer") {
GuiControl,,Start1,%ButtonPressed%
GuiControl, -g +gStartDepress, Start1,
SetTimer, IsStartOpen, Off
SetTimer, FixButton, 50
}
Return
GuiContextMenu:
;; Opens Win-X menu by default
Send, {LWin Down}{x}{LWin Up}
Return
ReactOS Explorer config file can be found in %appdata%\ReactOS.
Note about ROS Explorer source code: I've only included the explorer-old directory from rosapps module - you need to download the rest of the ROS source code using ReactOS Build Environment (RosBE).