SetWindowPos может сделать окна AlwaysOnTop. Скорее всего, это может дать противоположный результат. Попробуйте что-то вроде этого:
[DllImport("user32.dll")]
static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X,
int Y, int cx, int cy, uint uFlags);
public const uint SWP_NOSIZE = 0x0001;
public const uint SWP_NOMOVE = 0x0002;
public const uint SWP_NOACTIVATE = 0x0010;
public const int HWND_BOTTOM = 1;
SetWindowPos(hWnd, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE);
Примечание:
- Не проверял этот подход (для того, чтобы окна всегда были внизу)
- Если это сработает, то, скорее всего, операция show desktop будет скрывать окно. Так что, возможно, вам стоит углубиться в этот «красивый» API.
РЕДАКТИРОВАТЬ: закончил поиск по этим строкам, чтобы убедиться, что он справится, и нашел что-то интересное - дубликат .