mirror of
https://github.com/yaakov-h/Notepad.Extensions.Logging.git
synced 2024-11-22 11:14:50 +00:00
Revert "Use EnumWindows instead of FindWindow"
This reverts commit fa24ae3022
.
This commit is contained in:
parent
fa24ae3022
commit
1d1f92c608
3 changed files with 15 additions and 70 deletions
|
@ -18,15 +18,9 @@ namespace Notepad.Extensions.Logging.FunctionalTest
|
||||||
var sp = sc.BuildServiceProvider();
|
var sp = sc.BuildServiceProvider();
|
||||||
var logger = sp.GetRequiredService<ILogger<Program>>();
|
var logger = sp.GetRequiredService<ILogger<Program>>();
|
||||||
|
|
||||||
//logger.LogWarning("Here is a warning.");
|
logger.LogWarning("Here is a warning.");
|
||||||
//logger.LogError(GetException(), "oh no!.");
|
logger.LogError(GetException(), "oh no!.");
|
||||||
//logger.LogInformation("Here is some info.");
|
logger.LogInformation("Here is some info.");
|
||||||
//logger.LogInformation("here, have a nice 😋 emoji.");
|
|
||||||
logger.LogInformation(@"💧 Paul
|
|
||||||
@paws101
|
|
||||||
Replying to
|
|
||||||
@yaakov_h
|
|
||||||
But does it handle emoji injection?.");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static Exception GetException()
|
static Exception GetException()
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace Microsoft.Extensions.Logging
|
namespace Microsoft.Extensions.Logging
|
||||||
{
|
{
|
||||||
|
@ -16,13 +15,5 @@ namespace Microsoft.Extensions.Logging
|
||||||
|
|
||||||
[DllImport("User32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
|
[DllImport("User32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
|
||||||
public static extern IntPtr SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, [MarshalAs(UnmanagedType.LPWStr)] string lParam);
|
public static extern IntPtr SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, [MarshalAs(UnmanagedType.LPWStr)] string lParam);
|
||||||
|
|
||||||
public delegate bool EnumWindowsDelegate(IntPtr hWnd, IntPtr lParam);
|
|
||||||
|
|
||||||
[DllImport("user32.dll")]
|
|
||||||
public static extern bool EnumWindows(EnumWindowsDelegate lpEnumFunc, IntPtr lParam);
|
|
||||||
|
|
||||||
[DllImport("User32.dll")]
|
|
||||||
public static extern int GetWindowText(IntPtr hWndParent, StringBuilder sb, int maxCount);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
using System;
|
using System;
|
||||||
using System.ComponentModel;
|
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace Microsoft.Extensions.Logging
|
namespace Microsoft.Extensions.Logging
|
||||||
{
|
{
|
||||||
|
@ -8,66 +6,28 @@ namespace Microsoft.Extensions.Logging
|
||||||
{
|
{
|
||||||
public static IntPtr FindNotepadWindow()
|
public static IntPtr FindNotepadWindow()
|
||||||
{
|
{
|
||||||
sb ??= new StringBuilder(4096);
|
var hwnd = FindMainWindow();
|
||||||
|
IntPtr edit = NativeMethods.FindWindowEx(hwnd, IntPtr.Zero, "EDIT", null);
|
||||||
try
|
|
||||||
{
|
|
||||||
FindMainWindow();
|
|
||||||
if (handle == IntPtr.Zero)
|
|
||||||
{
|
|
||||||
return handle;
|
|
||||||
}
|
|
||||||
|
|
||||||
IntPtr edit = NativeMethods.FindWindowEx(handle, IntPtr.Zero, "EDIT", null);
|
|
||||||
return edit;
|
return edit;
|
||||||
}
|
}
|
||||||
finally
|
|
||||||
{
|
|
||||||
handle = IntPtr.Zero;
|
|
||||||
sb.Clear();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static IntPtr FindMainWindow()
|
static IntPtr FindMainWindow()
|
||||||
{
|
{
|
||||||
NativeMethods.EnumWindows(enumWindowsDelegate, IntPtr.Zero);
|
IntPtr hwnd;
|
||||||
return handle;
|
|
||||||
|
hwnd = NativeMethods.FindWindow(null, "Untitled - Notepad");
|
||||||
|
if (hwnd != IntPtr.Zero)
|
||||||
|
{
|
||||||
|
return hwnd;
|
||||||
}
|
}
|
||||||
|
|
||||||
static NativeMethods.EnumWindowsDelegate enumWindowsDelegate = new NativeMethods.EnumWindowsDelegate(EnumWindowsCallback);
|
hwnd = NativeMethods.FindWindow(null, "*Untitled - Notepad");
|
||||||
|
if (hwnd != IntPtr.Zero)
|
||||||
static bool EnumWindowsCallback(IntPtr hWnd, IntPtr lParam)
|
|
||||||
{
|
{
|
||||||
var result = NativeMethods.GetWindowText(hWnd, sb, sb.Capacity);
|
return hwnd;
|
||||||
if (result < 0)
|
|
||||||
{
|
|
||||||
throw new Win32Exception(result);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (IsKnownNotepadWindow(sb.ToString()))
|
return IntPtr.Zero;
|
||||||
{
|
|
||||||
WindowFinder.handle = hWnd;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
[ThreadStatic]
|
|
||||||
static IntPtr handle;
|
|
||||||
|
|
||||||
[ThreadStatic]
|
|
||||||
static StringBuilder sb;
|
|
||||||
|
|
||||||
static bool IsKnownNotepadWindow(string titleText)
|
|
||||||
{
|
|
||||||
switch (titleText)
|
|
||||||
{
|
|
||||||
case "Untitled - Notepad":
|
|
||||||
case "*Untitled - Notepad":
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue