Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-12-2014
JuanOrtega JuanOrtega is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 130
Poder: 13
JuanOrtega Va por buen camino
Apagar pantalla desde un programa consola

Hola estoy haciendo un programa consola en Delphi XE2 para apagar la pantalla , ya lo habia hecho en una aplicacion grafica normal pero en el programa consola me parece imposible de hacerlo , en stackoverflow me dieron que era imposbile hacerlo pero queria una segunda opinion , este es el codigo :

Código Delphi [-]
program test;

{$APPTYPE CONSOLE}
{$R *.res}

uses
  System.SysUtils,ShellApi,Windows;

function turn_off(): string;
const
  MONITOR_ON = -1;
  MONITOR_OFF = 2;
  MONITOR_STANDBY = 1;
begin
  SendMessage(Application.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_OFF);
end;

begin
  try
    turn_off();
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.


Los errores son :
Código:
Undeclared identifier: 'Application' Undeclared identifier: 'WM_SYSCOMMAND'
El primero no puedo solucionarlo pero el segundo error se soluciona agregando el uses Winapi.Messages al codigo.

¿ Alguien me puede ayudar ?
Responder Con Cita
  #2  
Antiguo 07-12-2014
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

"Application" está definida en la unidad "Vcl.Forms", que, no incluyes en tu programa. Por otro lado tampoco incluyes la unidad "Vcl.Messages", donde se define "WM_SYSCOMMAND". No obstante incluir "Vcl.Forms" y usar "Application.Handle" no parece surtir el efecto que deseas. A mí me funciona usando la función "GetForegroundWindow()" en su lugar, es decir:

Código Delphi [-]
program Project1;

{$APPTYPE CONSOLE}
{$R *.res}

uses
  Winapi.Windows,
  Winapi.Messages,
  System.SysUtils;

const
  MONITOR_ON = -1;
  MONITOR_OFF = 2;
  MONITOR_STANDBY = 1;

begin
  try
    SendMessage(GetForegroundWindow(), WM_SYSCOMMAND, SC_MONITORPOWER,
      MONITOR_OFF);
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;

end
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 07-12-2014
JuanOrtega JuanOrtega is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 130
Poder: 13
JuanOrtega Va por buen camino
Funciona perfecto gracias por la ayuda dec.
Responder Con Cita
  #4  
Antiguo 07-12-2014
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por Lepuke Ver Mensaje
Funciona perfecto gracias por la ayuda dec.
¡No hay de qué!
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cómo puedo limpiar la pantalla de una aplicación de tipo consola Eduardo Juviel Varios 6 03-08-2012 03:36:42
Apagar La Pantalla Gimli API de Windows 1 26-05-2008 20:25:23
limpiar pantalla en consola de delphi neoEX API de Windows 21 02-02-2008 19:39:33
Apagar la Pantalla en XP lag_0 API de Windows 3 18-12-2007 14:05:29
Apagar desde la "pantalla de bienvenida" Wellnic OOP 6 06-05-2007 23:35:36


La franja horaria es GMT +2. Ahora son las 22:45:28.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi