From 690e6bd4c367d56110ad1301cb1033d0abe1e0ed Mon Sep 17 00:00:00 2001 From: Alexander Kislitsyn <4lex.kislitsyn@gmail.com> Date: Sat, 23 May 2020 18:31:44 +0300 Subject: [PATCH] Added support of notepad2. --- Notepad.Extensions.Logging/NotepadLogger.cs | 1 + .../WindowEnumerationState.cs | 24 ++++++++++++++++++- Notepad.Extensions.Logging/WindowKind.cs | 1 + 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/Notepad.Extensions.Logging/NotepadLogger.cs b/Notepad.Extensions.Logging/NotepadLogger.cs index 655b585..6400044 100644 --- a/Notepad.Extensions.Logging/NotepadLogger.cs +++ b/Notepad.Extensions.Logging/NotepadLogger.cs @@ -98,6 +98,7 @@ namespace Notepad.Extensions.Logging case WindowKind.Notepad: SendMessage(info.Handle, EM_REPLACESEL, (IntPtr)1, message); break; + case WindowKind.Notepad2: case WindowKind.NotepadPlusPlus: WriteToNotepadPlusPlus(info.Handle, message); break; diff --git a/Notepad.Extensions.Logging/WindowEnumerationState.cs b/Notepad.Extensions.Logging/WindowEnumerationState.cs index 0f7803c..982fbf8 100644 --- a/Notepad.Extensions.Logging/WindowEnumerationState.cs +++ b/Notepad.Extensions.Logging/WindowEnumerationState.cs @@ -44,6 +44,12 @@ namespace Notepad.Extensions.Logging sb.Remove(0, 1); } + if (sb.Length > 0 && sb[0] == ' ') + { + // Notepad2 added space after asterisk + sb.Remove(0, 1); + } + if (IsKnownNotepadWindow(sb.ToString())) { return false; @@ -60,13 +66,28 @@ namespace Notepad.Extensions.Logging { if (WindowName.Equals(titleText, StringComparison.Ordinal)) { - WindowKind = titleText.EndsWith(" - Notepad++", StringComparison.Ordinal) ? WindowKind.NotepadPlusPlus : WindowKind.Notepad; + if (titleText.EndsWith(" - Notepad++", StringComparison.Ordinal)) + { + WindowKind = WindowKind.NotepadPlusPlus; + } + else if (titleText.EndsWith(" - Notepad2", StringComparison.Ordinal)) + { + WindowKind = WindowKind.Notepad2; + } + else + { + WindowKind = WindowKind.Notepad; + } } } else if (titleText.Equals("Untitled - Notepad", StringComparison.Ordinal)) { WindowKind = WindowKind.Notepad; } + else if (titleText.Equals("Untitled - Notepad2", StringComparison.Ordinal)) + { + WindowKind = WindowKind.Notepad2; + } else if (notepadPlusPlusRegex.IsMatch(titleText)) { WindowKind = WindowKind.NotepadPlusPlus; @@ -83,6 +104,7 @@ namespace Notepad.Extensions.Logging { case WindowKind.Notepad: return NativeMethods.FindWindowEx(Handle, IntPtr.Zero, "EDIT", null); + case WindowKind.Notepad2: case WindowKind.NotepadPlusPlus: return NativeMethods.FindWindowEx(Handle, IntPtr.Zero, "Scintilla", null); default: diff --git a/Notepad.Extensions.Logging/WindowKind.cs b/Notepad.Extensions.Logging/WindowKind.cs index 90a56cb..23fe66d 100644 --- a/Notepad.Extensions.Logging/WindowKind.cs +++ b/Notepad.Extensions.Logging/WindowKind.cs @@ -5,5 +5,6 @@ Invalid, Notepad, NotepadPlusPlus, + Notepad2, } }