Ver Mensaje Individual
  #9  
Antiguo 21-11-2012
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Reputación: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
MARIA_MAR,

Cita:
Empezado por nlsgarcia Ver Mensaje
1- Con la función SetForegroundWindow se puede establecer el tamaño, posición y orden Z de una ventana en Windows
Corrección: No es la función SetForegroundWindow, es la función SetWindowPos.

Cita:
Empezado por MARIA_MAR Ver Mensaje
¿cómo puedo yo redimensionar la ventana en la que se ejecuta este programa Windows sin llegar a minimizarla?
Puedes usar tambien la función MoveWindow para mover y redimensionar una ventana:
Código:
BOOL MoveWindow(
    HWND hWnd, // handle of window
    int X, // horizontal position
    int Y, // vertical position
    int nWidth, // width
    int nHeight, // height
    BOOL bRepaint // repaint flag
);
Revisa este código:
Código Delphi [-]
// Ejecuta y redimensiona a Notepad
procedure TForm5.Button2Click(Sender: TObject);
var
   x, y : Integer;
   cx, cy : Integer;
   Window : Integer;

begin

   // Establece las coordenadas de Notepad en función de form5
   x := Round(form5.Top/2);
   y := Round(form5.Left/2);
   cx := Round(form5.Height/2);
   cy := Round(form5.Width/2);

   // Ejecuta Notepad en modo Hide
   ShellExecute(Handle, 'open', 'Notepad.exe', nil, nil, SW_HIDE);

   // Espera 150 msseg para que se ejecute Notepad
   Sleep(150);

   // API FindWindow : Encuentra si esta activa en Windows una aplicación y obtiene su handle
   Window := FindWindow('Notepad',nil);

   // API SetForegroundWindow : Cambia el foco de la aplicación activa en Windows
   if SetForegroundWindow(Window) = True then
   begin
      // API MoveWindow: Establece la posición y dimensiones de una ventana en Windows.
      // la posición y dimensiones son establecidos con los valores x, y, cx, cy
      MoveWindow(Window,x, y, cx, cy, true);
      // API ShowWindow: Muestra una ventana en Windows
      ShowWindow(Window, SW_SHOWNORMAL);
   end
   else
      MessageDlg('Notepad No Esta Activo', mtInformation,[mbOk], 0);

end;
Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 21-11-2012 a las 21:29:59.
Responder Con Cita