Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Disable Windows key ?

Posted on 2004-04-21
15
Medium Priority
?
1,300 Views
Last Modified: 2012-05-04
Iwant Delphi code To disable Win Key ? I founded one in this page But Icouldnot use it
http://www.swissdelphicenter.ch/torry/printcode.php?id=1212 help me please
0
Comment
Question by:Prof_MAM
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
15 Comments
 
LVL 3

Expert Comment

by:MikProg
ID: 10885809
It must be keyboard hook local to you program that catch
VK_LWIN      Left Windows key (Microsoft keyboard)
VK_RWIN      Right Windows key (Microsoft keyboard)
events and trash them
0
 
LVL 12

Expert Comment

by:Ivanov_G
ID: 10886357
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
    Hook_Handle : THandle;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

function KeyboardProc(nCode, wParam, lParam : Integer) : Integer; stdcall;
var
  bControlKeyDown : Boolean;
begin
  bControlKeyDown := False;
  case nCode of
    HC_ACTION : begin
                  if (wParam = VK_LWIN) or (wParam = VK_RWIN) then
                    begin
                      Result := 1;
                      Exit;
                    end;
                end;
  end;
  Result := CallNextHookEx (Form1.Hook_Handle, nCode, wParam, lParam);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  // Install hook
  Hook_Handle := SetWindowsHookEx(WH_KEYBOARD, KeyboardProc, hInstance, 0);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  // DeInstall hook
  UnhookWindowsHookEx(Hook_Handle);
end;
0
 

Author Comment

by:Prof_MAM
ID: 10896928
It didn't Work Windows Key Is still working After pressing button1 Or button 2
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 12

Expert Comment

by:Ivanov_G
ID: 10898182

   Here is working example, I tested it
   
   http://www.swissdelphicenter.ch/torry/showcode.php?id=1212
0
 

Author Comment

by:Prof_MAM
ID: 10903570
I think it is the same code I have but I couldn't run it send it to me if you can And points are yours if it works
prof_mam1@hotmail.com
0
 

Author Comment

by:Prof_MAM
ID: 10908276
Ivanov_g where are you ?
0
 
LVL 12

Expert Comment

by:Ivanov_G
ID: 10908327

   Releasing version ... production tonight. I will go to your code when I have few minutes. Is it urgent
0
 

Author Comment

by:Prof_MAM
ID: 10910571
No take your time
0
 
LVL 12

Expert Comment

by:Ivanov_G
ID: 10916527

   If your application is like destop shield - there is very easy way :

procedure EnableFastTaskSwitching(Enable : boolean = True);
begin
  // If Enable is False, we must use True to disable,
  // If Enable is True, we must use False to enable
  SystemParametersInfo(SPI_SCREENSAVERRUNNING, cardinal(NOT Enable), nil, 0);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  // Disable Win keys
  EnableFastTaskSwitching(False);
end;

   If not - you need the hook.
0
 

Author Comment

by:Prof_MAM
ID: 10921646
I am using win xp SystemParametersInfo() doesnot work on xp  I need the hook
0
 

Author Comment

by:Prof_MAM
ID: 10956788
where is the experts ??! no body Can do that ?
0
 
LVL 14

Expert Comment

by:Esopo
ID: 13281952
Just as a comment:

You can hook the keyboard. Don't know for sure if it will work with the Windows Key, but it's surely worth a try:
http://delphi.about.com/od/vclusing/l/aa101000a.htm
http://www.infojet.cz/program/delphi/tips/tip0003.html

Hook dll:
http://chithai.com/delphi/crazykeyboard.htm

I would love to post code for that but the last time I played with it I was younger, brighter and more versed ;)

Good luck.
0
 

Accepted Solution

by:
modulo earned 0 total points
ID: 13302449
PAQed with points refunded (140)

modulo
Community Support Moderator
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Have you ever had your Delphi form/application just hanging while waiting for data to load? This is the article to read if you want to learn some things about adding threads for data loading in the background. First, I'll setup a general applica…
Introduction Raise your hands if you were as upset with FireMonkey as I was when I discovered that there was no TListview.  I use TListView in almost all of my applications I've written, and I was not going to compromise by resorting to TStringGrid…
Sometimes it takes a new vantage point, apart from our everyday security practices, to truly see our Active Directory (AD) vulnerabilities. We get used to implementing the same techniques and checking the same areas for a breach. This pattern can re…
Want to learn how to record your desktop screen without having to use an outside camera. Click on this video and learn how to use the cool google extension called "Screencastify"! Step 1: Open a new google tab Step 2: Go to the left hand upper corn…
Suggested Courses

722 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question