static void Main(string[] args) { ILogger logger = new LoggerConfiguration() .WriteTo.ColoredConsole() .WriteTo.Seq("http://localhost:5341") .CreateLogger(); WindowRepository windowRepository = new WindowRepository(); WindowLogger windowLogger = new WindowLogger(new WindowPropertiesFetcher(), logger); foreach (IntPtr hWnd in windowRepository.AllWindows) { windowLogger.LogWindow(hWnd); } HiddenForm form = new HiddenForm(logger, windowRepository, windowLogger) { Visible = false, ShowInTaskbar = false }; IntPtr forwardingWindowPtr = form.Handle; Console.WriteLine("Pointer: " + forwardingWindowPtr); ShellHookManager shellHookManager = new ShellHookManager(forwardingWindowPtr); shellHookManager.RegisterHooks(); try { ApplicationContext context = new WindowsMessageLoggerApplicationContext(); Application.Run(context); } finally { shellHookManager.UnregisterHooks(); } }
public HiddenForm(ILogger logger, WindowRepository windowRepository, WindowLogger windowLogger) { _logger = logger; _windowRepository = windowRepository; _windowLogger = windowLogger; }