Jump to content

How to register PaintDotNet.ShellExtension.x64.dll manually?


Go to solution Solved by Rick Brewster,

Recommended Posts

17 hours ago, Disk4mat said:

Im figuring there is some reason for not installing the app. Did you open the command prompt as an admin?

 
Yes, from Windows Key + R -> cmd.exe -> Ctrl + Shift + Enter -> UAC Prompt:

Spoiler
Microsoft Windows [Version 10.0.19044.2965]
(c) Microsoft Corporation. All rights reserved.

C:\Windows\system32>cd C:\Users\xjonx\AppData\Roaming\paint.net

C:\Users\xjonx\AppData\Roaming\paint.net>regsvr32 PaintDotNet.ShellExtension.x64.dll

C:\Users\xjonx\AppData\Roaming\paint.net>


I get:

Spoiler
---------------------------
RegSvr32
---------------------------
The module "PaintDotNet.ShellExtension.x64.dll" was loaded but the entry-point DllRegisterServer was not found.

Make sure that "PaintDotNet.ShellExtension.x64.dll" is a valid DLL or OCX file and then try again.
---------------------------
OK   
---------------------------


And from Start -> Visual Studio 2022 -> Developer Command Prompt for VS 2022 -> Right Click -> More -> Run as administrator -> UAC Prompt:

Spoiler
**********************************************************************
** Visual Studio 2022 Developer Command Prompt v17.6.2
** Copyright (c) 2022 Microsoft Corporation
**********************************************************************

C:\Windows\System32>cd C:\Users\xjonx\AppData\Roaming\paint.net

C:\Users\xjonx\AppData\Roaming\paint.net>regasm PaintDotNet.ShellExtension.x64.dll
Microsoft .NET Framework Assembly Registration Utility version 4.8.9037.0
for Microsoft .NET Framework version 4.8.9037.0
Copyright (C) Microsoft Corporation.  All rights reserved.

RegAsm : error RA0000 : Failed to load 'C:\Users\xjonx\AppData\Roaming\paint.net\PaintDotNet.ShellExtension.x64.dll' because it is not a valid .NET assembly

C:\Users\xjonx\AppData\Roaming\paint.net>


And yes, I do have paint.net installed portably so I can move it to a new computer (copying over %APPDATA%) without having to reinstall it (makes setting up a new PC easier).

Edited by xchellx
Link to comment
Share on other sites

18 hours ago, Disk4mat said:

Im figuring there is some reason for not installing the app. Did you open the command prompt as an admin?

 

This is for registering the thumbnail handler for a portable copy of the app

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Link to comment
Share on other sites

When you install the app with the regular installer EXE, it will create a log file called C:\Windows\SystemTemp\pdnSetupActionsInstall.log. This contains, among other things, all of the registry entries it creates (or deletes, if updating or uninstalling).

 

Start with the line containing the text RegistryHandler::Register and you'll see what registry entries are created, and how it is associated with each file extension. You won't need all of them but it should be reasonably obvious.

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Link to comment
Share on other sites

21 minutes ago, Rick Brewster said:

When you install the app with the regular installer EXE, it will create a log file called C:\Windows\SystemTemp\pdnSetupActionsInstall.log. This contains, among other things, all of the registry entries it creates (or deletes, if updating or uninstalling).

 

Start with the line containing the text RegistryHandler::Register and you'll see what registry entries are created, and how it is associated with each file extension. You won't need all of them but it should be reasonably obvious.

Is there any way I can "dry run" the installer to figure this out? I do not want to modify my current environment just to figure this out. Or can you list the specific entries it modifies?

Link to comment
Share on other sites

  • Solution

No, there's no "dry run".

 

Here's what it produces on my system though. Not all of it is needed for the thumbnail handler, such as the entries for the "protocol"  and RegisteredCapabilities. None of it would be harmful, however. All strings are surrounded in double-quotes, so if you see a string with double-double quotes like ""this"" that just means that the string added to the registry is actually "this". There's no other escaping or formatting for the strings beyond that.

 

6/5/2023 7:52:45 AM - RegistryHandler::Register
6/5/2023 7:52:45 AM - SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0)
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\paint.net.1\(Default) = "paint.net Image"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\paint.net.1\FriendlyTypeName = "paint.net Image"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\paint.net.1\CurVer\(Default) = "paint.net.1"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\paint.net.1\DefaultIcon\(Default) = "C:\Program Files\paint.net\paintdotnet.exe,0"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\paint.net.1\shell\edit\command\(Default) = ""C:\Program Files\paint.net\paintdotnet.exe" "%1""
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\paint.net.1\shell\open\command\(Default) = ""C:\Program Files\paint.net\paintdotnet.exe" "%1""
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\paint.net.1\shell\print\command\(Default) = ""C:\Program Files\paint.net\paintdotnet.exe" "print:%1""
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\paintdotnet\(Default) = "URL:paint.net"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\paintdotnet\URL Protocol = ""
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\paintdotnet\DefaultIcon\(Default) = "C:\Program Files\paint.net\paintdotnet.exe,0"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\paintdotnet\shell\open\command\(Default) = ""C:\Program Files\paint.net\paintdotnet.exe" %1"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\CLSID\{FBF113F1-D7C8-477C-A23A-E600E7937E11}\(Default) = "paint.net Thumbnail Provider"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\CLSID\{FBF113F1-D7C8-477C-A23A-E600E7937E11}\InprocServer32\(Default) = "C:\Program Files\paint.net\PaintDotNet.ShellExtension.x64.dll"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\CLSID\{FBF113F1-D7C8-477C-A23A-E600E7937E11}\InprocServer32\ThreadingModel = "Apartment"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\paint.net.1\ShellEx\{E357FCCD-A995-4576-B01F-234630154E96}\(Default) = "{FBF113F1-D7C8-477C-A23A-E600E7937E11}"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\paint.net.ThumbnailProvider\CLSID\(Default) = "{FBF113F1-D7C8-477C-A23A-E600E7937E11}"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\paint.net.ThumbnailProvider\CurVer\(Default) = "paint.net.ThumbnailProvider.1"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\paint.net.ThumbnailProvider.1\CLSID\(Default) = "{FBF113F1-D7C8-477C-A23A-E600E7937E11}"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\.pdn\ShellEx\{E357FCCD-A995-4576-B01F-234630154E96}\(Default) = "{FBF113F1-D7C8-477C-A23A-E600E7937E11}"
6/5/2023 7:52:45 AM - setting registry value: HKEY_LOCAL_MACHINE\Software\RegisteredApplications\paint.net = "Software\paint.net\Capabilities"
6/5/2023 7:52:45 AM - setting registry value: HKEY_LOCAL_MACHINE\Software\paint.net\Capabilities\ApplicationName = "paint.net"
6/5/2023 7:52:45 AM - setting registry value: HKEY_LOCAL_MACHINE\Software\paint.net\Capabilities\ApplicationDescription = "paint.net allows you to create and edit images and photographs using a wide array of tools, adjustments, and effects."
6/5/2023 7:52:45 AM - setting registry value: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\paintdotnet.exe\(Default) = "C:\Program Files\paint.net\paintdotnet.exe"
6/5/2023 7:52:45 AM - setting registry value: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\paintdotnet.exe\SupportedProtocols = "paintdotnet"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\Applications\paintdotnet.exe\shell\edit\command\(Default) = ""C:\Program Files\paint.net\paintdotnet.exe" "%1""
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\Applications\paintdotnet.exe\FriendlyAppName = "paint.net"
6/5/2023 7:52:45 AM - registering .pdn
6/5/2023 7:52:45 AM - setting registry value: HKEY_LOCAL_MACHINE\Software\paint.net\Capabilities\FileAssociations\.pdn = "paint.net.1"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\.pdn\(Default) = "paint.net.1"
6/5/2023 7:52:45 AM - registry value did not exist: HKEY_CLASSES_ROOT\.pdn\PerceivedType
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\.pdn\PerceivedType = "image"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\Applications\paintdotnet.exe\SupportedTypes\.pdn = ""
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\.pdn\OpenWithProgids\paint.net.1 = ""
6/5/2023 7:52:45 AM - registering .avif
6/5/2023 7:52:45 AM - setting registry value: HKEY_LOCAL_MACHINE\Software\paint.net\Capabilities\FileAssociations\.avif = "paint.net.1"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\Applications\paintdotnet.exe\SupportedTypes\.avif = ""
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\.avif\OpenWithProgids\paint.net.1 = ""
6/5/2023 7:52:45 AM - registering .bmp
6/5/2023 7:52:45 AM - setting registry value: HKEY_LOCAL_MACHINE\Software\paint.net\Capabilities\FileAssociations\.bmp = "paint.net.1"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\Applications\paintdotnet.exe\SupportedTypes\.bmp = ""
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\.bmp\OpenWithProgids\paint.net.1 = ""
6/5/2023 7:52:45 AM - registering .dib
6/5/2023 7:52:45 AM - setting registry value: HKEY_LOCAL_MACHINE\Software\paint.net\Capabilities\FileAssociations\.dib = "paint.net.1"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\Applications\paintdotnet.exe\SupportedTypes\.dib = ""
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\.dib\OpenWithProgids\paint.net.1 = ""
6/5/2023 7:52:45 AM - registering .dds
6/5/2023 7:52:45 AM - setting registry value: HKEY_LOCAL_MACHINE\Software\paint.net\Capabilities\FileAssociations\.dds = "paint.net.1"
6/5/2023 7:52:45 AM - registry value retrieved: HKEY_CLASSES_ROOT\.dds\PerceivedType = "image"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\Applications\paintdotnet.exe\SupportedTypes\.dds = ""
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\.dds\OpenWithProgids\paint.net.1 = ""
6/5/2023 7:52:45 AM - registering .gif
6/5/2023 7:52:45 AM - setting registry value: HKEY_LOCAL_MACHINE\Software\paint.net\Capabilities\FileAssociations\.gif = "paint.net.1"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\Applications\paintdotnet.exe\SupportedTypes\.gif = ""
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\.gif\OpenWithProgids\paint.net.1 = ""
6/5/2023 7:52:45 AM - registering .heic
6/5/2023 7:52:45 AM - registry value retrieved: HKEY_CLASSES_ROOT\CLSID\{E9A4A80A-44FE-4DE4-8971-7150B10A5199}\InprocServer32\(Default) = "C:\WINDOWS\system32\msheif.dll"
6/5/2023 7:52:45 AM - setting registry value: HKEY_LOCAL_MACHINE\Software\paint.net\Capabilities\FileAssociations\.heic = "paint.net.1"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\Applications\paintdotnet.exe\SupportedTypes\.heic = ""
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\.heic\OpenWithProgids\paint.net.1 = ""
6/5/2023 7:52:45 AM - registering .jfif
6/5/2023 7:52:45 AM - setting registry value: HKEY_LOCAL_MACHINE\Software\paint.net\Capabilities\FileAssociations\.jfif = "paint.net.1"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\Applications\paintdotnet.exe\SupportedTypes\.jfif = ""
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\.jfif\OpenWithProgids\paint.net.1 = ""
6/5/2023 7:52:45 AM - registering .jpe
6/5/2023 7:52:45 AM - setting registry value: HKEY_LOCAL_MACHINE\Software\paint.net\Capabilities\FileAssociations\.jpe = "paint.net.1"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\Applications\paintdotnet.exe\SupportedTypes\.jpe = ""
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\.jpe\OpenWithProgids\paint.net.1 = ""
6/5/2023 7:52:45 AM - registering .jpeg
6/5/2023 7:52:45 AM - setting registry value: HKEY_LOCAL_MACHINE\Software\paint.net\Capabilities\FileAssociations\.jpeg = "paint.net.1"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\Applications\paintdotnet.exe\SupportedTypes\.jpeg = ""
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\.jpeg\OpenWithProgids\paint.net.1 = ""
6/5/2023 7:52:45 AM - registering .jpg
6/5/2023 7:52:45 AM - setting registry value: HKEY_LOCAL_MACHINE\Software\paint.net\Capabilities\FileAssociations\.jpg = "paint.net.1"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\Applications\paintdotnet.exe\SupportedTypes\.jpg = ""
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\.jpg\OpenWithProgids\paint.net.1 = ""
6/5/2023 7:52:45 AM - registering .jxr
6/5/2023 7:52:45 AM - setting registry value: HKEY_LOCAL_MACHINE\Software\paint.net\Capabilities\FileAssociations\.jxr = "paint.net.1"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\Applications\paintdotnet.exe\SupportedTypes\.jxr = ""
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\.jxr\OpenWithProgids\paint.net.1 = ""
6/5/2023 7:52:45 AM - registering .png
6/5/2023 7:52:45 AM - setting registry value: HKEY_LOCAL_MACHINE\Software\paint.net\Capabilities\FileAssociations\.png = "paint.net.1"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\Applications\paintdotnet.exe\SupportedTypes\.png = ""
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\.png\OpenWithProgids\paint.net.1 = ""
6/5/2023 7:52:45 AM - registering .rle
6/5/2023 7:52:45 AM - setting registry value: HKEY_LOCAL_MACHINE\Software\paint.net\Capabilities\FileAssociations\.rle = "paint.net.1"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\Applications\paintdotnet.exe\SupportedTypes\.rle = ""
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\.rle\OpenWithProgids\paint.net.1 = ""
6/5/2023 7:52:45 AM - registering .tga
6/5/2023 7:52:45 AM - setting registry value: HKEY_LOCAL_MACHINE\Software\paint.net\Capabilities\FileAssociations\.tga = "paint.net.1"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\Applications\paintdotnet.exe\SupportedTypes\.tga = ""
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\.tga\OpenWithProgids\paint.net.1 = ""
6/5/2023 7:52:45 AM - registering .tif
6/5/2023 7:52:45 AM - setting registry value: HKEY_LOCAL_MACHINE\Software\paint.net\Capabilities\FileAssociations\.tif = "paint.net.1"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\Applications\paintdotnet.exe\SupportedTypes\.tif = ""
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\.tif\OpenWithProgids\paint.net.1 = ""
6/5/2023 7:52:45 AM - registering .tiff
6/5/2023 7:52:45 AM - setting registry value: HKEY_LOCAL_MACHINE\Software\paint.net\Capabilities\FileAssociations\.tiff = "paint.net.1"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\Applications\paintdotnet.exe\SupportedTypes\.tiff = ""
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\.tiff\OpenWithProgids\paint.net.1 = ""
6/5/2023 7:52:45 AM - registering .wdp
6/5/2023 7:52:45 AM - setting registry value: HKEY_LOCAL_MACHINE\Software\paint.net\Capabilities\FileAssociations\.wdp = "paint.net.1"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\Applications\paintdotnet.exe\SupportedTypes\.wdp = ""
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\.wdp\OpenWithProgids\paint.net.1 = ""
6/5/2023 7:52:45 AM - registering .wmp
6/5/2023 7:52:45 AM - setting registry value: HKEY_LOCAL_MACHINE\Software\paint.net\Capabilities\FileAssociations\.wmp = "paint.net.1"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\Applications\paintdotnet.exe\SupportedTypes\.wmp = ""
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\.wmp\OpenWithProgids\paint.net.1 = ""
6/5/2023 7:52:45 AM - registering .webp
6/5/2023 7:52:45 AM - setting registry value: HKEY_LOCAL_MACHINE\Software\paint.net\Capabilities\FileAssociations\.webp = "paint.net.1"
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\Applications\paintdotnet.exe\SupportedTypes\.webp = ""
6/5/2023 7:52:45 AM - setting registry value: HKEY_CLASSES_ROOT\.webp\OpenWithProgids\paint.net.1 = ""
6/5/2023 7:52:45 AM - SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0)

 

  • Upvote 1

The Paint.NET Blog: https://blog.getpaint.net/

Donations are always appreciated! https://www.getpaint.net/donate.html

forumSig_bmwE60.jpg

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...