Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Eliminar el atajo WIN+D

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Eliminar el atajo WIN+D Responder citando

HOLA!!!

Tengo otro post con la misma intencion pero con otro titulo.

Lo que en verdad queria hacer era averiguar como hacer para eliminar el atajo cuando uno unde WINDOWS + D, el cual minimiza la ventana de la aplicacion.

Si alguien me puede ayudar, son bienvenidas todas sus sugerencias.

GRACIAS!!
_________________
__________________________
C++ RULZ FO' EVA'
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Aquí tienes un ejemplo de como interceptar las pulsaciones de WIN-D (mostrar escritorio) y WIN-M (minimizar todo). Para más detalles mira la en la referencia del API la función "SetWindowsHookEx". Solo funciona en la familia NT de Windows (o sea NT4, 2000, XP, 2003 y Vista):

Unit.h
Código:
//-------------------------------------------------------------------------
#ifndef Unit1H
#define Unit1H
//-------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
//-------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:   // IDE-managed Components
private:   // User declarations
   static HHOOK hh;
   static LRESULT CALLBACK KeyProc(int code, WPARAM wParam, LPARAM lParam);
public:      // User declarations
   __fastcall TForm1(TComponent* Owner);
   __fastcall ~TForm1();
};
HHOOK TForm1::hh = 0;
//-------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//-------------------------------------------------------------------------
#endif

Unit1.cpp
Código:
//-------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
//-------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//-------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    hh = SetWindowsHookEx(WH_KEYBOARD_LL, (HOOKPROC)KeyProc, HInstance, 0);
}
//-------------------------------------------------------------------------
__fastcall TForm1::~TForm1()
{
    UnhookWindowsHookEx(hh);
}
//-------------------------------------------------------------------------
LRESULT CALLBACK TForm1::KeyProc(int code, WPARAM wParam, LPARAM lParam)
{
    static DWORD const VK_D = VkKeyScan('d');
    static DWORD const VK_M = VkKeyScan('m');
    if (code >= 0)
    {
        if (wParam == WM_KEYDOWN)
        {
            // Detectamos las pulsaciones de WIN-D y WIN-M
            PKBDLLHOOKSTRUCT hs = (PKBDLLHOOKSTRUCT)lParam;
            if ((hs->vkCode == VK_D || hs->vkCode == VK_M)
                && ((GetKeyState(VK_LWIN) & 0x8000)
                    || (GetKeyState(VK_RWIN) & 0x8000)))
            {
                // No hacer nada
                return -1;
            }
        }
    }
    return CallNextHookEx(hh, code, wParam, lParam);
}
//-------------------------------------------------------------------------
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

COn la funcion>

Código:

ShowWindow(Application->Handle, SW_HIDE);

No se minimizará.

pero no aparece en la barra de tareas tampoco asi q puedes usar un TrayIcon
_________________
Read what I mean, not what I write!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

puse lo que tu me dijiste en el FASTCALL y no me funciono para el WIN + D... de pronto estoy haciendo las cosas mal... corrigeme si estoy mal, o dime si lo hago por otra parte...

GRACIAS!!!
_________________
__________________________
C++ RULZ FO' EVA'
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

hmmm.. prueba colocandolo en el Onpaint del form, el no se minimizara pero tampoco lo veras en la barra de tareas por lo que te recomendaria un Trayicon
_________________
Read what I mean, not what I write!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.