Hey there! 👋 Welcome to NGMemory v1.0.7! 🚀
NGMemory is your Windows-only .NET Framework helper library for external process-memory work, GUI automation, screen analysis, debugging utilities, and lightweight overlays. Whether you are inspecting memory, automating classic desktop tools, or building a small diagnostics overlay, this release makes the workflow more complete and more reliable.
What's Included?
📖 Read and write memory in external processes with typed helpers.
🔍 Scan process memory for byte patterns with wildcard support.
⚡ Use debugging helpers for hardware breakpoints and register inspection.
🖱️ Automate external UIs: buttons, text boxes, combo boxes, check boxes, list views, menus, keyboard, and mouse input.
🖼️ Capture windows or regions, search colors, and compare images.
🧩 Create lightweight overlays that attach to target windows.
Getting Started
Download NGMemory.dll from the release assets or install it from NuGet:
Install-Package NGMemory -Version 1.0.7Add the library to your C# project:
using NGMemory;
using NGMemory.Easy;
using NGMemory.Overlay;
using NGMemory.WinInteropTools;Full guide and examples: https://github.com/NGxDTV/NGMemory
What's New in 1.0.7?
✅ Complete test harness support
NGMemory_Tests now works as a real WinForms test harness for the library. It includes self-tests, process/window selection, external target checks, control-id testing, list view checks, screen helpers, memory tests, and overlay creation/removal.
🎯 Process and window selector
You can select a running process, inspect its windows, run external-window tests, and create overlays for the selected target directly from the test app.
🧩 Overlay improvements
Overlay creation, custom overlay configuration, scan-based overlays, and overlay removal are covered by the test app. OverlayManager.RemoveAllOverlays() was hardened so overlays can be closed safely without modifying the tracked collection during enumeration.
🧠 More robust GUI automation
Control lookup is more reliable for nested WinForms layouts. Helpers can now find controls by id even when they are inside layout containers instead of being direct child windows.
☑️ CheckBox fixes
CheckBox automation now handles WinForms check boxes in the current process correctly while keeping native/external controls on the Win32 message path.
📋 SysListView32 fixes
EasySysListView32.SearchSysListView32InWindow() now searches recursively and recognizes WinForms class names such as WindowsForms10.SysListView32..., not only exact native SysListView32 class names.
⌨️ Input helper fix
InputHelper.CopySelection() now sends WM_COPY synchronously, so clipboard reads after copying are stable instead of racing against a queued message.
🧪 Designer-safe test UI
The test UI layout is now stored in the WinForms Designer file, so Visual Studio can open and edit the form normally.
Examples
Create an overlay for a selected window
var manager = new OverlayManager();
manager.CreateOverlay(targetWindowHandle, overlay =>
{
overlay.Configure()
.WithSize(220, 80)
.WithPosition(OverlayPosition.BottomRight)
.WithOffset(12, 12)
.WithLabel("Overlay active", 10, 10, Color.Lime)
.WithButton("Close", 10, 38, 76, 26, (sender, args) => overlay.Close());
});Copy selected text from a control
InputHelper.CopySelection(textBoxHandle, false);
string copied = Clipboard.GetText();Find a nested ListView
IntPtr listView = EasySysListView32.SearchSysListView32InWindow(windowHandle);
int rows = EasySysListView32.GetItemCount(listView);Feedback & Support
Found a bug or have an idea? Open an issue and let’s make NGMemory even better.
Thanks for exploring NGMemory. Happy coding! 💻✨