Small. Useful. Reliable.
Windows utilities developed by
Debasis Bhattacharjee since 2004.
Lightweight Windows tools for system information, diagnostics, monitoring and productivity.
🪟
WinLister
Freeware Category: Other Utilities Version 1.0.0 Windows 10 / 11 x64
⬇ Download WinLister
Version 1.0.0 · ~185 KB · Portable, no installation required
WinLister main window
WinLister’s main window.

Overview

WinLister enumerates every visible top-level window on your desktop and shows what Windows itself actually knows about each one — its window class name, its numeric handle, and the thread ID of the process that owns it — independent of whatever text happens to be sitting in that window's title bar. This is a foundational diagnostic view for anyone working with UI automation, window-management scripting, or simply trying to understand why a particular window is behaving unusually, because a window's class name and handle are the stable, reliable identifiers Windows itself uses internally, while a title bar's text can be blank, generic, or actively misleading.

Key Features

  • Lists every visible top-level window currently on the desktop
  • Shows each window's title, class name, handle value and owning thread ID together
  • Refreshes on demand with a single button, capturing the current window state
  • Reveals windows with generic or duplicate titles as distinct entries via their unique handles
  • Purely a diagnostic viewer — cannot close, move or otherwise manipulate any listed window

Why You Might Need This Tool

UI automation developers and script writers constantly need to identify a target window reliably before they can send it a message, resize it, or bring it to the foreground — and a window's class name is almost always the correct, stable identifier to key off, since two different windows can easily share an identical or blank title. WinLister gives you that class name at a glance without needing a separate spy-tool installation. It is equally useful when troubleshooting a misbehaving application — confirming a hidden or off-screen window genuinely exists (and what its handle is) is often the first step before deciding how to bring it back into view.

How It Works

The tool calls the Windows EnumWindows API, which invokes a callback once for every top-level window currently known to the system. For each window the callback receives, it checks visibility with IsWindowVisible, then retrieves the window's title text with GetWindowText, its class name with GetClassName, and its owning thread ID (and, through the same call, its owning process ID) with GetWindowThreadProcessId. Only windows that pass the visibility check and have non-empty title text are added to the results list, filtering out the large number of invisible utility and helper windows every running application typically creates in the background.

How to Use It

Launch the tool and click Refresh to capture the current window list — do this again at any point to see an updated snapshot after opening, closing, or interacting with other windows, since the list reflects a single point-in-time scan rather than updating live.

System Requirements & Notes

Runs on 64-bit Windows 10 and Windows 11 with no administrator rights required — enumerating visible windows and reading their basic properties is a standard-user operation. It cannot see windows owned by processes running at a higher integrity level than the tool itself, which is a normal Windows security boundary.

Frequently Asked Questions

Can I use this tool to close or minimize a listed window?
No — WinLister is read-only by design. For closing a stubborn window, see Unlocker or Always On Top for related but distinct window-management actions.

Why do I see windows I don't recognize by title?
Many applications create small utility windows with generic or blank titles for internal purposes — the class name column is usually the more reliable way to identify what an unfamiliar entry actually is.

Related Utilities