Einzelnen Beitrag anzeigen

StefanG

Registriert seit: 23. Feb 2006
74 Beiträge
 
#7

Re: Suche prog, daß alt+TAB und Startmenü etc. verhindert!

  Alt 25. Okt 2006, 09:23
Zitat:
Was ich möchte ist:
alt+TAB verhindern
Hierfür reicht ein globaler Hotkey :
Code:
RegisterHotKey(0,AltTabAtom,MOD_ALT,VK_TAB)
AltTabAtom ist hierbei ein Atom, das du mit GlobalAddAtom erzeugen kannst. Um die "Pseudosperre" wieder zu entfernen rufst du einfach
Code:
UnregisterHotKey(0,AltTabAtom)
auf.

Zitat:
Windows-Taste verhindern

Das kannst du mit einem Tastaturhook erreichen

Code:
SetWindowsHookEx(WH_GETMESSAGE, @MsgFilterFunc, HInstance, 0);
in der Callbackfunktion fängst du dann alle Win+key Tastenkombinationen ab :

Code:
function MsgFilterFunc(Code: Integer; wParam, lParam: Longint): Longint;
var
  Kill: boolean;
begin
  Result := 0;
  if (Code < 0) or (wParam = PM_NOREMOVE) then
    Result := CallNextHookEx(HookHandle, Code, wParam, lParam)
  else begin
    Kill := False;
    case TPMsg(lParam)^.message of
      WM_SYSCOMMAND:
        if TPMsg(lParam)^.wParam = SC_TASKLIST then Kill := True;

      WM_HOTKEY:
        case ((TPMsg(lParam)^.lParam and $00FF0000) shr 16) of
          VK_D,     // Win+D       ==> Desktop
          VK_E,     // Win+E       ==> Explorer
          VK_F,     // Win+F+(Ctrl) ==> Find:All (and Find: Computer)
          VK_M,     // Win+M       ==> Minimize all
          VK_R,     // Win+R       ==> Run program.
          VK_F1,    // Win+F1       ==> Windows Help
          VK_PAUSE: // Win+Pause   ==> Windows system properties
            Kill := True;
        end;
    end;
    if Kill then TPMsg(lParam)^.message := WM_NULL;
        Result := CallNextHookEx(HookHandle, Code, wParam, lParam)
  end;
end;
damit fängst du die ganzen Nachrichten ab und sendest stattdessen ein WM_NULL

Zitat:
am besten, daß sich gleich die ganze Taskleiste nicht mehr anklicken läßt.
Code:
procedure DisableTaskbar(aDisable : Boolean);
var
  wnd: HWND;
begin
  wnd := FindWindow('Shell_TrayWnd','');
  if wnd <> 0 then
   EnableWindow(wnd, (not aDisable));
end;
mit FindWindow suchst du dir das Fensterhandle der Taskleiste. Shell_TrayWnd ist hierbei der Classname der Taskbar. EnableWindow Aktiviert/Deaktiviert das
entsprechende Fenster dann


Den Taskmanager kannst du auf verschiedene Arten "sperren". Einige davon beinhalten einfach das Prinzip "Security through obscurity". Dann ist es möglich den TM in der Registry zu disablen.
Die wohl sicherste Methode ist ein Globaler API Hook auf die Funktion WlxLoggedOnSAS oder das implementieren einer eigenen GINA

für genauere Infos würd ich dann aber wirklich ICQ bevorzugen -.-
  Mit Zitat antworten Zitat