vb登录:用VB实现Win2000用户限时登录来源: 发布时间:星期五, 2008年12月26日 浏览:2次 评论:0
作为信息社会分子不让孩子接触电脑是不明智;让孩子无限制“玩”电脑也是这都是极端作法笔者认为比较合理办法是允许孩子在限定时间段里游戏(受控制)但孩子随时可以打开电脑学习技术文化知识(不受控制)下面来看看我是如何实现这设想:
刚开始时候我把系统改成可管理性较强Windows 2000(文件系统必须采用NTFS格式)建立两个同属User组受限制帐户Game(用于游戏)和Study(学习帐户)并为他们设置相应文件、文件夹安全权限然后利用系统管理工具中“本地安全策略”(开启“当登录时间用完时自动注销用户”)结合net user命令来限制特定游戏帐号(如Game)登录时间不过并不奏效:能控制登录但登录以后却不能实现自动强制退出 既然系统提供功能不足以完成任务何不通过编程来实现呢?初步设想是用VB定制登录时间控制然后修改注册表项让在计算机启动或用户登录时自动加载需要指出是必须限制Game和Study用户对系统时间修改为此还要对Setup BIOS加口令保护有条件话最好锁上主机箱 首先VB设计:新建工程调整窗口大小到合适在窗口中添加个labelControl控件(设置caption属性为“你登录时间已用完1分钟以后注销请及时保存数据!”)和 2个timerControl控件(Timer和fairyTimer)代码如下: Option Explicit Const EWX_LOGOFF = 0 Const EWX_SHUTDOWN = 1 Const EWX_REBOOT = 2 Const EWX_FORCE = 4 Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long Private Sub fairyTimer_Timer Dim myweekday, mydate Dim mytime, hh$, mm$, ss$ mydate = Date myweekday = Weekday(mydate) mytime = Time hh$ = Left$(mytime, 2) mm$ = Mid$(mytime, 4, 2) If myweekday > 1 And myweekday < 7 Then 注释:周至周 5登录规则 If hh > 18 And hh < 19 Then Exit Sub Else End If Else 注释:双休日登录规则 If hh > 13 And hh < 15 Then Exit Sub ElseIf hh > 18 And hh < 20 Then Exit Sub Else End If End If Form.Visible = True Timer.Interval = 60000 注释:启动注销进程 End Sub Private Sub Form_Load Dim s$, cnt&, dl& cnt& = 199 s$ = String$(200, 0) dl& = GetUserName(s$, cnt) 注释:Debug.Pr Left$(s$, cnt - 1); cnt If Left$(s$, cnt - 1) = "ChenHL" Then fairyTimer.Interval = 6000 注释:启动监听精灵 Else Timer.Interval = 0 End If End Sub Private Sub Form_Unload(Cancel As Integer) Dim ret& ret& = ExitWindowsEx(EWX_FORCE Or EWX_LOGOFF, 0) End Sub Private Sub Timer_Timer Dim ret& ret& = ExitWindowsEx(EWX_FORCE Or EWX_LOGOFF, 0) End Sub 完成工程以后编译成doonus.exe可执行文件并把doonus.exe文件保存到系统%Root%\system32目录中设置相应安全权限使的除管理员的外其他用户为只读 接着修改注册表:在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run下新建字串值doonus使其数值数据为%Root%\system32\doonus.exe保存后退出 重启电脑以后发现此思路方法有 2个很严重缺陷:是windows任务管理器“应用”里能看到正在运行doonus.exe(这是暴露目标泄底!); 2是尽管不能在“应用”里结束任务doonus(结束doonus任务意味着自动注销这是设定)但可以在“进程”中结束doonus进程(这是致命漏洞!) 山穷水复疑无路柳暗花明又村突然想到了windows中“任务计划”为什么不试试呢? 双击“控制面板”“任务计划”在任务计划窗口中双击“添加任务计划”在接着打开窗口中点“下步”在接下来窗口中选择%Root%\system32目录下doonus.exe接着输入任务名称(如doonus)并点选“计算机启动时”或“登录时”(如图1)点“下步”并在接下来窗口中输入用户名“abc\administrator”(我想你不会连这也照抄吧?)、密码和确认密码(如图2)最后点“下步”完成 终于完成了重启下看看效果怎样? 介绍说明:以上在Windows 2000、VB 6.0下编译通过 0
相关文章
读者评论
发表评论 |