Asociar un handle a un programa cónsola

4517 vistas

Con el fin de usar dentro de una aplicación cónsola el API de Windows, tendremos antes que recuperar uno de los handles de la cónsola.

Para ello podemos usar el código siguiente:



delphi
  1. program Project1;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. uses sysutils, Windows;
  6.  
  7. var
  8.   Han: THandle;
  9. begin
  10.   Han := GetStdHandle(STD_OUTPUT_HANDLE);
  11.   if (Han <> INVALID_HANDLE_VALUE) then
  12.   begin
  13.     // añadir el código del API aquÃ
  14.   end
  15.   else
  16.   begin
  17.     Write('¡Error en la inicialización de la aplicación!');
  18.     ReadLn;
  19.   end;
  20. end.



Ahora podrÃamos usar ese handle en una llamada al API, por ejemplo para llenar el parámetro hTemplateFile de la función CreateFile.

El handle recuperado puede ser:
STD_INPUT_HANDLE : handle de la entrada estándar (CONIN$).
STD_OUTPUT_HANDLE : handle de la salida estándar (CONOUT$).
STD_ERROR_HANDLE : handle de la salida de error estándar. (permite por ejemplo, redirigir los errores/Log en un fichero específico. )