klevyede pencere tuşu olayları? iptal etmek

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
forumsad
Üye
Mesajlar: 296
Kayıt: 29 Tem 2010 10:47

klevyede pencere tuşu olayları? iptal etmek

Mesaj gönderen forumsad »

arkadaşlar aşağıdaki kod ile klevye pencere tuşuna basmış etkisi yapabilliyorum

Kod: Tümünü seç

Keybd_Event(VK_RWIN, 1, KEYEVENTF_KEYUP, 0);
keybd_event(Ord(VK_RWIN), MapVirtualKey(Ord(VK_RWIN), 0), 0, 0);

bu kod ilede klevyeden pencere tuşuna basıldığını anlıyorum

Kod: Tümünü seç

 if key=91 then ShowMessage('pencere açıldı');
sorum şu: klevyede pencere tuşuna basılınca gelen windows mesajını yakalayıp iptal edebilirmiyiz görev yapmasını engelleyebilirmiyiz

saygılarımla
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: klevyede pencere tuşu olayları? iptal etmek

Mesaj gönderen mrmarman »

Kod: Tümünü seç

type
  PKBDLLHOOKSTRUCT = ^TKBDLLHOOKSTRUCT;
  TKBDLLHOOKSTRUCT = packed record
    vkCode: DWORD;
    scanCode: DWORD;
    flags: DWORD;
    time: DWORD;
    dwExtraInfo: DWORD;
  end;

var
  Form1: TForm1;
  hKeyboardHook: HHOOK = 0;

const
  WH_KEYBOARD_LL = 13;

implementation

{$R *.dfm}

function LowLevelKeyboardHook(nCode: Integer; wParam: WPARAM; lParam: LPARAM): HRESULT; stdcall;
var
  pkbhs: PKBDLLHOOKSTRUCT;
begin
  pkbhs := PKBDLLHOOKSTRUCT(lParam);
  if nCode = HC_ACTION then
  begin
    if (pkbhs^.vkCode = VK_LWIN) then begin
      Result := 1;
      Exit;
    end;
  end;
  Result := CallNextHookEx(hKeyboardHook, nCode, wParam, lParam);
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  if hKeyboardHook = 0 then
    hKeyboardHook := SetWindowsHookEx(WH_KEYBOARD_LL, @LowLevelKeyboardHook, HInstance, 0);
end;

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
  if (hKeyboardHook <> 0) and UnhookWindowsHookEx(hKeyboardHook) then
    hKeyboardHook := 0;
end;

KEY Kodları için bkz. http://msdn.microsoft.com/en-us/library/bb431750.aspx
başarılar.
Resim
Resim ....Resim
forumsad
Üye
Mesajlar: 296
Kayıt: 29 Tem 2010 10:47

Re: klevyede pencere tuşu olayları? iptal etmek

Mesaj gönderen forumsad »

hocam çok teşekkürler kodunuz çok güzel çalışıyor

eliniz ayağınız dert görmesin

saygılarımla
Cevapla