Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   apagar xp al repetir teclas (https://www.clubdelphi.com/foros/showthread.php?t=37889)

compaqdavid 25-11-2006 06:23:09

apagar xp al repetir teclas
 
desarrolle un pequeño programa donde hice una especie de reloj con alarma y mensajes segun la hora queria añadirle la opcion de apagar la maquina a una hora determinada que yo quisiera y ya lo hice, lo que me falta es que yo quisiera que mi programa estuviera oculto o transparente y que al pulsar por ejemplo la tecla control u otra cualquiera se muestre mi programa, espero que alguien me pueda ayudar

Lepe 25-11-2006 09:46:13

Yo he usado los hooks de teclado, que son unas combinaciones de teclas que puedes usar en todo windows, es decir, tu programa recibe esa combinación de teclas sin importar en el programa en el que estas. Actualmente uso CTRL + F11 para apagar y CTRL+ F10 para reiniciar. Si tengo prisa, uso CTRL+ ALT + F11 que fuerza un apagado de windows.

Hay dos formas de hacerlo:
- Si tienes la JVCL instalada, tienes un HotkeyApplication o algo parecido, que ya implementa todo eso, solo tienes que indicar la combinación de teclas a usar.
- Implementarlo por API de windows: Es cuestión de usar 2 funciones RegisterHotkey y UnregisterHotkey, después tienes que redefinir el método wndProc y detectar qué combinación de teclas se ha usado.

en el foro ya se ha hablado de ambos métodos, si necesitas más ayuda, avisa.

Saludos

dec 25-11-2006 09:53:54

Hola,

Con tu permiso Lepe. Puede también echarse un vistazo a la unidad "Hooks" escrita por Román.

Ciertamente, con unos pocos cambios... o sólo para recoger ideas, creo que puede ser útil. ;)

seoane 25-11-2006 13:42:03

:rolleyes: ¿No estaremos confundiendo Hotkeys con Hooks?

dec 25-11-2006 13:50:59

Hola,

Cita:

Empezado por Domingo
¿No estaremos confundiendo Hotkeys con Hooks?

Pues... en lo que a mí se refiere muy probablemente, pero, ¿no podría utilizarse la unidad susomentada -con los cambios necesarios- para hacer lo que es menester hacer aquí? Pregunto... ¡Ya tengo mis dudas! ;)

Aunque, sí, efectivamente, no se me olvida "RegisterHotKey"...

seoane 25-11-2006 13:58:52

Cita:

Empezado por dec
¿no podría utilizarse la unidad susomentada -con los cambios necesarios- para hacer lo que es menester hacer aquí?

Claro que se puede, se recibirían todas las pulsaciones de teclado, pero tendrías que filtrarlas tu para encontrar la combinación de teclas que necesitas. Un trabajo innecesario pudiendo usar Hotkeys, pero como dijo alguien ... "ratón que conoce un agujero sólo pronto le caza el gato" ;)

dec 25-11-2006 14:02:47

Hola,

Cita:

Empezado por Seoane
(...) pero como dijo alguien ... "ratón que conoce un agujero sólo pronto le caza el gato"

Lo digo yo. Eso lo dije yo en su día. Luego ya se enteró más gente y bueno, ahí quedó para la historia. :D :D :D

yusnerqui 25-11-2006 14:52:17

Entonces lo correcto es escribir: "Como dijo nuestro célebre amigo Dec...." :)

Saludos.

dec 25-11-2006 15:18:10

Hola,

Bueno. Yo distribuí la frase con una licencia libre, pero, el reconocimiento nunca está demás, no. :eek: :) :cool: :D :p

roman 25-11-2006 15:34:24

¿Y podríamos ver el hilo donde generó la frase? ¿O no fue aquí?

Por cierto, estoy de acuerdo con seoane, aunque pueden usarse hooks, en este caso es mucho más sencillo con un HotKey.

// Saludos

seoane 25-11-2006 15:37:17

Cita:

Empezado por roman
¿Y podríamos ver el hilo donde generó la frase? ¿O no fue aquí?

Aquí, por cierto, intentaba ser un guiño a dec, yo ya sabia que la frase era suya :p

roman 25-11-2006 15:41:54

¡Ah! Muy buena, y por lo visto una de dos: o leo muy mal o tengo pésima memoria (o ambas cosas)

:D

// Saludos

Lepe 26-11-2006 10:09:54

Como veo que en este hilo hay muchas ganas de cachondeo, pero pocas ganas de trabajar :p :p, y quizás tenga que ver algo la petición privada de compaqdavid, aqui dejo el ejemplo de delphi.com.ar

saludos

compaqdavid 27-11-2006 08:04:21

ok
 
gracias lepe, el codigo me sirvio, le hice unos cambios y todo funciono, gracias por la ayuda:p


La franja horaria es GMT +2. Ahora son las 03:34:42.

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