Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   DirectInput , como capturar mi Control ? (https://www.clubdelphi.com/foros/showthread.php?t=71543)

ValinOne 26-12-2010 14:08:17

DirectInput , como capturar mi Control ?
 
Hola mucho gusto !.

Estoy trabajando con DirectInput , con TDXInput que biene en las librerias de DelphiX.
Mi duda es la siguiente: ¿Existe alguna manera de poder capturar los eventos de un Control (xbox) qunque mi aplicacion no este activa?

supongamos que estoy jugando al buscaminas y al momento de presionar cualquier boton de mi control
mi programa debe saltar avisando que se usó un botón de mi Control.

gracias ! espero me ayuden porque lo unico que logro es capturar mi control dentro de mi aplicacion y si mi aplicacion esta minimizada o detras de otra pues no captura los botones presionados.

Gracias.

ValinOne 31-12-2010 09:42:31

sigo buscando y no encuentro
seria algo como un hook tipo para el teclado y el mouse
quizas

Ñuño Martínez 10-01-2011 16:04:53

Si tu aplicación no está activa, no puede capturar eventos (o al menos no debería).

Lo que tú quieres hacer creo que necesitará que "preguntes" al sistema operativo. Seguramente hay por ahí algún gancho al que puedas asignar un procedimiento o función. Seguramente en la MSDN sabrán algo.

ValinOne 15-01-2011 12:50:35

Hola
bueno, la solucion que encontre fue esta:

en el evento OnTimer de un Timer puse este codigo
Código Delphi [-]
var
  MyJoy: TJoyInfo;
  ErrorResult: MMRESULT;
begin
  ErrorResult := joyGetPos(joystickid1, @MyJoy);

  if ErrorResult = JOYERR_NOERROR then begin

    if (MyJoy.wbuttons and JOY_BUTTON1) > 0 then
      ShowMessage('Boton 1 presionado');
    if (MyJoy.wbuttons and JOY_BUTTON2) > 0 then
      ShowMessage('Boton 2 presionado');
    if (MyJoy.wbuttons and JOY_BUTTON3) > 0 then
      ShowMessage('Boton 3 presionado');
    if (MyJoy.wbuttons and JOY_BUTTON4) > 0 then
      ShowMessage('Boton 4 presionado');
    if (MyJoy.wbuttons and JOY_BUTTON5) > 0 then
      ShowMessage('Boton 5 presionado');
    if (MyJoy.wbuttons and JOY_BUTTON6) > 0 then
      .......
      .......
      .......

  end
  else begin
    Timer1.Enabled := False;
    ShowMessage('¡¡ JoyStick Error !!');
  end;

Gracias por la ayuda !


La franja horaria es GMT +2. Ahora son las 12:39:05.

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