ProgIDTool – display, copy, delete, export, rename, duplicate and register File Type ProgID’s

Since I have released SetUserFTA, many users struggled to find the correct ProgID to associate with an extension or a protocol. Windows offers ftype.exe, which lists all the filetypes available under HKEY_LOCAL_MACHINE – but this does not include the filetypes from HKEY_CURRENT_USER.

But HKEY_CURRENT_USER has precedence over HKEY_LOCAL_MACHINE and therefore a utility that can list all the USER filetypes would be very helpful, right? SetUserFTA can list all associated filetypes, but not the ones that are generally available.

ProgIDTool had exactly this goal initially, but then during the development, I had some additional ideas and now it contains following features:

  1. Searches for file types and their associated command line in either HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER.
  2. Register: Registers a new ProgID with a specified executable path and arguments.
  3. Copy: Copies a ProgID from HKLM to HKCU or vice versa.
  4. Delete: Deletes a specified ProgID from either HKLM or HKCU.
  5. Rename: Renames a ProgID in HKLM or HKCU.
  6. Duplicate: Creates a copy of an existing ProgID in HKLM or HKCU.
  7. Export: Exports a specified ProgID and its subkeys to a .reg file.

The search function compares the ProgID and Path of the filetype and displays all matching results. This is very handy, because Windows can have a LOT of filetypes in the registry.

In the following example you can see the difference compared to ftype.exe:

ftype.exe cannot find the ProgID that I have registered in my current users registry, but ProgIDTool can.

For filetypes available in HKEY_LOCAL_MACHINE the results will be the same:

If you want to list ALL available filetypes from the HKCU key, you can use “ProgIDTool % HKCU
(Note: Using * does not work because cmd.exe interprets it as a wildcard instead of passing it to the utility.)

Here is the full command list:

Search

<search-term> [HKLM|HKCU]

Example:
ProgIDTool <search-term>
ProgIDTool <search-term> HKCU
ProgIDTool % HKCU

Description: Searches for file types and their associated commands containing the specified search term. You can filter the results by supplying HKLM or HKCU. If you supply % as a search term, all results will be shown.

Delete

delete [HKLM|HKCU] <progid>

Example:
ProgIDTool delete HKCU MyProgID

Description: Deletes the specified ProgID from either HKLM or HKCU. When deleting from HKLM, administrative privileges are required.

Copy

copy [HKLM|HKCU] <progid> [-force]

Example:
ProgIdTool copy HKCU MyProgID

Description: Copies the specified ProgID from HKCU to HKLM or vice versa. When copying to HKLM, administrative privileges are required. overwriting existing entries requires “-force”.

Export

export [HKLM|HKCU] <progid>

Example:
ProgIDTool export HKLM MyProgID

Description: Exports the specified ProgID and its subkeys from either HKLM or HKCU to a .reg file in the same directory of ProgIDTool.exe.

Rename

rename [HKLM|HKCU] <progid> <newprogid>

Example:
ProgIDTool rename HKLM MSEdgeHTM MSEdgeHTM2

Description: Allows renaming a ProgID in the Windows Registry, requiring the root key (HKLM or HKCU), the source ProgID, and the destination ProgID. The source ProgID will not exist anymore after using this command. If the destination key already exists, it can be overwritten by supplying -force.

Duplicate

duplicate [HKLM|HKCU] <progid> <newprogid>

Example:
ProgIDTool duplicate HKLM MSEdgeHTM MSEdgeHTM2

Description: Allows duplicating a ProgID in the Windows Registry, requiring the root key (HKLM or HKCU), the source ProgID, and the destination ProgID. The source ProgID will remain and the destination contain the same content. If the destination key already exists, it can be overwritten by supplying -force.

Register

register [HKLM|HKCU] <progid> <path> [-force]

Example:
ProgIDTool register HKCU MyProgID C:\Path\To\Executable.exe

Description: Registers a new ProgID with the specified executable path. you can add arguments to the path by including the full command line in quotes. if the ProgID already exists, it can be overwritten by adding “-force”. if the path requires additional quotes, you can escape them with “\” for example:

input: “\”C:\Program Files (x86)\Internet Explorer\iexplore.exe\” \”%1\””
result: “C:\Program Files (x86)\Internet Explorer\iexplore.exe” “%1”

And thats It! Hope the utility is helpful! Works best with SetUserFTA of course. You can download it here:


SHA256: ProgIDTool.zip:29c971e3d0f864da63854bd2d163bbecdc18ede43fc23cc4c802b6ad0f4ca19f

If you have ideas or issues, you can send me a feature suggestion or a bug report.

Version History:
10.06.2024 – Version 1.0: Initial Version
29.07.2024 – Version 1.1: Adds rename and duplicate option

Donations can be made over https://paypal.me/kolbicz or https://revolut.me/kolbicz or https://wise.com/pay/me/christophk263. THANKS!

Be the first to comment

Leave a Reply