Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Windows Taste Sperren (https://www.delphipraxis.net/112403-windows-taste-sperren.html)

Niely 20. Apr 2008 16:52


Windows Taste Sperren
 
Hallo,

ich bräuchte für ein Schulprojekt ein Delphi-Programm, welches mir die Windows Taste sperrt bzw Entsperrt. Kann mir da jemand weiterhelfen? WÄr echt super

Gruß

Philipp

Larsi 20. Apr 2008 16:54

Re: Windows Taste Sperren
 
Hi,
gnaz herzliches Willkommen in der Delphi-Praxis :)

Also wenn du mal die Suche bemühst wirst du da so 35 Themen finden :) Es geht mit Hooks! Aber bitte, kann jemand diesen Thread sperren :)

Helmi 20. Apr 2008 16:55

Re: Windows Taste Sperren
 
hier gibts nen Tip

DP-Maintenance 20. Apr 2008 17:22

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Open-Source" nach "Windows API / MS.NET Framework API" verschoben.
Delphi-Frage

toms 20. Apr 2008 17:31

Re: Windows Taste Sperren
 
Wenn du nur den Startbutton resp. das Startmenü deaktivieren möchtest, genügt auch dieser "unschöne" Code:

Delphi-Quellcode:
procedure ShowStartButton(bVisible: Boolean);
var
  TaskWindow, h: HWND;
begin
  if bVisible then
  begin
    h := FindWindowEx(GetDesktopWindow, 0, 'Button', nil);
    if h <> 0 then
    begin
      TaskWindow := FindWindow('Shell_TrayWnd', nil);
      ShowWindow(h, 1);
      Windows.SetParent(h, TaskWindow);
    end;
  end
  else
  begin
    h := FindWindowEx(FindWindow('Shell_TrayWnd', nil), 0, 'Button', nil);
    if h <> 0 then
    begin
      ShowWindow(h, 0);
      Windows.SetParent(h, 0);
    end;
  end;
end;

Niely 20. Apr 2008 18:02

Re: Windows Taste Sperren
 
Hi,

also mit Hook versteh ich nur Bahnhof :(


Und das mit dem Sourcecode von Toms deaktiviert ja nur den Start button :(

Also mein Problem ist folgendes:

Wir haben ein Informationstool für die Schule geschrieben. Dort bekommt jeder Schüler beim PC hochfahren eine Meldung mit den neusten News. Diese muss er akzeptieren bevor er in Windows kommt. Wenn er nein klickt, meldet er sich wieder automatisch ab. Jetzt haben wir halt nur das Problem, dass die Windows Taste noch funktioniert.
Die Taskleiste selber haben wir schon durch eine Funktion deaktiviert. Es ist halt nur der blöde Knopf :(

Hat der nicht vielleicht jemand nen Stück Sourcecode parat, den man vielleicht nur so einfügen müsste. Nen Thread mit so nem Code hatte ich hier gefunden nur ist der Sourcecode nicht mehr zu erreichen :(

toms 20. Apr 2008 18:05

Re: Windows Taste Sperren
 
Zitat:

Zitat von Niely
Hi,
also mit Hook versteh ich nur Bahnhof :(

Dann betrachte den Hook mal als eine "Blackbox" und teste mal das Beispiel.

Ich verstehe auch nicht jeden Code in der VCL und trotzdem benütze ich den Code.

lbccaleb 20. Apr 2008 18:28

Re: Windows Taste Sperren
 
Zitat:

Zitat von toms
Wenn du nur den Startbutton resp. das Startmenü deaktivieren möchtest, genügt auch dieser "unschöne" Code:

Delphi-Quellcode:
procedure ShowStartButton(bVisible: Boolean);
var
  TaskWindow, h: HWND;
begin
  if bVisible then
  begin
    h := FindWindowEx(GetDesktopWindow, 0, 'Button', nil);
    if h <> 0 then
    begin
      TaskWindow := FindWindow('Shell_TrayWnd', nil);
      ShowWindow(h, 1);
      Windows.SetParent(h, TaskWindow);
    end;
  end
  else
  begin
    h := FindWindowEx(FindWindow('Shell_TrayWnd', nil), 0, 'Button', nil);
    if h <> 0 then
    begin
      ShowWindow(h, 0);
      Windows.SetParent(h, 0);
    end;
  end;
end;

der code funzt soweit ich weiß bei vista auch nicht..

Niely 20. Apr 2008 18:31

Re: Windows Taste Sperren
 
könnte man nicht auch einfach ohne riesen Quellcode sagen, dass wenn der User die Windows Taste betätigt eine andere Funktion ausgeführt wird. Also die Windows-Taste kurze Zeit anders belegen?

lbccaleb 20. Apr 2008 18:40

Re: Windows Taste Sperren
 
schau dir nochmal in ruhe das bsp von helmi an mit den hooks, das ist gar nicht so kompliziert wie es aussieht...
du musst den code der seite nur nen bissel zerflücken, da es alles nen bissel unübersichtlich zusammen geknallt ist!

zu deiner frage: nein, denn ohne hook bekommst du das kaum ordentlich gelöst..


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:36 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz