I have 5 different C# application running at the same time on my PC. They take a lot of space at my taskbar. How can I code them to be grouped together at the taskbar (using windows 10).
Asked
Active
Viewed 2,829 times
7
-
Why are you asking this in SO instead of superuser? This isn't a programming question. – Panagiotis Kanavos Jan 20 '16 at 13:21
-
1its obvious that you didn't read the whole question text... – Engür Canfes Jan 20 '16 at 13:32
-
I did. This is done by the OS, it's not an application or window style. It's controlled by the "Taskbar Buttons" behaviour in Taskbar properties. Even if you pick "Always Combine", only instances of the same application appear with a tiled effect. It would be a different thing if you asked eg about Jumplists – Panagiotis Kanavos Jan 20 '16 at 13:44
2 Answers
11
You need to pinvoke SetCurrentProcessExplicitAppUserModelID()
supplying the same AppID for all the applications that you want to share a taskbar button. The OS will then treat your 5 applications as if they were the same application.
Make sure to call SetCurrentProcessExplicitAppUserModelID() before any of your application's UI is displayed.
[DllImport("shell32.dll", SetLastError=true)]
static extern void SetCurrentProcessExplicitAppUserModelID(
[MarshalAs( UnmanagedType.LPWStr )] string AppID );
private static string AppID = "some guid"; // use the same ID in all 5 apps
...
SetCurrentProcessExplicitAppUserModelID(AppID);
2
I haven't experimented with this, but you might want to look at the TaskbarItemInfo Class. I think the property ThumbButtonInfos may be the key.
Oh, I also just found this on stack over flow: control windows 7 taskbar grouping for my application
Hope this helps.