Community
    • Login
    1. Home
    2. Popular
    Log in to post
    • All Time
    • Day
    • Week
    • Month
    • All Topics
    • New Topics
    • Watched Topics
    • Unreplied Topics
    • All categories
    • S

      autoupdater and connection temp.sh

      Watching Ignoring Scheduled Pinned Locked Moved Security
      37
      0 Votes
      37 Posts
      18k Views
      PeterJonesP

      @Martin-1 said in autoupdater and connection temp.sh:

      @PeterJones That is what i meant. I don’t understand what is being said in those links or what is being said above. hence the repeat of my questions.

      Then ask for clarification, rather than ask the same thing over and over.

      Besides, the https://notepad-plus-plus.org/news/clarification-security-incident/ link that @donho most recently posted seems pretty clear to me:

      Who Was Targeted?

      This was a highly selective attack by a state-sponsored group targeting specific high-value organizations. Security researchers confirmed that the vast majority of Notepad++ users were never affected - attackers filtered victims based on strategic value, not random distribution.

      For most users: Simply updating to the latest version is sufficient.

      If you are a member of a a high-value organization, then you need to find someone on your IT team who does understand all the technical details. (If you are unsure whether your organization would be considered “high value”, then it wouldn’t be.) If you are not, then you are part of the “for most users” group. And those instructions seem quite clear to me: manually update to v8.9.1.

    • Mark BoonieM

      Show (or keep) subsets of a file

      Watching Ignoring Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
      16
      0 Votes
      16 Posts
      146 Views
      guy038G

      Hello, @mark-boonie and All,

      I said in this post that we can translate the regex’s logic to :

      What_I_do_not_want(*SKIP)(*F)|What_I_want. See also the excellent article, on this topic, at https://www.rexegg.com/backtracking-control-verbs.php#skipfail !

      But, regarding your present example, @mark-boonie, I suppose that we should invert the logic and tell :

      What_I_want_to_keep(*SKIP)(*F)|What_I_want_to_delete

      This means that any multi-lines block, with delimiters Block start and Block end containing the string 80     00010000 is not considered ( text is skipped ) and that any single line contents, with its line-break, due to the (?-s) modifier, must be deleted

      Note that the use of the Backtracking Control Verbs (*SKIP) and (*F) is not mandatory at all ! we could have used this syntax, instead, for similar results :

      SEARCH (?s)^\*Block start\h*((?!\*Block start).)+?80 00010000.+?^\*Block end\h*\R?|(?-s)^.*\R?

      REPLACE (?1$0)

      We simply change the non-capturing group (?:(?!\*Block start).)+? into a capturing group ((?!\*Block start).)+?

      We tell that, in replacement, we must rewrite any block entirely ( $0 ), if the group 1 exists, thus the (?1$0) syntax

      And, as there is no colon char and text after (?1$0, nothing must be taken in account if the group 1 is absent, which is the case in the (?-s)^.*\R? part !

      Best regards,

      guy038

    • Thorsten HeuerT

      Feature Request / Question: Soft Wrap at Vertical Edge (Column 80) regardless of window size

      Watching Ignoring Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
      16
      1 Votes
      16 Posts
      535 Views
      PeterJonesP

      @Alan-Kilborn ,

      Okay, since I didn’t know how to hook the message loop I found this old post by you (I remembered you had done it for the alt+scrollwheel, thankfully), and I was able to use that as a basis for a two-file solution to @fml2’s request

      file 1: MsgHooker.py

      # -*- coding: utf-8 -*- # original author: @Alan-Kilborn # reference: https://community.notepad-plus-plus.org/post/100127 # modified by: @PeterJones # - updated to add the .unhook() and .__del__() methods import platform from ctypes import (WinDLL, WINFUNCTYPE) from ctypes.wintypes import (HWND, INT, LPARAM, UINT, WPARAM) user32 = WinDLL('user32') GWL_WNDPROC = -4 # used to set a new address for the window procedure LRESULT = LPARAM WndProcType = WINFUNCTYPE( LRESULT, # return type HWND, UINT, WPARAM, LPARAM # function arguments ) running_32bit = platform.architecture()[0] == '32bit' SetWindowLong = user32.SetWindowLongW if running_32bit else user32.SetWindowLongPtrW SetWindowLong.restype = WndProcType SetWindowLong.argtypes = [ HWND, INT, WndProcType ] class MH(object): def __init__(self, hwnd_to_hook_list, hook_function, # supplied hook_function must have args: hwnd, msg, wparam, lparam # and must return True/False (False means the function handled the msg) msgs_to_hook_list=None, # None means ALL msgs ): self.users_hook_fn = hook_function self.msg_list = msgs_to_hook_list if msgs_to_hook_list is not None else [] self.new_wnd_proc_hook_for_SetWindowLong = WndProcType(self._new_wnd_proc_hook) # the result of this call must be a self.xxx variable! self.orig_wnd_proc_by_hwnd_dict = {} for h in hwnd_to_hook_list: self.orig_wnd_proc_by_hwnd_dict[h] = SetWindowLong(h, GWL_WNDPROC, self.new_wnd_proc_hook_for_SetWindowLong) v = self.orig_wnd_proc_by_hwnd_dict[h] #print(f"add {h:08x} => {v}") def __del__(self): self.unhook() def unhook(self): #print(f"unhook: self:{self} => <{self.orig_wnd_proc_by_hwnd_dict}>"); mykeys = [] for h in self.orig_wnd_proc_by_hwnd_dict.keys(): orig = self.orig_wnd_proc_by_hwnd_dict[h] print(f"\tdel {h:08x} => {orig}") SetWindowLong(h, GWL_WNDPROC, orig) mykeys.append(h) for h in mykeys: del self.orig_wnd_proc_by_hwnd_dict[h] def _new_wnd_proc_hook(self, hwnd, msg, wParam, lParam): retval = True # assume that this message will go unhandled (by us) need_to_call_orig_proc = True if len(self.msg_list) == 0 or msg in self.msg_list: retval = self.users_hook_fn(hwnd, msg, wParam, lParam) if not retval: need_to_call_orig_proc = False if need_to_call_orig_proc: retval = self.orig_wnd_proc_by_hwnd_dict[hwnd](hwnd, msg, wParam, lParam) return retval

      file 2: the main script:

      # encoding=utf-8 """in response to https://community.notepad-plus-plus.org/topic/27351/ Trying to implement @Coises idea for setting the wrap to exactly 80 """ from Npp import * import ctypes from ctypes import wintypes from MsgHooker import MH as MsgHook WM_SIZE = 0x0005 # Define the RECT structure to match Win32 API class RECT(ctypes.Structure): _fields_ = [ ("left", wintypes.LONG), ("top", wintypes.LONG), ("right", wintypes.LONG), ("bottom", wintypes.LONG) ] def width(self): return self.right - self.left def height(self): return self.bottom - self.top def pysc_setWrap80(ed=editor): #console.write("ed={}\n".format(ed)) WRAPCHARS = 80 # Setup the Win32 function prototype user32 = ctypes.windll.user32 user32.GetClientRect.argtypes = [wintypes.HWND, ctypes.POINTER(RECT)] user32.GetClientRect.restype = wintypes.BOOL def get_window_size(hwnd): # 2. Instantiate the RECT structure rect = RECT() # 3. Call GetClientRect passing the rect by reference if user32.GetClientRect(hwnd, ctypes.byref(rect)): # 4. Parse the results # Client coordinates: top-left is always (0,0) return rect else: raise Exception("GetClientRect failed") sz = get_window_size(ed.hwnd) #console.write("{} => {}\n".format(ed.hwnd, {"width": sz.width(), "height": sz.height()})) usableWidth = sz.width() for m in range(0, 1+ed.getMargins()): w = ed.getMarginWidthN(m) usableWidth -= w #console.write("m#{}: {} => usableWidth: {}\n".format(m, w, usableWidth)) widthWrappedChars = ed.textWidth(0,"_"*WRAPCHARS)+1 # one extra pixel to be able to show the VerticalEdge indicator line wantMargin = usableWidth - widthWrappedChars if wantMargin < 1: wantMargin = 0 #console.write("{}\n".format({"windowWidth": sz.width(), "usableWidth": usableWidth, "pixelsFor80Char": widthWrappedChars, "wantMargin": wantMargin})) ed.setMarginRight(wantMargin) ed.setMarginLeft(0) def HIWORD(value): return (value >> 16) & 0xFFFF def LOWORD(value): return value & 0xFFFF def pysc_size_callback( hwnd, msg, wParam, lParam): #console.write(f"cb(h:{hwnd}, m:{msg}, w:{wParam}, l:{lParam}) => {LOWORD(lParam)} x {HIWORD(lParam)}\n") if hwnd == editor1.hwnd: pysc_setWrap80(editor1) elif hwnd == editor2.hwnd: pysc_setWrap80(editor2) return True pysc_setWrap80(editor1) pysc_setWrap80(editor2) pysc_size_hook = MsgHook([ editor1.hwnd, editor2.hwnd ], pysc_size_callback, [WM_SIZE]) console.write("SetWrap80 registered WM_SIZE callback\n") def pysc_unsetWrap80(args=None): """ To stop pysc_unsetWrap80() """ editor1.setMarginRight(0) editor2.setMarginRight(0) global pysc_size_hook if pysc_size_hook: pysc_size_hook.unhook() del pysc_size_hook # use the following in the console (no #) to stop it from always wrapping at 80 # # pysc_unsetWrap80()

      You run the main script (or call it from startup.py) to get it to start watching for WM_SIZE, and when it gets that, it does the calcs needed to keep the wrap margin at 80 characters (+1 pixel so that the Vertical Edge line would be visible if you’ve got it on)

      Both scripts should go in the main %AppData%\Notepad++\plugins\Config\PythonScript\scripts directory (or equivalent for non-AppData setups, or you need to have added their parent directory to sys.path)

    • donhoD

      Notepad++ v8.9.1 Release

      Watching Ignoring Scheduled Pinned Locked Moved Announcements
      9
      6 Votes
      9 Posts
      7k Views
      PeterJonesP

      @mpheath said in Notepad++ v8.9.1 Release:

      I am unsure what you fixed.

      @mpheath, the user had outdated themes, which didn’t have the KEY style for either Langage:INI or Language:Properties. When v8.9.1 brought in all those style entries for the INI and Properties lexers, it began properly formatting those styles rather than ignoring those styles that weren’t defined in the themes. This was the intention of the new style-updating feature: it is intended to bring all themes up-to-date, so that they can format all the styles that users have not been seeing for years (for some, it’s a decade or more of missing syntax highlighting).

      @Drift91: As with all styles, if you don’t like the formatting that is chosen by default for a given style, you are free to change it for yourself. You go to Settings > Style Configurator > Language: INI or Language: Properties, select Style: KEY and change the Italic checkbox, as shown here for INI: 4b2d19b9-b707-4bc0-a668-3b1acb7041c8-image.png

    • Anderson NascimentoA

      Monokai and JS versão 8.9.1

      Watching Ignoring Scheduled Pinned Locked Moved Notepad++ & Plugin Development
      5
      1 Votes
      5 Posts
      19 Views
      Anderson NascimentoA

      @PeterJones I managed to do it, I uninstalled it again and when it asked about settings, I answered no, upon startup it was like a completely new installation.Screenshot_1.png nnn.png
      When I started up, I changed the theme and it worked, thank you very much for the tips.

    • Fred MorantF

      "In Find, Regex Search in Current File Limited to "Find Next" Downward Direction Only"

      Watching Ignoring Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
      5
      0 Votes
      5 Posts
      112 Views
      PeterJonesP

      @Fred-Morant said in "In Find, Regex Search in Current File Limited to "Find Next" Downward Direction Only":

      @PeterJones ,

      This solution requires a change in config.xml,

      As described in the user manual, yes.

      regexBackward4PowerUser at yes seems to be not an accepted value for my version V8.9.1.

      Nope. Works just fine for me in v8.9.1. My guess is you used your active Notepad++ to edit config.xml. But Notepad++ overwrites config.xml when it exits, so you lost your change. The user manual has a few paragraphs at Config Files Details > Editing Configuration Files which explains how to edit most of the Notepad++ configuration files, and then explains the workaround for the config.xml exception.

      Until you properly edit and save the config.xml, Notepad++ will not see your regexBackward4PowerUser="yes"

      if config.xml is detected with value not conformed at start then config.xml is not considered and default parameters are used,
      if config.xml is not conformed then config.xml is rewritten at close,

      Correct. That’s described in more detail in the user manual, where I just linked you.

      Reason for considering regexBackward4PowerUser at yes as not a accepted value :
      going backward with a regex requires more computation than going forward, and that value is not accepted in V8.9.1,

      Wrong. Don’t believe AI hallucinations. It has nothing to do with computation. Regular expressions parse characters in byte order, and when they do that but go backwards through the bytes for the start of the match, there are quirks that users don’t expect; the Developer got tired of people reporting bugs in the regex engine because they didn’t understand the implications of how backward mode interacts with regular expression parsing, so turned it off by default, but gave power users the ability to turn it back on. That ability has not been taken away, despite the lies the AI is telling you.

      Do you confirm ?

      I confirm it’s nonsense from AI that just says the most likely next words based on context. “Most likely” does not equal “true”.

    • Troglo37T

      Is There a Way to Prevent Pasted Text from Spreading Out with Rows of Spaces?

      Watching Ignoring Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
      5
      0 Votes
      5 Posts
      163 Views
      PeterJonesP

      @PeterJones said in Is There a Way to Prevent Pasted Text from Spreading Out with Rows of Spaces?:

      implementing it in PythonScript today

      Thankfully, I found an old script which did something related, which was easy to update.

      # encoding=utf-8 """in response to https://community.notepad-plus-plus.org/topic/27385/ This will paste the CF_TEXT plaintext from the clipboard, but will convert any series of newline characters into a single space before doing the paste. Because this uses .insertText() instead of putting the modified text back into the clipboard and doing .paste(), it should avoid clobbering the clipboard. (based on @alan-kilborn's clipboard script here: <https://community.notepad-plus-plus.org/post/97132>) """ from Npp import * try: editor3h # third editor, hidden except NameError: editor3h = notepad.createScintilla() def get_clipboard_text_without_newlines(): retval = '' editor3h.clearAll() editor3h.paste() if editor3h.getLength() > 0: editor3h.rereplace(r'[\r\n]+', ' ') # replace all newline seqeuences with a single space retval = editor3h.getText() return retval editor.beginUndoAction() editor.insertText(editor.getCurrentPos(), get_clipboard_text_without_newlines()) editor.endUndoAction()

      This has been tested in the PythonScript 3 plugin. The PythonScript FAQ explains how to install PythonScript plugin, and how to run a script using PythonScript plugin, and even how to assign a keyboard shortcut to the script. Make sure you follow the instructions for PythonScript 3, not PythonScript 2 (as I have not tested under the older plugin syntax, though it will likely work there)

    • PeterJonesP

      FAQ: February Security Announcement

      Watching Ignoring Scheduled Pinned until 3/1/26, 9:17 PM Locked Moved Security
      4
      2 Votes
      4 Posts
      401 Views
      PeterJonesP

      Updates with new clarifications from this comment:

      Target Information

      Kaspersky only saw evidence of victims IP addresses in Vietnam, El Salvador, Australia and the Philippines, and noted, “We observed three different infection chains overall, designed to attack about a dozen machines…”.

      Thus, it wasn’t just “targeted” – out of all the update attempts that would have happened during the June to December timeframe, it appears there were only a dozen victims: everyone else got a normal, unaffected update, with no malicious payload.

      Obvious Side-effect: Notepad++ Not Actually Updated after “Update”

      When the attackers redirected victims, the victims got “updaters” which did nothing to notepad++.exe. If every time that automatic updates ran, you saw Notepad++ actually updated, you were not one of the victims.

      In case the user runs Notepad++ updater, if the version remains exactly the same after the attempted update, the user can check %LOCALAPPDATA%\Notepad++\log\securityError.log to see what happened & report it.

    • Cam KroutC

      Chinese compromise began as early as NP++ v8.6.9

      Watching Ignoring Scheduled Pinned Locked Moved Security
      4
      0 Votes
      4 Posts
      520 Views
      PeterJonesP

      Future readers: if you want more information for the context of this discussion, See the FAQ, which has the best summary I can make, as of 2026-Feb-04; if new information is available, the FAQ will be updated. ALL followups/discussions must go in Topic: autoupdater and connection to temp.sh. This tangent is LOCKED.

    • NppenjoyrN

      Advices to prevent further security vulnerabilities

      Watching Ignoring Scheduled Pinned Locked Moved Security
      4
      0 Votes
      4 Posts
      451 Views
      NppenjoyrN

      BTW:

      5.1-if your home internet speed is fast enough, setup your own web server to your pc under virtualbox(in case of web server software cve’s/rce’s). I or anyone can help with that. Dont forget to hardening server for security.

      IMO, this is BAD advice. To suggest to a non-security specialist who runs this as a hobby, that he should self-host, and try to keep up on all the security hardening, is asking him to get hacked even worse than the hack that already happened. He was literally paying a host to provide such services, and the professionals failed; he has now changed providers to a host who has better security procedures.

      Believe me it’s not that hard to setup a webserver or harden it, especially while backed by a strong community. The risks are different when hosting at home between hosting remotely. The hosting firm may be offered money to hijack, or an out-of-date hosting management software had rce was waiting to be abused.

    • S

      Managing the User Languages tool

      Watching Ignoring Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
      4
      0 Votes
      4 Posts
      101 Views
      PeterJonesP

      @sagradamoly-stack said in Managing the User Languages tool:

      Is there any way to delete all the interim variations without losing all the work getting to a useful final result?

      It depends on what you mean.

      En masse? No

      One at a time? Yes. In the UDL dialog, select each intermediate UDL from the drop-down, and click Remove. Since it’s likely on the order of a dozen or two, it won’t take you that long – less time than asking here took you, I’d wager.

      without losing all the work

      I mean, deleting the intermediate ones will obviously delete the intermediate stages. If you don’t want to lose them, but don’t want them in the N++ Language menu, use Export to save each to a separate XML file which you can then save in some backup directory, then Remove to take it out of the menu.

    • M

      I am very confused about the Notepad++ security issue

      Watching Ignoring Scheduled Pinned Locked Moved Security
      3
      0 Votes
      3 Posts
      193 Views
      PeterJonesP

      See the FAQ, which has the best summary I can make, as of 2026-Feb-04; if new information is available, the FAQ will be updated. ALL followups/discussions must go in Topic: autoupdater and connection to temp.sh. This tangent is LOCKED.

    • Naveen RathnamN

      Were the binaries released on GitHub affected in the Notepad++ state-sponsored hacking incident?

      Watching Ignoring Scheduled Pinned Locked Moved Security
      3
      1 Votes
      3 Posts
      177 Views
      PeterJonesP

      See the FAQ, which has the best summary I can make, as of 2026-Feb-04; if new information is available, the FAQ will be updated. ALL followups/discussions must go in Topic: autoupdater and connection to temp.sh. This tangent is LOCKED.

    • A

      Tab bar tab width

      Watching Ignoring Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
      3
      0 Votes
      3 Posts
      112 Views
      A

      @PeterJones
      on the screenshot above Reduce option is already pressed though.
      Max tab label length truncates text, which is not the behavior i want to restore - i want the tabs with short names to not have this big gap at the end.

      That said, it seems that the “enable pin tab feature” was the culprit, as disabling it seems to have restored the desired tab size behavior.

      There still is some extra spacing before the close button though:

      2bb5dad1-4a85-4bd0-8df8-768e93562693-image.png
      629bde33-102c-4a09-a960-60ded9dcd809-image.png

    • D. KirkpatrickD

      "Run" add-on for Run in Browser

      Watching Ignoring Scheduled Pinned Locked Moved Notepad++ & Plugin Development
      5
      0 Votes
      5 Posts
      254 Views
      D. KirkpatrickD

      @PeterJones Thanks. I will work on getting the debug. Until then…

      After making the edit, which took by the way (saved), I closed the app as usual. Just to be sure I checked Task Manager and found 2 instances of it showing there even though all copies were previously closed by me. I killed it there, unmounted the thumb drive that has the portable version I’m trying to edit, and then did a system restart thinking that might clear anything else.

      I remounted the thumb drive and still have an edited Shortcuts file but it is not recognizing the changes. That edit is working with my resident copy on the same system but that was also hard to change when I did it a while back.

      Thanks for the help.

    • N

      The real haters can't hate

      Watching Ignoring Scheduled Pinned Locked Moved Boycott Notepad++
      9
      0 Votes
      9 Posts
      2k Views
      PeterJonesP

      @shodanx2 ,

      I normally stay out of the “Boycott” discussions, because they’re a complete waste of time (as is this one, for example, so I’ll be leaving this one again), but it seems really odd that you just started complaining about this a year after you successfully created your account and made your first post. But whatever, the haters are going to hate. (update: never mind, you were whining about this a year ago, too.)

      If the owners of the forum software and the service that they are donating to host our forum (they normally charge people and organizations to host with them, but are giving the hosting for free to us, so beggars cannot be choosers), or the contributors to their ecosystem (not me, not the developer of Notepad++) ever provide a plugin that allowed a “login with XYZ” for any other OAUTH provider, I would enable that in a heartbeat, because I’m all for giving users a choice. I cannot speak for the rest of the internet, but the email-only didn’t work here, despite your repeated protestations, for whatever reason, so I’ve tried to help give users as much choice from OAUTH providers as possible; unfortunately, those are the only two for now.

      Our choice of login has nothing to do with censoring people from speaking (as should be blatantly obvious, because we literally provide a topic for whining about Notepad++ in a forum dedicated to advocating for and helping people use Notepad++ … the N++ developer is highly into free speech), nor “shilling for the techbro cloud elites”, and everything to do with trying to make the user experience as good as possible for as many as we can.

    • Fred MorantF

      "Search result" are not more stacked,

      Watching Ignoring Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
      2
      0 Votes
      2 Posts
      48 Views
      PeterJonesP

      @Fred-Morant said in "Search result" are not more stacked,:

      Every new search replaced the previous one,

      In the Search Results panel, Right Click, then uncheckmark “Purge for every search”

      f9b80104-3491-4a95-9a71-8cc5b64a683d-image.png
      =>
      534dcf2f-da9e-4350-82ff-673e4afd1558-image.png

    • David Smith 2D

      How to change the colors used for html/css that is exported

      Watching Ignoring Scheduled Pinned Locked Moved General Discussion
      2
      0 Votes
      2 Posts
      55 Views
      David Smith 2D

      This issue has been fixed:
      I did the following. As I use a inline style sheet I created a “css color.css” file in Notepad++. Just a blank page that I can do the following:

      I can now paste my HTMLPad 2025 css code into Notepad++ with the colors I changed under Settings> Style Configurator.

      I also created a “html-colors.html” blank file and I can copy the html code with colors that Notepad++ provides that has been updated in the Style Configurator.

      Next I highlight the text then go to “Plugins” on the toolbar then “NppExport” then “Copy all formats to clipboard”.

      I can now paste in the html/css code into Word with the colors I want.

      I still cannot create a style in Word 2024 with colors as I suspect it would be too complicated for Word to figure what parts the different text it should color.

    • Magic MugsM

      Session migration

      Watching Ignoring Scheduled Pinned Locked Moved General Discussion
      2
      0 Votes
      2 Posts
      50 Views
      PeterJonesP

      @Magic-Mugs ,

      Assuming all your open files are real files, and all in the exact same folders on old and new machine, then just copy over %AppData%\Notepad++\session.xml

      If some of your files are the unsaved new # tabs, you will also need to copy over everything in %AppData%\Notepad++\backup\

      But if you want all the same settings from your old to your new, just copy over everything from %AppData%\Notepad++\

    • N

      Plugin Manager v8.9.1 has ghosted us

      Watching Ignoring Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
      2
      0 Votes
      2 Posts
      65 Views
      PeterJonesP

      @nikkinisly ,

      The thing truly named “Plugin Manager” was last compatible with Notepad++ in v7.5.9 from October 2019. Had you really not updated since then?

      Or are you talking about Plugins Admin? That’s the builtin replacement since v7.6 in November 2019

      And it’s still in v8.9.1:
      0e15144b-967e-42d8-a505-a19330607d00-image.png

      My guess is that you deleted gup.exe and/or other of the content in the updater folder, or the plugin list DLL. To find out:

      Exit Notepad++ Perform steps 1-3 for each of the following files List of files C:\Program Files\Notepad++\notepad++.exe C:\Program Files\Notepad++\plugins\Config\nppPluginList.dll C:\Program Files\Notepad++\updater\GUP.exe C:\Program Files\Notepad++\updater\libcurl.dll If any of those files are missing, you will need to reinstall, making sure to include the auto-updater and Plugins Admin, because all of those files are required for Plugins Admin to work Steps Right click on the file and choose Properties Look to see if it still has the Unblock checkbox If it does, checkmark it, then click Apply / OK

      here is an example of a GUP.exe that still has the mark of the web:
      9baed526-5a1a-4497-a75b-1acdc23f3b85-image.png

      After making sure the Mark of the Web is gone from all those files, then restart Notepad++, and Plugins Admin should be there.