Avatar billede snifferdog Nybegynder
20. december 1999 - 14:22 Der er 7 kommentarer og
2 løsninger

ALT+F4 disable

Hej alle sammen jeg har lige et par spørgsmål til jer.

1)Er der nogen der ved hvordan man disabler ALT+F4 funktionen.

2) Er det muligt at disable hele startmenuen, eller skjule den. Hvis ja, hvordan??

-SnifferDog
Avatar billede ranger Nybegynder
20. december 1999 - 14:33 #1
1) Lav en global windows-keyboard hook funktion der griber tasteturet og ikke sender message'n videre hvis det er en af dem du ønsker at fjerne!

2) tilsvarende.
Avatar billede snifferdog Nybegynder
20. december 1999 - 14:56 #2
Nu ligger det sådan at jeg ikke er den største programmør, sååå.... Kan du ikke lige uddybe det svar lidt, med fx en source??

-SnifferDog 
Avatar billede sjensen Nybegynder
20. december 1999 - 15:13 #3
Er det windows start menuen eller menuen i dit program du mener ?

I programmet har du en systemmenu (den lille ikon øverst i venstre hjørne) samt en evt. menu du selv har defineret.

Hvilken af dem er det du tænker på ?

Avatar billede sjensen Nybegynder
20. december 1999 - 15:19 #4
Disable ALT+F4: Det gøres således:

I formen skal KEYPREVIEW være true og så oprettes formens KEYDOWN event med:
For eksemplet skal der også være en label1.

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (shift = [ssALT]) and (key = VK_F4) then
  begin
    label1.Caption := 'ALT+F4';
    key := 0;
    shift := [];
  end;
end;

Dermed vises istedet teksten ALT+F4 i label1.caption

sjensen
Avatar billede sjensen Nybegynder
20. december 1999 - 15:20 #5
Øhm... linien:

shift := [];

er ikke nødvendig. Det er bare mig der som sædvanligt er for grundig med at rydde op efter mig.

sjensen
Avatar billede ranger Nybegynder
20. december 1999 - 15:22 #6
>Sjensen

Virker kun hvis dit program har fokus, ikke hvis der bliver trykket et andet sted (dvs. et andet program, eller til Windows).
Avatar billede retep Nybegynder
20. december 1999 - 15:23 #7

Lav en global variabel(Closevariable : boolean;), og implementer nedenstående:

procedure TForm1.Button1Click(Sender: TObject);
begin
  If Closevariable then
    CloseVariable := False
  else CloseVariable := True;
end;

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose := CloseVariable;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  CloseVariable := False;
end;

Herved kan du selv styre hvornår brugeren må forlade dit program, vha variablen CloseVariable. Button1Click skal/kan selvfølgelig fjernes, og implementeres der, hvor du mener at brugeren skal have lov til at forlade programmet...

Mvh
Retep
Avatar billede retep Nybegynder
20. december 1999 - 15:29 #8
Her er et eksempel på hvordan du kan gemme og hente startmenuen...

unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    ButShow: TButton;
    ButHide: TButton;
    procedure ButShowClick(Sender: TObject);
    procedure ButHideClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  wndClass:  Array[0..50] of Char;
  wndHandle: THandle;
implementation

{$R *.DFM}

procedure TForm1.ButShowClick(Sender: TObject);
begin
    ShowWindow(wndHandle, SW_SHOW)
end;

procedure TForm1.ButHideClick(Sender: TObject);
begin
  ShowWindow(wndHandle, SW_HIDE)
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
StrPCopy(@wndClass[0], 'Shell_TrayWnd');
wndHandle := FindWindow(@wndClass[0], nil);
end;

end.

Mvh
Retep
Avatar billede snifferdog Nybegynder
20. december 1999 - 17:02 #9
Jamen mange tak for hjælpen, håber i har fåget jeres point (Er ret ny her, så jeg ved ikke helt hvordan det der system virker).

Mvh. SnifferDog
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester