diff --git a/Notepad.Extensions.Logging/NotepadLogger.cs b/Notepad.Extensions.Logging/NotepadLogger.cs index 754fd9b..3140f35 100644 --- a/Notepad.Extensions.Logging/NotepadLogger.cs +++ b/Notepad.Extensions.Logging/NotepadLogger.cs @@ -84,8 +84,28 @@ namespace Microsoft.Extensions.Logging static void WriteToNotepad(string message) { - IntPtr hwnd = WindowFinder.FindNotepadWindow(); - NativeMethods.SendMessage(hwnd, NativeMethods.EM_REPLACESEL, (IntPtr)1, message); + IntPtr hwnd = FindNotepadWindow(); + IntPtr edit = NativeMethods.FindWindowEx(hwnd, IntPtr.Zero, "EDIT", null); + NativeMethods.SendMessage(edit, NativeMethods.EM_REPLACESEL, (IntPtr)1, message); + } + + static IntPtr FindNotepadWindow() + { + IntPtr hwnd; + + hwnd = NativeMethods.FindWindow(null, "Untitled - Notepad"); + if (hwnd != IntPtr.Zero) + { + return hwnd; + } + + hwnd = NativeMethods.FindWindow(null, "*Untitled - Notepad"); + if (hwnd != IntPtr.Zero) + { + return hwnd; + } + + return IntPtr.Zero; } } } diff --git a/README.md b/README.md index 5a82768..3540414 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,33 @@ # Notepad.Extensions.Logging +[![NuGet](https://img.shields.io/nuget/v/Notepad.Extensions.Logging)](https://www.nuget.org/packages/Notepad.Extensions.Logging/) + This is a library for .NET / .NET Core to log your program's output to a handy Notepad window! +## Installation + +To use: + +1. Add a package reference to `Notepad.Extensions.Logging`. +2. In `Startup.cs`, call `AddNotepad()`, like so: + +```csharp +// This method gets called by the runtime. Use this method to add services to the container. +public void ConfigureServices(IServiceCollection services) +{ + services.AddControllersWithViews(); + + // ... + + services.AddLogging(lb => lb.AddNotepad()); // This is where the magic happens +} +``` + +3. Open a new Notepad window. +4. Run your application. + +## Source Material + Inspired by [this tweet](https://twitter.com/steveklabnik/status/1263190719721766918): -![](https://pbs.twimg.com/media/EYfBQ5cXsAEcu2e?format=jpg&name=orig) \ No newline at end of file +![](https://pbs.twimg.com/media/EYfBQ5cXsAEcu2e?format=jpg&name=orig)