Avatar billede xeon Nybegynder
11. januar 2003 - 19:36 Der er 10 kommentarer

Keyboardlås

Jeg har fået lavet et program til at låse computeren med og var meget stolt af det indtil der kom en og trykkede alt+ctrl+del og lukkede det :(

Nu er mit spørgsmål om det på nogen måde er muligt at kunne forhindre dette
Avatar billede xeon Nybegynder
11. januar 2003 - 19:38 #1
Da jeg af og til har problemer med at åbne denne side vil jeg blive meget glad hvis I gider at sende jeres svar til min mail på X8ion@hotmail.com

Jeg skal nok give jer pointsene alligevel
Avatar billede Slettet bruger
11. januar 2003 - 19:52 #2
Du må ind og lege lidt med registrerings databasen. Du kan se hvilke nøgler du skal rette i her. Men det kommer an på hvilket windows version du har.

http://www.planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=35997&lngWId=1
Avatar billede xeon Nybegynder
11. januar 2003 - 20:33 #3
Kan ikke rigtigt få det til at funke i koden..
har du et forslag til hvordan den skal se ud
Avatar billede xeon Nybegynder
11. januar 2003 - 20:36 #4
Når jeg bruger den bliver de slået fra pernament
også selvom programmet er blevet lukket
Avatar billede Slettet bruger
11. januar 2003 - 21:06 #5
Du skal sætte dem tilbage til det oprindelige når du lukker programmet. Registreringsdatabasen er jo en fil.
Avatar billede Slettet bruger
11. januar 2003 - 21:41 #6
Her er en stump kode der skulle virke, men jeg har ikke testet.

Det sætter registreringsnøglen

HKCU\Software\Microsoft\Windows\
CurrentVersion\Policies\System\
DisableTaskMgr = dword:1

som også kan sættes i 'gpedit.msc' (kør fra start->run) under 'user configuration'/'adminstrative templates'/system/'ctrl+alt+del options'

////////////////////////////////////////////////////////////////
// MSDN Magazine — September 2002
// If this code works, it was written by Paul DiLascia.
// If not, I don't know who wrote it.
// Compiles with Visual Studio 6.0 and Visual Studio .NET on Windows XP.
//
#include "StdAfx.h"
#include "TaskKeyMgr.h"

#define HKCU HKEY_CURRENT_USER

// Magic registry key/value for "Remove Task Manager" policy.
LPCTSTR KEY_DisableTaskMgr =
  "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System";
LPCTSTR VAL_DisableTaskMgr = "DisableTaskMgr";

//////////////////
// Disable task-key related stuff.
//
// dwFlags  = what to disable
// bDisable = disable (TRUE) or enable (FALSE)
// bBeep    = whether to beep for illegal keys (TASKKEYS only)
//
void CTaskKeyMgr::Disable(DWORD dwFlags, BOOL bDisable, BOOL bBeep)
{
  // task manager (Ctrl+Alt+Del)
  if (dwFlags & TASKMGR) {
      HKEY hk;
      if (RegOpenKey(HKCU, KEY_DisableTaskMgr,&hk)!=ERROR_SUCCESS)
        RegCreateKey(HKCU, KEY_DisableTaskMgr, &hk);

      if (bDisable) { // disable TM: set policy = 1
        DWORD val=1;
        RegSetValueEx(hk, VAL_DisableTaskMgr, NULL,
            REG_DWORD, (BYTE*)&val, sizeof(val));

      } else { // enable TM: remove policy
        RegDeleteValue(hk,VAL_DisableTaskMgr);
      }
  }

  // task keys (Alt-TAB etc)
  if (dwFlags & TASKKEYS)
      ::DisableTaskKeys(bDisable,bBeep); // install keyboard hook

  // task bar
  if (dwFlags & TASKBAR) {
      HWND hwnd = FindWindow("Shell_traywnd", NULL);
      EnableWindow(hwnd, !bDisable);
  }
}

BOOL CTaskKeyMgr::IsTaskBarDisabled()
{
  HWND hwnd = FindWindow("Shell_traywnd", NULL);
  return IsWindow(hwnd) ? !IsWindowEnabled(hwnd) : TRUE;
}

BOOL CTaskKeyMgr::IsTaskMgrDisabled()
{
  HKEY hk;
  if (RegOpenKey(HKCU, KEY_DisableTaskMgr, &hk)!=ERROR_SUCCESS)
      return FALSE; // no key ==> not disabled

  DWORD val=0;
  DWORD len=4;
  return RegQueryValueEx(hk, VAL_DisableTaskMgr,
      NULL, NULL, (BYTE*)&val, &len)==ERROR_SUCCESS && val==1;
}
Avatar billede xeon Nybegynder
12. januar 2003 - 09:45 #7
Jeg for en error når jeg prøver koden og kan ikke rigtig finde fejlen...
Avatar billede Slettet bruger
12. januar 2003 - 10:02 #8
Hvilket os?
Avatar billede driis Nybegynder
12. januar 2003 - 16:40 #9
Hvis det er Win98 kan du ikke disable CTRL+ALT+DEL med Policies\DisableTaskMgr = 1 i registreringsdatabasen. Til gengæld er der en anden måde, som så ikke virker i NT/Win2K/XP. Hvis det skal kunne bruges på begge OS er du nødt til først at tjekke, hvilket OS, der køres og derefter vælge hvilken metode, du vil bruge til at disable CTRL+ALT+DEL med.

For at slå CTRL+ALT+DEL fra i Win98, kan du narre systemet til at tro, at screen saveren kører. Det gør du med SystemParametersInfo; husk at inkludere windows.h eller en anden fil, der deklarerer denne funktion. Du kunne så f.eks. gøre sådan her:

// Disable CTRL+ALT+DEL:
bool disableCAD()
{
  long oldVal;

  if ( SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, true, &oldVal, 0) != 0 )
    return true ;
  else
    return false ;
}

// enable CTRL+ALT+DEL:
bool enableCAD()
{
  long oldVal;

  if ( SystemParametersInfo(SPI_SETSCREENSAVERRUNNING, false, &oldVal, 0) != 0 )
    return true ;
  else
    return false ;
}
Avatar billede Slettet bruger
12. januar 2003 - 16:52 #10
Det er også beskrevet i de links jeg gav :)
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