SetWindowPos puede hacer Windows AlwaysOnTop. Lo más probable es que pueda dar el resultado opuesto. Pruebe algo como lo siguiente:
[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);
Nota:
- no hemos probado este enfoque (para la fabricación de ventanas siempre en la parte inferior)
- Si pasa a trabajar, entonces lo más probable es que el programa de escritorio la operación ocultará la ventana. Así que tal vez deberías profundizar aún más en esta 'buena' API.
EDITAR: He hecho algunas búsquedas a lo largo de estas líneas para confirmar si hace el truco y encontré algo interesante - a duplicate.
Si es posible, debería usar algo más, pero Delphi, ya que la interacción entre la ventana de la aplicación oculta y la ventana principal hará que las cosas aún más complicadas. La mayor parte de esto es material privado en forms.pas, difícil de cambiar. – mghie
No puede ser posible cuando se usa Show Desktop. Sin embargo, puede ser cuando se usa Minimizar todo: estableciendo la propiedad MinimizeBox en falso, se inhabilitaría la minimización del formulario. – configurator
Duplicado: http://stackoverflow.com/questions/365094/window-on-desktop –