首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

锁定荧屏

2013-04-20 
锁定屏幕开发一个小的类似于记屏保的程序,锁定后只有录入用户名,密码 能打开,请教各位大侠![解决办法]可以

锁定屏幕
开发一个小的类似于记屏保的程序,锁定后只有录入用户名,密码 能打开,
请教各位大侠!
[解决办法]
可以直接用LockWorkStation API函数
[解决办法]
LockWorkStation API函数
[解决办法]
做一个全屏的窗体,设置永远在前面的属性,屏蔽系统快捷键。
[解决办法]
1.我做过一个很简单的,就是把窗体的标题栏,最大最小化,关闭等等,全都取消。
然后运行的时候就全屏,屏蔽几个常用的快捷键。然后在窗体自己定义的位置放一个文本编辑框,要取输入密码。
这密码不用数据库记录,定义在全局变量里就行了。或者如果为了方便,可以写在ini里。
这样除了密码输对能进入屏幕,否则只能关机重启了。
2.如果要更安全,最好是把这类程序增加到开机自己启动里面。这样非要输入密码才能进去了
3.自定义一种组合键退出程序的,组合键设置复杂点,此功能是为了避免自己忘记密码。
[解决办法]
下在是我的做法,看是不是你想要的效果
TRegistry * reg = new TRegistry();   //修改注册表禁用win键
 reg->RootKey=HKEY_LOCAL_MACHINE;

 reg->OpenKey ( "\\SYSTEM\\CurrentControlSet\\Control\\Keyboard Layout", true ) ;
 char data[24]; // “00,00,00,00,00,00,00,00,03,00,00,00,00,00,5b,e0,00,00,5c,e0,00,00,00,00”;

 for(int i=0;i<8;i++)
    data[i]=0;

 data[8]=0x03;
 for(int i=0;i<5;i++)
    data[9+i]=0;

 data[14]=0x5b;
 data[15]=0xe0;
 data[16]=0;
 data[17]=0;
 data[18]=0x5c;
 data[19]=0xe0;

 for(int i=0;i<4;i++)
    data[20+i]=0;

 reg->WriteBinaryData("Scancode Map",data,24);

 reg->CloseKey() ;


  HWND hw,hb;  //隐藏任务栏
  hw=FindWindow("Shell_TrayWnd",0);

  hb=FindWindowEx(hw,   0,   "Button",0);

//  EnableWindow(hw,false);
//  EnableWindow(hb,false);

  ShowWindow(hw,SW_HIDE);
  ShowWindow(hb,SW_HIDE);

  hw=FindWindow("Progman",0);// 隐藏桌面图标
  ShowWindow(hw,SW_HIDE);

  Left=(Screen->Width-Width)/2;
  Top=(Screen->Height-Height)/2;


  reg->RootKey=HKEY_CURRENT_USER; //修改注册表禁用任务管理器

  reg->OpenKey ( "\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies", true ) ;
  if( !reg->ValueExists ( "System" ) )
     reg->CreateKey("System");
  char dat[4];
  for(int i=0;i<3;i++)
     dat[i]=0;
  dat[3]=0x1;

  reg->OpenKey ( "\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", true ) ;
  reg->WriteBinaryData("DisableTaskMgr",dat,4);
  reg->CloseKey() ;

  String path=ExtractFilePath(Application->ExeName); //开机运行

  reg->RootKey = HKEY_LOCAL_MACHINE;
  if( reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run", true) )
      reg->WriteString("bdc",path+"bdc.exe");
  else
      MessageBox(Handle,"打开注册表失败。","错误",MB_OK
[解决办法]
MB_ICONERROR);

  reg->CloseKey();
  delete reg;
 }
------解决方案--------------------


开机运行那个程序就是你要录入用户名和密码的程序

热点排行