Git Product home page Git Product logo

simpleclassictheme.taskbar's Introduction

simpleclassictheme.taskbar's People

Contributors

aeaeaeae4343 avatar craftplacer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

simpleclassictheme.taskbar's Issues

Improve themeing support

  • Allow for animations
    • Maybe add an option for timers?
    • How would we present this in a config file?
    • Maybe multiple timers at different intervals for different concurrent animation speeds?
  • Add stretch option for each resource usable in ImageRenderer
  • Improve Luna's screenshots Add XP visual style renderer
  • Implement Quick Launch rendering
  • Add layout options (constraints, padding, margin etc.)
  • Preview theme in the config menu

Request: Time display in 12 or 24 hour format

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?

Implement scaling

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:

  • Set high DPI mode to PerMonitorV2 (commit c2b17d6)

Taskbar:

  • Disable WinForms automatic scaling (commit 2d1ada4)
  • Manually scale the taskbar
  • Reshow taskbars when scaling options changed
  • Make renderers DPI aware when they change widths and positions

Settings:
To be done

"Unhandled Exception" dialog if more than 6 taskbar buttons

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:

unhandled

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

sctt_01

sctt_02
XP Classic (Bigger) (SCTT)

sctt_03

sctt_04

Closing the taskbar crashes the taskbar because of an ObjectDisposedException

Right click taskbar, select "Configure SCT Taskbar", get this window (don't know how to get this in English; I made a separate issue):

config_ok

Click OK without touching anything, and SCTT crashes:

crash

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_log

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()

Can't run Beta 0.0.7707.37574, .NET not detected, also breaks SCT.exe

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:

sctt_dir_main

sctt_dir

I first tried running SCT.exe (still at version 1.1.9). I found that the "Enable" and "Disable" buttons are now greyed out:

sct_options

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:

sctt_net

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.

dotnet

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.

Improve performance

  • Listen for messages of windows getting created/destroyed
  • Reduce CPU usage of 'WindowIsOnCurrentDesktop(hWnd)' This function is now rarely called and has actually been optimized as far as it can.
  • Look into repeating changing workspace area (glitching maximized windows)

Backport Windows 7 taskbar extensions

Windows Vista/7 added following features:

  • Progress inside taskbar
  • Icon emblems
  • Thumbnail actions

It would be awesome if there could be a classic backport of those features.

Developer version 2021.05.19 still crashes on startup

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

Closing SCTT is a mess

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

Prepare SCT Taskbar for 1.0.0

I will do this in merge-master-tray (Based on tray)

  • Fix text on task view items
  • Make error messagebox close the loggers stream, open the file in notepad, and reopen the stream in append mode
  • Replace all Windows 10 version checks with Windows 10 or higher version checks
  • Make NetworkUI accessible through commandline but show warning about it being unfinished
  • Make VDM Notification service just return 0 when it fails
  • Implement old tray and make the new tray an option inside the settings menu (Maybe default it on W11)
  • Replace the option to enable the new taskbar collection system with an option that restores the old one
  • Fix bindingflags to actually save settings
  • Customizable mouse actions
  • Fix grouping
  • Fix dragging around grouped windows
  • Figure out why the config menu takes 3x as long to load as before
  • Better hover highlight
    • Quick launch
    • System tray
  • Finish Classic renderer for quick-launch
  • Move stuff to SCT.Common
    • Error reporting
    • Logger
    • Config
  • #41
  • Fix bugs around new rewrite
  • Clean code (if you know what I mean)
  • Visual style previews

Clock and Systray don't refresh

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.

Classic Context Menu needs reimplementing

In SCTT Alpha 0.0.7642.30810, Taskbar-Context-Menu-Tweaker worked for creating a classic grey Taskbar context menu.

sctt_alpha

In SCTT Beta 0.0.7709.39241, it no longer works:

sctt_beta

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!) :)

Migrate to CsWin32

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)

Improve stability

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

When closing the SCT box, my Documents folder is displayed

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.

Memory leak

SCTT's memory usage keeps increasing very slowly, but GC doesn't clean some things.

Improve collection-based UI

Currently most SCTT components compare UI against data, this is possible to improve, I'd suggest this:

  1. probably make event/interface/class for item changes
  2. for static updates/fetches/pulls, you compare those two collections and call events accordingly

I imagine sharing one base class/interface for either event-based updates or pulling.

Examples of old code

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 */

Not enough space between Start button and first Taskbar button

Windows 10 Pro 2004 x64 / SCT 1.2.2.0 / SCTT 0.0.7712.2869

Using Custom button:
XP Classic (Bigger) (SCTT)

The leftmost taskbar button is too close to the start button:
space

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:
space2

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:
ClassicShell

And here is Windows XP:
XP

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.

SCT crashes on startup with file not being found

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)

Left / right clicking volume / hardware / network tray icons does not work

Right or left clicking any of the built in Windows system tray icons for Volume, Safely Remove Hardware, and Networking returns this error:

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

SCTT closes on its own approximately every 24 hours

Versions:

sctt

dotnet

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:

exclusions

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?

UWP apps have no app icon

When opening any UWP app a button shows up on the taskbar, but it doesn't have the associated app icon.

  • Check if the app is a UWP app before adding the button
  • Find out which UWP app it is
  • Locate the app icon and add it

Improve XP visual style rendering

  • Support for transparent bitmaps (default XP VS seems to work fine but other bitmaps seem to have issues)
    • Add start button icon bitmaps.

Missing tooltips

  • System tray icons
  • Start button
  • Quick launch items
  • Program buttons

Taskbar Does Not Work At All

  1. Open SCT from the file you downloaded
  2. "Install" (auto-launch)
  3. Open SCT from your Start Menu.
  4. Click File -> Options (or press Alt+F and then O)
  5. Select SCT Taskbar (alpha) in Taskbar Type (This is still incorrectly branded as SCT Taskbar is in beta not alpha anymore)
  6. It'll ask you if you want to install SCT Taskbar, press Yes
  7. Click OK
  8. Press Enable

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.

https://i.imgur.com/GVZV6Qg.png

Current nightly does nothing

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?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.