锁定屏幕
开发一个小的类似于记屏保的程序,锁定后只有录入用户名,密码 能打开,
请教各位大侠!
[解决办法]
可以直接用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;
}
------解决方案--------------------
开机运行那个程序就是你要录入用户名和密码的程序