utility that can hide a taskbar button, but leave the window as-is?


Recommended Posts

I run a to-do list app all the time, just leave it open in the background. Is there any way to hide the button in the taskbar, but leave the program's window open?

I've found a couple freebie utilities that can move the button to the tray, but they also minimize the window.

Anyone know of such a thing?

A taskbar button is directly linked to the window. The window needs to specify the property not to have a taskbar button to hide it, and I don't believe the WinAPI has a function to force this or do it for a window not owned by your thread.

A taskbar button is directly linked to the window. The window needs to specify the property not to have a taskbar button to hide it, and I don't believe the WinAPI has a function to force this or do it for a window not owned by your thread.

Thanks.

This code might be of some help. What it does is sets the window style of a given application to a tool window instead of an app window. The point of this is that windows with the param "WS_EX_TOOLWINDOW" are made to be hidden from the task bar. The problem is that this code doesn't work unless you can execute it on form activation (or initialization of the target window).

I'm not sure if there is another way to hide it or if you'd have to somehow inject/subclass the processes initialization process.

Winapi functions and defined constants for C#:

 [DllImport("user32.dll")]
		static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);

 [DllImport("user32.dll")]
		private static extern int GetWindowLong(IntPtr hWnd, int nIndex);

		private const int GWL_EXSTYLE = (-20);
		private const int WS_EX_TOOLWINDOW = 0x80;
		private const int WS_EX_APPWINDOW = 0x40000;

Function to detect process and set information:

 Process[] processes = Process.GetProcessesByName("yourProcessHere");

			foreach (Process p in processes)
			{

				IntPtr pWindow = p.MainWindowHandle;

				SetWindowLong(pWindow, GWL_EXSTYLE, (GetWindowLong(pWindow,
GWL_EXSTYLE) | WS_EX_TOOLWINDOW) & ~WS_EX_APPWINDOW);

			}

I'll see if I can dig anything else up.

Edit: According to this (http://vcfaq.mvps.org/mfc/4.htm) it may be possible to hide the button from the taskbar by the following:

The best method is to make the application's top level window have a parent window that is invisible.

So it may be possible with some code to create a parent window for that app that is invisible. I've never done that before so I'd have to look into it.

Edit #2: Tested it out and I was able to create a MDI form in C# and use the following API:

		[DllImport("user32.dll")]
		private static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);

I was able to set the parent window for notepad to the app I made and effectively remove the button from the task bar. There is another problem though -- I can't figure out how to make the parent window invisible/transparent without making the child window(s) invisible as well. If either problem could be solved then it'd be fairly easy to make an app for you that would do as you want.

Edited by dlegend

an out of the box solution would be to find and use a widget that's a to do list. cause widgets don't spear in your task bar and as long as you have only a few of them they won't take up that much ram. if you have vista it's already there of course and i am sure you can google it to find an easy solution for xp.

I just came up with a neat programming solution (in C#) to address this problem. It utilizes both methods I mentioned above and works flawlessly (with the exception of a quick flicker of the window). To do this you'll first need to create a MDI form and then use the following:

Namespaces

using System.Runtime.InteropServices;
using System.Diagnostics;

DLL Function Imports

		[DllImport("user32.dll")]
		static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);

		[DllImport("user32.dll")]
		private static extern int GetWindowLong(IntPtr hWnd, int nIndex);

		[DllImport("user32.dll")]
		private static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);

Constants

		private const int GWL_EXSTYLE = (-20);
		private const int WS_EX_TOOLWINDOW = 0x80;
		private const int WS_EX_APPWINDOW = 0x40000;

Main Function

Process[] processes = Process.GetProcessesByName("processNameHere");

			foreach (Process p in processes)
			{
				IntPtr pWindow = p.MainWindowHandle; 

				int iWindowStyle = GetWindowLong(pWindow, GWL_EXSTYLE); 

				SetParent(pWindow, this.Handle);
				SetWindowLong(pWindow, GWL_EXSTYLE, (iWindowStyle | WS_EX_TOOLWINDOW) & ~WS_EX_APPWINDOW);
				SetParent(pWindow, (IntPtr)0);
				SetWindowLong(pWindow, GWL_EXSTYLE, iWindowStyle);
			}

What the main function does is find the process's main window, gets the extended window style, makes the window a child of our app, sets the extended window style to become a tool window, sets child windows parent back to the desktop, and reapplies its original extended window style back.

As described earlier, just setting the extended window style itself wasn't enough -- it was only able to work correctly upon initialization of the window. By creating a parent window and setting the extended window style and by then setting the parent window back to the desktop, it updates the extended window style without having to be done through form/window initialization.

Now if you could link me to the to-do list app your having problems with, I can probably customize the code to work specifically for it.

an out of the box solution would be to find and use a widget that's a to do list. cause widgets don't spear in your task bar and as long as you have only a few of them they won't take up that much ram. if you have vista it's already there of course and i am sure you can google it to find an easy solution for xp.

Yes the app I've used in the past is called Post It Digital Notes, and by design it doesn't create a taskbar button. But it's very limited connectivity wise and that's why I started using this new one.

I just came up with a neat programming solution (in C#) to address this problem. It utilizes both methods I mentioned above and works flawlessly (with the exception of a quick flicker of the window). To do this you'll first need to create a MDI form and then use the following:

Namespaces

using System.Runtime.InteropServices;
using System.Diagnostics;

DLL Function Imports

		[DllImport("user32.dll")]
		static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);

		[DllImport("user32.dll")]
		private static extern int GetWindowLong(IntPtr hWnd, int nIndex);

		[DllImport("user32.dll")]
		private static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);

Constants

		private const int GWL_EXSTYLE = (-20);
		private const int WS_EX_TOOLWINDOW = 0x80;
		private const int WS_EX_APPWINDOW = 0x40000;

Main Function

Process[] processes = Process.GetProcessesByName("processNameHere");

			foreach (Process p in processes)
			{
				IntPtr pWindow = p.MainWindowHandle; 

				int iWindowStyle = GetWindowLong(pWindow, GWL_EXSTYLE); 

				SetParent(pWindow, this.Handle);
				SetWindowLong(pWindow, GWL_EXSTYLE, (iWindowStyle | WS_EX_TOOLWINDOW) & ~WS_EX_APPWINDOW);
				SetParent(pWindow, (IntPtr)0);
				SetWindowLong(pWindow, GWL_EXSTYLE, iWindowStyle);
			}

What the main function does is find the process's main window, gets the extended window style, makes the window a child of our app, sets the extended window style to become a tool window, sets child windows parent back to the desktop, and reapplies its original extended window style back.

As described earlier, just setting the extended window style itself wasn't enough -- it was only able to work correctly upon initialization of the window. By creating a parent window and setting the extended window style and by then setting the parent window back to the desktop, it updates the extended window style without having to be done through form/window initialization.

Now if you could link me to the to-do list app your having problems with, I can probably customize the code to work specifically for it.

The application is called Evernote, the free version (www.evernote.com). I really don't want to put you out in custom-creating this, though I'd certainly be grateful if you do--there's no way I can make an "MDI form" and make use of the code you've provided.

Have you tried Tray It? Install and run Tray It, then right click the app and select "Place in system tray", then double click it/right click and select Edit Profile. In the Tray It Minimizing Option dialog, go to More tab, Hide application from the taskbar all the time, only keep tray icon. Then use Windows's built in notification area settings to hide the tray icon.

Have you tried Tray It? Install and run Tray It, then right click the app and select "Place in system tray", then double click it/right click and select Edit Profile. In the Tray It Minimizing Option dialog, go to More tab, Hide application from the taskbar all the time, only keep tray icon. Then use Windows's built in notification area settings to hide the tray icon.

That is exactly what I'd been looking for. Tested it and it works great. Thanks much!

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Internet Download Manager (IDM) 6.43 Build 1 by Razvan Serea Internet Download Manager (IDM) is a tool to increase download speeds by up to 8 times due to its smart dynamic file segmentation technology. Unlike other download managers and accelerators, Internet Download Manager segments downloaded files dynamically during download process, and it reuses available connections without additional connect and login stages to achieve the best possible acceleration performance. Comprehensive error recovery and resume capability will restart broken or interrupted downloads due to lost connections, network problems, computer shutdowns, or unexpected power outages. All popular browsers are supported IDM integrates seamlessly into Google Chrome, FireFox, Microsoft Edge, Opera, Safari, Internet Explorer, Maxthon and all other popular browsers to automatically handle your downloads. You can also drag and drop files, or use Internet Download Manager from command line. The program supports proxy servers, ftp and http protocols, firewalls, redirects, cookies, authorization, MP3 audio and video content processing. IDM includes web site spider and grabber IDM downloads all required files that are specified with filters from web sites, for example all pictures from a web site, or subsets of web sites, or complete web sites for offline browsing. It's possible to schedule multiple grabber projects to run them once at a specified time, stop them at a specified time, or run periodically to synchronize changes. Easy downloading with one click When you click on a download link in a browser, IDM will take over the download and accelerate it. You don't need to do anything special, just browse the Internet as you usually do. IDM will catch your downloads and accelerate them. IDM supports HTTP, FTP, HTTPS and MMS protocols. Changes in Internet Download Manager 6.43 Build 1: Added the ability to download MP4 files from web sites where previously only TS videos were available. IDM displays both TS and MP4 file formats in its video download button. If you only need MP4 files, disable TS in IDM Options -> General tab -> Customize IDM Download panels in browsers -> Edit button. Remove TS extension on "Customize IDM Download panel in browsres" dialog Fixed video downloading problems on several popular web sites Fixed bugs Download: Internet Download Manager 6.43 Build 1 | 11.9 MB (Shareware) Links: Internet Download Manager Website | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • This is of course "clickbait" WTF? It is literally your example but tech based. A "clickbait" title is a sensationalized headline designed to manipulate readers into clicking a link using things like "fear" rather than delivering objective facts. A "clickbait" headline also usually provides little value compared to the hype generated. How does this headline not qualify? It's a generic often reused headline that is overly sensationalized. Oh no! "millions" can't use this app anymore. It has no basic facts like what f*cking app. You read the article and it's the Samsung VPN which no one cares about and there is a million free VPNs. How are you defending this ######? Headlines like this (and among other things) make me read Neowin much less than I used to in the past. It's trash...
    • UniGetUI 2026.2.1 by Razvan Serea UniGetUI is an application whose main goal is to create an intuitive GUI for the most common CLI package managers for Windows 10 and Windows 11, such as Winget, Scoop and Chocolatey. With UniGetUI, you'll be able to download, install, update and uninstall any software that's published on the supported package managers — and so much more. UniGetUI features Install, update and remove software from your system easily at one click: UniGetUI combines the packages from the most used package managers for windows: WinGet, Chocolatey, Scoop, Pip, Npm and .NET Tool. Discover new packages and filter them to easily find the package you want. View detailed metadata about any package before installing it. Get the direct download URL or the name of the publisher, as well as the size of the download. Easily bulk-install, update or uninstall multiple packages at once selecting multiple packages before performing an operation Automatically update packages, or be notified when updates become available. Skip versions or completely ignore updates in a per-package basis. Manage your available updates at the touch of a button from the Widgets pane or from Dev Home pane with UniGetUI Widgets. The system tray icon will also show the available updates and installed package, to efficiently update a program or remove a package from your system. Easily customize how and where packages are installed. Select different installation options and switches for each package. Install an older version or force to install a 32bit architecture. [But don't worry, those options will be saved for future updates for this package] Share packages with your friends to show them off that program you found. Here is an example: Hey @friend, Check out this program! Export custom lists of packages to then import them to another machine and install those packages with previously-specified, custom installation parameters. Setting up machines or configuring a specific software setup has never been easier. Backup your packages to a local file to easily recover your setup in a matter of seconds when migrating to a new machine Devolutions UniGetUI 2026.2.1 changelog: This release brings several quality-of-life improvements, new troubleshooting features, privacy enhancements, and a collection of fixes and stability improvements across UniGetUI. New Features Added an operation counter to provide better visibility into ongoing package operations. Added a setting to automatically redact usernames from exported logs, making it easier to share diagnostic information while protecting personal data. UniGetUI now opens the release notes page after updating by default, helping users discover new features, improvements, and fixes. This behavior can be disabled from Settings. Expanded diagnostics and troubleshooting capabilities to simplify issue reporting and support. Improvements Improved update reliability and handling of update-related edge cases. Enhanced installer behavior when updating running UniGetUI instances. Improved package manager integrations and package metadata processing. Refined various user interface elements for a more consistent experience. Updated package screenshots, icons, and bundled resources. Improved logging and error reporting throughout the application. Bug Fixes Fixed multiple issues affecting application updates and self-update workflows. Resolved several package installation and upgrade edge cases. Fixed UI inconsistencies and unexpected behaviors across different pages. Improved handling of package manager responses and failure scenarios. Addressed issues affecting package discovery and metadata retrieval. Fixed a number of stability issues reported by the community. Performance & Stability Improved overall application stability during package operations. Reduced the likelihood of update interruptions and inconsistent update states. Various reliability and performance optimizations across the codebase. Download: UniGetUI 64-bit | Portable | ~200.0 MB (Open Source) Download: UniGetUI ARM64 | Portable Links: UniGetUI Home Page | GitHub | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • PDF4QT 1.6.0.0 by Razvan Serea PDF4QT is a free and open-source application created to provide a complete solution for working with PDF documents in a simple, flexible, and effective way. It offers all the essential tools you need to handle your files: you can view PDFs with smooth navigation, edit content, annotate pages, and highlight key sections for better collaboration. It also allows you to compare two versions of a document, making it easy to spot changes. Built-in security features give you control over protecting sensitive information and managing access. Applications PDF4QT Viewer Profi: Advanced PDF browsing with encryption, digital signature verification, annotation editing, regex text search, page-to-image conversion, and plugin support. PDF4QT Viewer Lite: Lightweight viewer with essential, user-friendly PDF viewing functions. PDF4QT DocPage Organizer: Merge, split, move, clone, or add pages easily with an intuitive interface. PDF4QT DocDiff: Compare two PDFs, highlight differences page-to-page, and export results to XML. Key Features Multithreading Support for faster PDF processing Hardware Accelerated Rendering for smooth, high-quality display Encryption to secure documents Color Management to preserve accurate color profiles Optional Content Handling to control visibility of content Text Layout Analysis for better text extraction and editing Signature Validation for verifying digital signatures Annotations and Form Filling for interactivity Text-to-Speech Conversion to listen to PDFs Advanced Annotation Tools (images, text, etc.) File Attachments Management to view and save attachments Optimization to reduce file size without losing quality Command Line Tool for automation Audio Book Conversion from PDFs Internal Structure Inspector to explore PDF structure Compare Documents to detect differences Redaction to remove sensitive information Document Signing for digital authentication PDF4QT 1.6.0.0 release notes: PDF4QT 1.6.0.0 brings a major image compression and optimization update, especially for PageMaster and assembled output documents. Image compression is now integrated into the assembly/export workflow, backed by new optimizer infrastructure, UI controls, feedback fixes, and tests. This should make PageMaster much more useful for producing smaller output PDFs directly from assembled or reorganized documents. The release also contains a large PageMaster refresh with improved drag and drop, recent files, crop pages, save/restore functionality, rotation and size indicators, a reworked icon set, and faster output preview rendering. Viewer and Editor workflows were improved with wildcard Advanced Find, Enter-to-search behavior, better outline keyboard selection, startup settings, fullscreen support, side-to-side scrolling, smoother scrolling, text selection, snapping, and expanded annotation controls. Compatibility and platform behavior were improved as well, including fixes for embedded files, fonts, checkboxes, invisible text, menu colors, highlights, XMP metadata, Windows color management, AppImage packaging, MSIX generation, installer behavior, translations, and newer compiler/Qt warnings. The commit history also includes a new scan-and-edit plugin foundation and color management performance work. Changelog: Highlights Image compression for PageMaster / DocPage Organizer and assembled output documents (#92) Major PageMaster UX refresh, including drag and drop, recent files, crop pages, save/restore, icons, and output preview performance (#383, #18) Improved image optimization feedback, including final resolution and DPI updates (#384) Better Viewer and Editor navigation: fullscreen, side-to-side scrolling, smoother scrolling, text selection, snapping, and outline keyboard selection (#242, #368, #136, #321, #250, #373) Advanced Find wildcard mode and Enter-to-search behavior (#379, #378) PDF compatibility fixes for embedded files, fonts, checkboxes, invisible text, form content suppression, and Windows color management (#225, #356, #256, #230, #326, #224, #385, #388) Startup settings, custom settings directory support, Linux double-click viewer separation, and packaging/build fixes (#382, #380, #381) Scan-and-edit plugin foundation and broader translation updates from the 1.6.0.0 development cycle Resolved Issues Issue #389: Adding hyperlink to internal object in PDF Issue #388: Update Windows color management system Issue #385: PDFTextLayoutGenerator::isContentKindSuppressed(ContentKind kind) is missing ContentKind::Form Issue #384: In the "Optimize Images" dialog, the info on the final image resolution and final DPI does not update Issue #383: UX improvements for PDF4QT PageMaster tool (v1.5.3.1) (ex. DocPage Organizer) Issue #382: Startup Settings Issue #381: Separated apps for double-click viewer in Linux Issue #380: Ability to run app with custom settings directory - executable parameter with path Issue #379: Advanced Find - Wildcard Mode Issue #378: Advanced Find - Should start searching if Enter key is pressed Issue #376: Deleting a note jumps to Outline Issue #375: Not enough maximum compiled page cache Issue #373: Ctrl/Shift keyboard selection for Outline Issue #372: Option to not color images Issue #370: Extracting pages within a range Issue #369: Keeping redact box on Issue #368: Side-to-side scrolling Issue #357: Bulk delete/add/edit of page labels Issue #356: Compatibility issues - font problems Issue #354: Color blend mode for highlights Issue #352: Icon size of the sidebar Issue #349: Add inherit zoom to bookmark zoom options Issue #338: Editor toolbox higher than editor window Issue #334: Impossible to set French language Issue #326: Checkboxes don't render in PDF4QT Issue #324: Menu text not rendered with correct color Issue #321: Select text in Viewer Issue #291: Support for editing XMP metadata or exporting to PDF/UA format Issue #282: Editor outline view: always zooms to around 50% Issue #256: PDF4QT cannot show some specific fonts correctly Issue #253: Undo/redo doesn't work in "edit page content" mode Issue #250: Snapping Issue #242: Full screen Issue #234: Setting font, font size and area of text annotations Issue #230: Garbled characters when opening PDF files with PDF4QT Issue #225: PDF4QT cannot open PDF files with embedded files Issue #224: Option to remove invisible text Issue #194: Change page size Issue #160: Color | Custom (green/black) does not work Issue #136: Smooth scrolling of document with mouse middle wheel - flywheel Issue #92: Add image compression to PDF DocPage Organizer Issue #18: Performance optimization - OutputPreview Renderer Download: PDF4QT 1.6.0.0 | Portable | ~30.0 MB (Open Source) Download: PDF4QT MSIX | 29.4 MB Links: PDF4QT Home Page | PDF4QT @GitHub | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
  • Recent Achievements

    • Veteran
      branfont went up a rank
      Veteran
    • Reacting Well
      Almohandis earned a badge
      Reacting Well
    • First Post
      Cosminus earned a badge
      First Post
    • One Year In
      ThatGuyOnline earned a badge
      One Year In
    • Week One Done
      Jeroen Wilms earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      472
    2. 2
      +Edouard
      181
    3. 3
      PsYcHoKiLLa
      120
    4. 4
      Steven P.
      85
    5. 5
      neufuse
      73
  • Tell a friend

    Love Neowin? Tell a friend!