February 23rd, 2021

Why does Task Manager tell me that I have a Startup program named Program?

If you go to Task Manager’s Startup tab, it lists the programs that are registered in the Startup group or the Run key to run automatically when you sign in. But you might see an entry called simply Program, with a blank icon and no publisher. What is this thing?

This thing is a program that registered itself incorrectly.

Command lines consist of a program name, a space, and the program arguments. If the program name contains spaces, then it needs to be enclosed in quotation marks. Otherwise, the first space is considered to be the end of the program name. What you’re seeing is a program that resides somewhere in the C:\Program Files or C:\Program Files (x86) directory, but they forgot to quote their program name. As a result, the space after Program is considered to be the end of the program name, which is why it shows up as just Program in Task Manager.

The program does manage to run because the CreateProcess function does autocorrection, but Task Manager doesn’t do the same autocorrection, so it thinks that the Startup program is C:\Program.exe.

Author

Raymond has been involved in the evolution of Windows for more than 30 years. In 2003, he began a Web site known as The Old New Thing which has grown in popularity far beyond his wildest imagination, a development which still gives him the heebie-jeebies. The Web site spawned a book, coincidentally also titled The Old New Thing (Addison Wesley 2007). He occasionally appears on the Windows Dev Docs Twitter account to tell stories which convey no useful information.

16 comments

Discussion is closed. Login to edit/delete existing comments.

  • Rutger Ellen

    Fun to lookback into 2005 on the subject of createprocess and see where we now are with electric cars 🙂

    • Alex Cohn

      Such a pity the old comments are gone. There were real masterpieces there.

  • M. W.

    Backwards-compatibility is a blessing and a curse. Obviously, staring over from scratch isn't feasible for many reasons, but at the same time, it means working within the limits of ancient design. 😕 Filename handling is probably the biggest backwards-comparability bugaboo in Windows. I really hate that we can't use question-marks in filenames. 🤦

    I wish that either someone with a time-machine could go back and make them use a different character for that wildcard or at...

    Read more
    • Stephan Leclercq

      This is because the OS does not make a distinction between a name that is useful for the computer and a name that is useful for the user. The name shown to the user should have no limitations at all, it could even contain a colon, a CR/FL if this is useful for the user, while the name used by the computer should be useable on command-line terminals that simply concatenate strings to make...

      Read more
      • Dark Daskin

        Actually each file already has such constrained name since the first version of Windows, it's called 8.3/short name (unless the user has disabled 8.3 name creation for the volume or globally). You can use "dir /x" command to list them and use them anywhere in place of normal file name. Sometimes I had to resort to short names either due to incorrect space character handling or MAX_PATH limitation of certain programs. Although few programs might...

        Read more
      • Henke37

        Why even have file names? Just give each file a guid and a display title!

    • Gunnar Dalsnes

      This is an artificial limitation in win32 (to allow lazy programming). NTFS support ? in filenames. These artificial limitation could be removed but could possibly confuse some programs, but it would be totally worth it. In Linux, all but / and \ is allowed and I think same apply to NTFS.

  • cheong00

    Given the amount of memory we generally have now, would Microsoft consider placing the full path of the executable it runs somewhere in the process's metadata so the task manager can reference correctly?

    Other kind of nice-to-have is "the list of process ids" of "chain of parent process". It would be helpful to "kill child process tree" on the case where some process in the middle of the tree had already terminated. And it may make...

    Read more
    • Henke37

      The data is there. Just query for all the modules in the process. You can then decide which of them is the “main” one for the program. It’s probably one of the ones whose name ends with .exe. Except with rundll32.exe. or regsrv. or explorer.exe, except when it is.

    • Antonio Rodríguez

      The items in the Startup tab aren't processes. They are just a collection of entries in different parts of the system (the registry, the start menu, perhaps the group policy) where programs can hook to be launched at startup. But that does not warrant they are running at the time you open the Task Manager. For example, an update agent or a backup tool can run at session start, and terminate when it's done. Furthermore,...

      Read more
      • cheong00

        Oh. Since I see the "Open File Location" context menu item is only enabled when that startup item is enabled, I thought the ability to retrieve path for binary is related to "the item is enabled" and run before.

        And when I was talking about the parents list, I'm not only talking about the parent process, but the" parent of parent and so on" down to maybe the shell or event winlogin.exe, so if any of...

        Read more
      • SpecLad

        You can see the command line in Task Manager as well; you just need to add it as a column.

  • MgSam

    Looks like someone needs to file a bug report with Dave Plummer. 🙂

    You should do a collaboration with him sometime and appear on his channel.

    • Jan RingoÅ¡

      Try filing a report in Feedback Hub …se how well that goes.

    • skSdnW

      Dave left in 2003, the Startup tab was added in the Windows 8 UI rewrite.