public shellHookHelper(Handler parentHandler) : base() { // Minimized metrics. This is required in order to use // shellhooks without explorer.exe SetTaskmanWindow(Handle); this.parentHandler = parentHandler; notificationMessage = ShellHook.RegisterWindowMessage( "SHELLHOOK"); ShellHook.RegisterShellHookWindow(Handle); MinimizedMetrics mm = new MinimizedMetrics { cbSize = (uint)Marshal.SizeOf(typeof(MinimizedMetrics)) }; IntPtr mmPtr = Marshal.AllocHGlobal(Marshal.SizeOf( typeof(MinimizedMetrics))); try { Marshal.StructureToPtr(mm, mmPtr, true); SystemParametersInfo(SPI.SPI_GETMINIMIZEDMETRICS, mm.cbSize, mmPtr, SPIF.None); mm.iArrange |= MinimizedMetricsArrangement.Hide; Marshal.StructureToPtr(mm, mmPtr, true); SystemParametersInfo(SPI.SPI_SETMINIMIZEDMETRICS, mm.cbSize, mmPtr, SPIF.None); } finally { Marshal.DestroyStructure(mmPtr, typeof(MinimizedMetrics)); Marshal.FreeHGlobal(mmPtr); } }
private void SetMinimizedMetrics() { MinimizedMetrics mm = new MinimizedMetrics { cbSize = (uint)Marshal.SizeOf(typeof(MinimizedMetrics)) }; IntPtr mmPtr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(MinimizedMetrics))); try { Marshal.StructureToPtr(mm, mmPtr, true); SystemParametersInfo(SPI.GETMINIMIZEDMETRICS, mm.cbSize, mmPtr, SPIF.None); mm.iWidth = 140; mm.iArrange |= MinimizedMetricsArrangement.Hide; Marshal.StructureToPtr(mm, mmPtr, true); SystemParametersInfo(SPI.SETMINIMIZEDMETRICS, mm.cbSize, mmPtr, SPIF.None); } finally { Marshal.DestroyStructure(mmPtr, typeof(MinimizedMetrics)); Marshal.FreeHGlobal(mmPtr); } }
public static extern void ZeroMemory(ref MinimizedMetrics dest, IntPtr size);
private void SetMinimizedMetrics() { MinimizedMetrics mm = new MinimizedMetrics { cbSize = (uint)Marshal.SizeOf(typeof(MinimizedMetrics)) }; IntPtr mmPtr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(MinimizedMetrics))); try { Marshal.StructureToPtr(mm, mmPtr, true); SystemParametersInfo(SPI.SPI_GETMINIMIZEDMETRICS, mm.cbSize, mmPtr, SPIF.None); mm.iArrange |= MinimizedMetricsArrangement.Hide; Marshal.StructureToPtr(mm, mmPtr, true); SystemParametersInfo(SPI.SPI_SETMINIMIZEDMETRICS, mm.cbSize, mmPtr, SPIF.None); } finally { Marshal.DestroyStructure(mmPtr, typeof(MinimizedMetrics)); Marshal.FreeHGlobal(mmPtr); } }