PDA

Ver la Versión Completa : Saber si esta conectado el adaptador de corriente en una laptop


javier_ecf
12-12-2010, 22:09:57
Hola, bueno, tengo rato buscando por la internet como hacer esto, incluso dentro del mismo foro, pero no encuentro nada que me diga como hacerlo.

Explico, necesito saber si el adaptador de corriente o de carga de una laptop, esta conectado o no a la misma.

Gracias.

Neftali [Germán.Estévez]
13-12-2010, 10:46:00
Supongo que se debe poder hacer utilizando WMI, pero en estos momentos no puedo probartelo. La clase es Win32_Battery.

Haz la prueba con el DPR que te adjunto y a ver qué resultado devuelve en ambos casos; Conectado y desconectado. Segun el resultado, podemos probar otra cosas.

ecfisa
13-12-2010, 11:44:21
Hola.

También se puede usar la función Win Api GetSystemPowerStatus
Ejemplo:

procedure TForm1.Button1Click(Sender: TObject);
var
PowerState: TSystemPowerStatus;
begin
GetSystemPowerStatus(PowerState);
if PowerState.ACLineStatus = 1 then
ShowMessage('Conectada a la red eléctrica')
else
ShowMessage('No conectada a la red eléctrica');
end;


Y si querés detectar el cambio de estado (conectada/desconectada) podés capturar el mensaje WM_POWERBROADCAST.
Ejemplo:

...
type
TForm1 = class(TForm)
...
private
procedure WMPowerBroadCast(var Msg: TMessage); message WM_POWERBROADCAST;
public
end;
...
Interface
...
procedure TForm1.WMPowerBroadCast(var Msg: TMessage);
var
PowerState: TSystemPowerStatus;
begin
if Msg.WParam = $0A then
begin
GetSystemPowerStatus(PowerState);
if PowerState.ACLineStatus = 1 then
ShowMessage('Se ha conectado a la red eléctrica')
else
ShowMessage('Se desconectó de la red eléctrica');
end;
end;


Saludos.

javier_ecf
15-12-2010, 07:22:59
Gracias, ya lo habia resuelto, disculpen las molestias.

juanlaplata
27-12-2010, 16:33:03
Muy bien por ti, y por los que respondieron. pueda tambien que comentes cual fue la solucion que le diste al asunto, si es que es distinta a las propuestas.
Gracias a todos ....

javier_ecf
29-12-2010, 02:21:21
Asi como ecfisa dijo.

kurono
12-01-2011, 01:32:01
he probado el codigo y mi antivirus lo reconoce como un virus para poder ejecutarlo debo desativar el antivirus a que se debe eso

ecfisa
13-01-2011, 14:49:32
Hola kurono.

Es extraño. El NOD 32 en ningún momento me dió esa alerta, pero no sé que antivirus estés usando...

Supongo que la seguridad del mismo está muy alta y esté tomando la captura del mensaje WM_POWERBROADCAST como un posible intento de ataque. Tal vez puedas configurar el nivel de seguridad en tiempo real o aplicarle una exclusión en el antivirus a la aplicación que estés generando.

Un saludo.

kurono
14-01-2011, 00:51:37
el antivirus que uso es el panda 2008 vere si puedo bajar la seguridad a ver que pasa luego te cuento