Simple Classic Theme • Taskbar • Explorer • Control Panel
A classic taskbar alternative.
For more info check the thread on the WinClassic Boards.
Taskbar for Simple Classic Theme
Home Page: http://winclassic.boards.net/thread/520/wip-simple-classic-theme-taskbar
Simple Classic Theme • Taskbar • Explorer • Control Panel
A classic taskbar alternative.
For more info check the thread on the WinClassic Boards.
In SCTT Alpha 0.0.7642.30810, time was displayed in 12 hour format (i.e., 3:00 PM). In the latest Beta 0.0.7709.39241, it's now in 24 hour format (i.e., 15:00).
Personally I prefer 12 hour, but I'm sure others prefer 24... is it possible to make a 12/24 hour option available in the Configuration window?
Fully DPI-awareness (PerMonitorV2)
Layout at 96dpi, scaled up afterwards
After scaling layout changes must be done at full DPI
Renderers will draw at full DPI
Branch: scaling (based on ad8110e)
General:
Taskbar:
Settings:
To be done
If I open multiple windows or programs, as soon as more than 6 task bar buttons appear on the task bar, I get this message:
I can click OK to close it.
None of the open programs close, none of the task bar buttons disappear or stop working, and SCTT continues to function.
But, the message above will pop up again within 3 - 10 seconds, and continue to do so, until I close enough programs or windows to get it to stop.
When the message is up, I cannot use the task bar. For example, if I click a task bar button to bring an open window to the foreground, it instead brings the above message to the foreground. Until I click OK on the message, the task bar is locked.
So obviously this makes it very difficult to work when there are more than 6 task bar buttons.
No Windows event log is generated.
A SCTT log event is generated every time the message appears. Here's the contents of one:
ArgumentException
at System.Drawing.Graphics.GetHdc()
at System.Drawing.Internal.WindowsGraphics.FromGraphics(Graphics g, ApplyGraphicsProperties properties)
at System.Drawing.Icon.Draw(Graphics graphics, Rectangle targetRect)
at System.Drawing.Icon.BmpFrame()
at SimpleClassicThemeTaskbar.SingleTaskbarProgram.set_Icon(Icon value)
at SimpleClassicThemeTaskbar.Taskbar.timerUpdateUI_Tick(Object sender, EventArgs e)
at System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, WM msg, IntPtr wparam, IntPtr lparam)
Parameter is not valid.
System.Drawing.Common
Here's a zip of all of the logs generated so far:
Taskbar_Exiting_Messages.zip
Here's my config info:
Windows 10 Pro x64 2004
Right click taskbar, select "Configure SCT Taskbar", get this window (don't know how to get this in English; I made a separate issue):
Click OK without touching anything, and SCTT crashes:
There is no taskbar at all after the crash (no system taskbar, no SCTT taskbar). I can get to the Start Menu by hitting the "Windows" key on the keyboard.
Not sure if there's any kind of log file saved anywhere. But there are two Windows Application Event logs; not sure if they tell you anything useful:
Event 1000, Application Error:
Faulting application name: SimpleClassicThemeTaskbar.exe, version: 0.0.7709.39241, time stamp: 0x5fbf100e
Faulting module name: KERNELBASE.dll, version: 10.0.19041.572, time stamp: 0x1183946c
Exception code: 0xe0434352
Fault offset: 0x0000000000023e49
Faulting process id: 0x14fc
Faulting application start time: 0x01d6fe65b5e4baed
Faulting application path: C:\SCT\Taskbar\SimpleClassicThemeTaskbar.exe
Faulting module path: C:\WINDOWS\System32\KERNELBASE.dll
Report Id: 124e0eab-94b4-403f-ac5e-9a80db5057d1
Faulting package full name:
Faulting package-relative application ID:
Event 1026, .NET Runtime:
Application: SimpleClassicThemeTaskbar.exe
CoreCLR Version: 5.0.220.61120
.NET Version: 5.0.2
Description: The process was terminated due to an unhandled exception.
Exception Info: System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'Taskbar'.
at System.Windows.Forms.Control.MarshaledInvoke(Control caller, Delegate method, Object[] args, Boolean synchronous)
at System.Windows.Forms.Control.Invoke(Delegate method, Object[] args)
at SimpleClassicThemeTaskbar.Taskbar.BackgroundThreadFunction()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
OS is Win 10 Pro x64 build 2004.
Currently running SCT 1.1.9 and SCTT Alpha 0.0.7642.30810, working as expected.
The current directory structure for SCT and SCTT, is SCT is in C:\SCT, and SCTT is in C:\SCT\Taskbar. There is also a zip archive of SCTT which contains the files in C:\SCT\Taskbar in C:\SCT\sctt.zip.
I tried installing the new SCTT Beta 0.0.7707.37574 the same way. I moved the above C:\SCT\Taskbar folder and C:\SCT\sctt.zip file to a backup directory, then downloaded SimpleClassicThemeTaskbar_x64.zip to C:\SCT and renamed it to sctt.zip. I then extracted this to C:\SCT\Taskbar. So my setup looks like this:
I first tried running SCT.exe (still at version 1.1.9). I found that the "Enable" and "Disable" buttons are now greyed out:
If I move and replace C:\SCT\sctt.zip and C:\SCT\Taskbar* with the older Alpha version 0.0.7642.30810, the above "Enable" and "Disable" buttons work again.
With the new SCTT Beta 0.0.7707.37574 folders back in place, I tried running SimpleClassicThemeTaskbar.exe directly. I received this error:
This dialog box disappears and does nothing regardless of which button, "Yes" or "No" is clicked.
I have Microsoft .NET installed up to 4.8. ASoft .NET Version Detector shows that I have installed Microsoft.NETCore.App 5.0.0.
Is there a specific installer I need for Microsoft .NET that I need in order to run SCTT Beta 0.0.7707.37574? If so, do you have a link to it?
Should I wait for a new version of SCT before I try running the new SCTT beta, since it appears that it breaks the current version 1.1.9? I see that SCT version 1.2.0 and 1.2.1 were posted but removed due to compatibility issues.
Windows Vista/7 added following features:
It would be awesome if there could be a classic backport of those features.
Different message than previously:
Faulting application name: SimpleClassicThemeTaskbar.exe, version: 0.0.7809.19559, time stamp: 0x60513887
Faulting module name: KERNELBASE.dll, version: 10.0.19041.572, time stamp: 0x1183946c
Exception code: 0xe0434352
Fault offset: 0x0000000000023e49
Faulting process id: 0x864
Faulting application start time: 0x01d74dc83a537c0d
Faulting application path: C:\SCT\Taskbar\SimpleClassicThemeTaskbar.exe
Faulting module path: C:\WINDOWS\System32\KERNELBASE.dll
Report Id: 447bde2b-f519-4b1a-8787-20213e527a1d
Faulting package full name:
Faulting package-relative application ID:
Application: SimpleClassicThemeTaskbar.exe
CoreCLR Version: 5.0.521.16609
.NET Version: 5.0.5
Description: The process was terminated due to an unhandled exception.
Exception Info: System.Runtime.InteropServices.COMException (0x80040154): Retrieving the COM class factory for component with CLSID {C2F03A33-21F5-47FA-B4BB-156362A2F239} failed due to the following error: 80040154 Class not registered (0x80040154 (REGDB_E_CLASSNOTREG)).
at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean wrapExceptions, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& hasNoDefaultCtor)
at System.RuntimeType.CreateInstanceDefaultCtorSlow(Boolean publicOnly, Boolean wrapExceptions, Boolean fillCache)
at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, Boolean wrapExceptions)
at System.Activator.CreateInstance(Type type, Boolean nonPublic, Boolean wrapExceptions)
at System.Activator.CreateInstance(Type type)
at SimpleClassicThemeTaskbar.Helpers.NativeMethods.UnmanagedCodeMigration.InitializeVdmInterface() in D:\a\SimpleClassicThemeTaskbar\SimpleClassicThemeTaskbar\SimpleClassicThemeTaskbar\Helpers\NativeMethods\UnmanagedCodeMigration.cs:line 340
at SimpleClassicThemeTaskbar.ApplicationEntryPoint.Main(String[] args) in D:\a\SimpleClassicThemeTaskbar\SimpleClassicThemeTaskbar\SimpleClassicThemeTaskbar\ApplicationEntryPoint.cs:line 202
One issue, three bugs:
Shutting down causes SCTT to crash and your shutdown to automatically cancel
Right clicking and pressing Exit SCT Taskbar only closes the taskbar on the screen you close it on
Killing it sometimes breaks the registry config
Describe the bug
The tray does not appear on the taskbar
Reproduction
Everytime SCTT is open the tray does not appear
Expected behavior
I expected to see an arrow revealing the tray, like in the screenshots on the WinClassic Boards thread.
Environment:
I will do this in merge-master-tray (Based on tray)
Starting from 0.0.7710.36086 the systray and clock functions aren't being called. This results in the clock being stuck at 5:03PM and the systray being empty.
I did some manual digging as to why SCTT seems to crash querying a process. A great article from Giorgi Dalakishvili shows why, TLDR: .NET Runtime is calling Win32 in a wrong way, requiring us to call things manually.
In SCTT Alpha 0.0.7642.30810, Taskbar-Context-Menu-Tweaker worked for creating a classic grey Taskbar context menu.
In SCTT Beta 0.0.7709.39241, it no longer works:
Troubleshooting:
Ensure C:\Windows\System32\TaskbarContextMenuTweaker.dll is present
Kill and restart all explorer.exe processes after enabling SCT
Run rundll32 TaskbarContextMenuTweaker.dll,Inject
Didn't work... is it possible to get Taskbar-Context-Menu-Tweaker functionality restored? (Obviously not a huge problem but still something that would be nice if it could still work!) :)
CsWin32 will take away the burden of having to write all native methods manually.
There's a good reason not to use it, it seems like the repository owners/maintainers aren't acting to issues (even ones created by myself). (just took longer than expected)
Currently while testing there are way too many cases where SCTT fails, like disposed handles, etc., causing the application to crash. This issue should track many of the unexpected exceptions.
System.OverflowException
: Arithmetic operation resulted in an overflow.UnmanagedCodeMigration.cs:232
System.ObjectDisposedException
: Cannot access a disposed object. Object name: 'Icon'.GroupedTaskbarProgram.cs:34
After I run SCT and close its box, Explorer is loaded and my Documents folder gets displayed.
Mostly an annoyance since I then have to close Explorer (I use a different file manager and never use the Documents folder). But something it would be good to fix if you get a chance.
SCTT's memory usage keeps increasing very slowly, but GC doesn't clean some things.
Currently most SCTT components compare UI against data, this is possible to improve, I'd suggest this:
I imagine sharing one base class/interface for either event-based updates or pulling.
Most of SCTT's current code is like this.
List<Item> newItems = new();
foreach (var item in SomeItemSource)
{
newItems.Add(item);
if (!items.Contains(item))
{
/* some init here */
items.Add(item);
}
}
foreach (var item in items)
{
if (!newItems.Contains(item))
{
_ = items.Remove(item);
item.Dispose();
}
}
/* additional processing here */
Open tasks partially render under the system tray.
Windows 10 Pro 2004 x64 / SCT 1.2.2.0 / SCTT 0.0.7712.2869
The leftmost taskbar button is too close to the start button:
This seems to happen after changing "Space between taskbar programs", even after changing it to the default setting of 2. If I change it it looks like this after clicking OK:
But clicking then minimizing the first program on the taskbar (next to the Start button) will result in the former image, where it appears to overlap.
For comparison here is the Windows 7 classic taskbar using Classic Shell:
It's clear there should be more space between the Start button and the first taskbar button. But I'm not sure if SCTT should be doing this, or if I should be adding transparent pixels to the right of the custom Start button PNG image.
I tried the development build and it crashed immediately. (Clicking "enable" in SCT.)
It appears to be missing a file called SimpleClassicThemeTaskbar.CodeBridge
Faulting application name: SimpleClassicThemeTaskbar.exe, version: 0.0.7804.42771, time stamp: 0x60513887
Faulting module name: KERNELBASE.dll, version: 10.0.19041.572, time stamp: 0x1183946c
Exception code: 0xe0434352
Fault offset: 0x0000000000023e49
Faulting process id: 0xd98
Faulting application start time: 0x01d74920205c0c5f
Faulting application path: C:\SCT\Taskbar\SimpleClassicThemeTaskbar.exe
Faulting module path: C:\WINDOWS\System32\KERNELBASE.dll
Report Id: 6acac671-d915-4575-be43-b72a380ba969
Faulting package full name:
Faulting package-relative application ID:
Application: SimpleClassicThemeTaskbar.exe
CoreCLR Version: 5.0.521.16609
.NET Version: 5.0.5
Description: The process was terminated due to an unhandled exception.
Exception Info: System.IO.FileNotFoundException: Could not load file or assembly 'SimpleClassicThemeTaskbar.CodeBridge, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.
File name: 'SimpleClassicThemeTaskbar.CodeBridge, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null'
at SimpleClassicThemeTaskbar.ApplicationEntryPoint.Main(String[] args)
Originally posted by @BlohoJo in #20 (comment)
Right or left clicking any of the built in Windows system tray icons for Volume, Safely Remove Hardware, and Networking returns this error:
There are no Windows Events logs, but there are logs created in the SCTT folder:
outside-taskbar-crash2021-24-3--15-02-41:
Win32Exception
at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start(String fileName)
at SimpleClassicThemeTaskbar.UIElements.SystemTray.SystemTrayIcon.<.ctor>b__17_2(Object sender, MouseEventArgs e)
at System.Windows.Forms.Control.OnMouseClick(MouseEventArgs e)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, WM msg, IntPtr wparam, IntPtr lparam)
The system cannot find the file specified.
System.Diagnostics.Process
outside-taskbar-crash2021-24-3--15-02-45:
Win32Exception
at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start(String fileName)
at SimpleClassicThemeTaskbar.UIElements.SystemTray.SystemTrayIcon.<.ctor>b__17_2(Object sender, MouseEventArgs e)
at System.Windows.Forms.Control.OnMouseClick(MouseEventArgs e)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, WM msg, IntPtr wparam, IntPtr lparam)
The system cannot find the file specified.
System.Diagnostics.Process
outside-taskbar-crash2021-24-3--15-02-48:
Win32Exception
at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start(String fileName)
at SimpleClassicThemeTaskbar.UIElements.SystemTray.SystemTrayIcon.<.ctor>b__17_2(Object sender, MouseEventArgs e)
at System.Windows.Forms.Control.OnMouseClick(MouseEventArgs e)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, WM msg, IntPtr wparam, IntPtr lparam)
The system cannot find the file specified.
System.Diagnostics.Process
Versions:
I have no idea if it crashed or closed. Every 24 hours or so, the taskbar vanishes. SCTT closes and does not leave any other system taskbar in its place. There is simply no taskbar. I can bring up the Start menu by hitting the "Windows" key on the keyboard, then running SCT from there and click the "Enable" button which re-starts SCTT.
This didn't happen with any of the SCTT releases labeled as "Alpha" (i.e., Alpha 0.0.7642.30809, etc.)
This is a hard one to do anything with if you can't reproduce it, because I can't find any kind of tracing. There's no Windows Event log generated when SCTT shuts down, which seems to indicate (but doesn't necessarily mean) that it didn't crash.
I'm only running Windows Defender. I tried putting in an exclusion in for C:\SCT:
This had no effect on the issue.
I can't find any kind of logging for SCTT. Is there any way to get SCTT to generate verbose logging?
When opening any UWP app a button shows up on the taskbar, but it doesn't have the associated app icon.
The above instructions were followed precisely on a clean installation of LTSB 2016. I've tried it with "Classic Taskbar" ticked and unticked and the result is the same.
I have tried the current nightly on your WinClassic post and it just instantly crashes. No pop-up, just disappears from Task Manager. What's going on?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.