| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
pablo_emiliob Master


Registrado: 19 Sep 2005Mensajes: 211Ubicación: Barranquilla - Colombia
|
Publicado: Mie 12 Dic, 2007 3:10 am Asunto: Eliminar el atajo WIN+D |
|
|
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 |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Mie 12 Dic, 2007 11:05 am Asunto: |
|
|
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 |
|
 |
Cri_sys Master


Registrado: 13 Feb 2004Mensajes: 198Ubicación: Maringá, Brazil
|
Publicado: Jue 17 Ene, 2008 11:54 am Asunto: |
|
|
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 |
|
 |
pablo_emiliob Master


Registrado: 19 Sep 2005Mensajes: 211Ubicación: Barranquilla - Colombia
|
Publicado: Vie 18 Ene, 2008 4:11 am Asunto: |
|
|
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 |
|
 |
Cri_sys Master


Registrado: 13 Feb 2004Mensajes: 198Ubicación: Maringá, Brazil
|
Publicado: Dom 20 Ene, 2008 4:36 pm Asunto: |
|
|
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 |
|
 |
|