Deaktiver taster

Tags:    delphi

<< < 12 > >>
Hvordan deaktivere man taster? fks CTRL+ALT+DEL?

og evt. får den deaktiverede taste kombination til at udføre noget andet. Fks. udføre en ShowMessage kommando?



13 svar postet i denne tråd vises herunder
4 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Du kan faktisk ikke deaktivere dem i Windows 2K/XP, men du kan i hvert fald godt i Windows 9x...måske lidt ærgeligt for os, men brandgodt for stabiliten (og sikkerheden). Du kan godt afvikle bestemte ting når brugeren trykker CTRL+ALT+Delete men dette kræver en "global hook", hvilket sådan set bare er en dll-fil, som du sender oplysninger til dit program med.
_______________________________________
-----------------------{ nife}------------------------_______________________________________



Fandt et eksempel på http://torry.net til hvordan man deaktiverer abegrebet i WinXP

Fold kodeboks ind/udKode 






-------------------------------------------------------
Jonas (Decko)
http://www.growyourownshit.com/users/Decko
-------------------------------------------------------



For ikke at kunne bruge alt+f4 kan du evt. sætte:

Action := caNone;

i formens onClose, problemet er bare at problemet ikke er lige til at lukke så. Så kan du evt. lave en en global variabel der hedder acceptClose := false. Også når man lukker på den måde du accepterer, skriver du:

acceptClose := true;
form1.Close;

også i onClose:

If acceptClose = false Then
Action := caNone;

Bare et forslag, håber du kan bruge det.

---
Hilsen Anders



Har fundet ud af det. Og nej det virker ikke at genstarte.
Her er den kode der disabler:

procedure DisableTaskMgr(bTF: Boolean);
var
reg: TRegistry;
begin
reg := TRegistry.Create;
reg.RootKey := HKEY_CURRENT_USER;

reg.OpenKey('Software', True);
reg.OpenKey('Microsoft', True);
reg.OpenKey('Windows', True);
reg.OpenKey('CurrentVersion', True);
reg.OpenKey('Policies', True);
reg.OpenKey('System', True);

if bTF = True then
begin
reg.WriteString('DisableTaskMgr', '1');
end
else if bTF = False then
begin
reg.DeleteValue('DisableTaskMgr');
end;
reg.CloseKey;
end;

// Example Call:
procedure TForm1.Button1Click(Sender: TObject);
begin
DisableTaskMgr(True);
end;


Og får at lave det om, skriver du bare i kodens i stædet:

procedure TForm1.Button1Click(Sender: TObject);
begin
DisableTaskMgr(false);
end;

Altså skrifte fra true til false. Det var bedre. Men tak får at du ville hjælpe, og at jeg har brugt noget tid hos Jonas(....)

Og så pladsen på hans forum.


Theis F. Hinz
(Shafh)
Theisf@stofanet.dk


E = MC2



Hvordan deaktivere man taster? fks CTRL+ALT+DEL?

og evt. får den deaktiverede taste kombination til at udføre noget andet. Fks. udføre en ShowMessage kommando?


Se det problem har jeg også stillet mig selv, og jeg har ledt og ledt men jeg kan ikke finde det.. Så jeg tror ikke man kan, men du kan evt. bruge det Jonas (Decko) har skrevet. Det ville jo næsten være det samme om at deaktivere CTRL+ALT+DEL. For nu når det er deaktiveret har du kun mugligheden for at lukke. Så det virke fint.

Med venlig hilsen
Frede_Manden
http://www.frederik-skov.dk



Tak for koden.. men hvordan gør jeg så med fks. ALT+F4?
Der kan man jo ikke på samme måde.



Kender desværre kun koden til Ctrl+Alt+Delete :(






-------------------------------------------------------
Jonas (Decko)
http://www.growyourownshit.com/users/Decko
-------------------------------------------------------



Da du ikke siger vilket styresystem du bruger, så har jeg denne til alt op til 98 og nt (98 selvom det ikke står. Har prøvet. Her er koden der til disable begge ting, samtidig. Håber det kan bruges. Kunne godt tænke mig nogle up... :) hi hi :

Disable alt+tab & ctrl+alt+del
Hvis man laver programmer, der på en eller anden måde skal køres færdig uden at brugeren har mulighed for at hindre dette (ud over via elværket), så kan der være brug for at slå tastkombinationerne alt+tab samt ctrl+alt+del. I de to følgende metoder er vist koden til at slå tastkombinationerne fra og til.


procedure TForm1.Button1Click(Sender: TObject);
var
dummy: integer;
begin
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, @dummy, 0);
end;

// I denne metode slås tastkombinationerne til igen
procedure TForm1.Button2Click(Sender: TObject);
var
dummy: integer;
begin
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, @dummy, 0);
end;

DISSE METODER VIRKER IKKE UNDER WINDOWS NT/2000



Theis F. Hinz
(Shafh)
Theisf@stofanet.dk


E = MC2



Jonas (de....

Hjælp.
Jeg kan ikke slå din kode af. Kan du klare den. Dvs. at ctrl+alt+delet ikke virker.

Hvad skal jeg ændre i regedit.
SVAR, MIG MEGET HURTIGT.


Theis F. Hinz
(Shafh)
Theisf@stofanet.dk


E = MC2



Jonas (de....

Hjælp.
Jeg kan ikke slå din kode af. Kan du klare den. Dvs. at ctrl+alt+delet ikke virker.

Hvad skal jeg ændre i regedit.
SVAR, MIG MEGET HURTIGT.


Theis F. Hinz
(Shafh)
Theisf@stofanet.dk


E = MC2

Har du prøvet at restarte?

Det kan være det hjælper

-----
Nunc Tutus Exitus Computarus

[Redigeret d. 05/05-04 18:05:47 af PHP-Nørden]



<< < 12 > >>
t