SystemTrayMenu/NativeDllImport/ShowInactiveTopmost.cs

34 lines
1.2 KiB
C#

using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace SystemTrayMenu.NativeDllImport
{
public static partial class NativeMethods
{
private const int SW_SHOWNOACTIVATE = 4;
private const int HWND_TOPMOST = -1;
private const uint SWP_NOACTIVATE = 0x0010;
[DllImport("user32.dll", EntryPoint = "SetWindowPos")]
private static extern bool SetWindowPos(
int hWnd, // Window handle
int hWndInsertAfter, // Placement-order handle
int X, // Horizontal position
int Y, // Vertical position
int cx, // Width
int cy, // Height
uint uFlags); // Window positioning flags
public static void User32ShowInactiveTopmost(Form form)
{
if (form != null)
{
_ = ShowWindow(form.Handle, SW_SHOWNOACTIVATE);
SetWindowPos(form.Handle.ToInt32(), HWND_TOPMOST,
form.Left, form.Top, form.Width, form.Height,
SWP_NOACTIVATE);
}
}
}
}