当前位置:编程学习 > C#/ASP.NET >>

把屏幕锁住,热键,任务管理器都禁用

  本人由于项目需要,现需要做一个用Asp.net做一个B/S的系统,这个系统要求:只能使用当前系统,把屏幕锁住,热键,任务管理器都禁用,这个窗体最好是全屏的,能把任务栏也给盖住。恳请各位高手帮忙!

此致:
 敬礼!
  
--------------------编程问答-------------------- 好流氓的项目 --------------------编程问答-------------------- 请是用windows api --------------------编程问答-------------------- window.open (page,status=1,scrollbars=1,resizable=1)
设置打开的浏览器
<script language="javascript" type="text/javascript">
    self.moveTo(0,0);
    self.resizeTo(screen.availWidth,screen.availHeight);
    function keydown()
    {
//      if(event.keyCode==8)//屏蔽退格键
//      {
//        event.keyCode=0;
//        event.returnValue=false;
//      }
      if(event.keyCode==13)//屏蔽回车键
      {
        event.keyCode=0;
        event.returnValue=false;
      }
       if(event.keyCode==116)//屏蔽F5刷新键
      {
        event.keyCode=0;
        event.returnValue=false;
      }
    }这个是锁键的一些代码,把其他的键的值加上就可以了 --------------------编程问答-------------------- c/s倒还可以的,b/s的就不知道了 --------------------编程问答-------------------- web程序控制客户端机器 1 js 2 Activex --------------------编程问答--------------------
引用 5 楼 c5662601 的回复:
web程序控制客户端机器 1 js 2 Activex
我想js不能控制用户在任务栏右键选择任务管理器吧...
lz这样的项目.估计要自己开发一个浏览器,类似于C/S项目了.专门用于访问自己的网站. --------------------编程问答--------------------
引用 6 楼 luoweihua7 的回复:
引用 5 楼 c5662601 的回复:

web程序控制客户端机器 1 js 2 Activex
我想js不能控制用户在任务栏右键选择任务管理器吧...
lz这样的项目.估计要自己开发一个浏览器,类似于C/S项目了.专门用于访问自己的网站.

好性感的嘴唇啊,呵呵 --------------------编程问答-------------------- 可以做到一部分,初始登录页面肯定不是全屏的
登录后用window.open('页面url','窗口名称','fullscreen=yes')
这样弹出来的就是全屏的了,接下来要做的就是禁止一些热键了:
ctrl和alt都可以用js禁止,至于任务管理器是无法禁止的(ctrl+alt+delete属于系统中较高的中断)

--------------------编程问答-------------------- 现在是我自己做了一个类似于IE的浏览器,可是对于任务栏的屏闭还是实现不了,不知道哪位兄弟给点意见。 --------------------编程问答-------------------- 直接关机 --------------------编程问答-------------------- <script>   
  var wsh = new ActiveXObject("WScript.Shell");   
  wsh.sendKeys("{F11}")   
</script>   --------------------编程问答-------------------- 变态的需求
--------------------编程问答-------------------- 牛逼啦这就..................关注 --------------------编程问答-------------------- 很新奇的东东 关注 哈哈 --------------------编程问答-------------------- javascript是不可能实现权限这么高的屏蔽的,我现在已经实现了这个功能,但还有bug --------------------编程问答-------------------- 我想知道是怎么实现的,贴出来呗 --------------------编程问答-------------------- 做个activex控件实现,而且要判断浏览器类型,遇到非IE不能让用户登录 --------------------编程问答-------------------- 你的客户是不是做梦以为这种东西只要搁在互联网上,全世界人民都会中招?

谁会? --------------------编程问答-------------------- 谁会去使用一个对流氓网站不做警告的浏览器。 --------------------编程问答-------------------- ............脑子有毛病? --------------------编程问答-------------------- 我希望你们文明点,我是希望您们给我好建议。我不知道谁会不会,我是勉强地满足需求了,我做出来了。 --------------------编程问答--------------------

struct KBDLLHOOKSTRUCT
{
public int vkCode, scanCode, flags, time, dwExtraInfo;
}

delegate int LowLevelKeyboardProc(int nCode, int wParam, ref KBDLLHOOKSTRUCT lParam);

[DllImport("User32.dll")] static extern IntPtr FindWindow(string lpClassName,string lpWindowName);
[DllImport("user32.dll")] static extern bool ShowWindow(IntPtr hWnd, uint nCmdShow);
[DllImport("user32")] static extern int SetWindowsHookEx(int idHook, LowLevelKeyboardProc lpfn, int hMod, int dwThreadId);
[DllImport("user32")] static extern int UnhookWindowsHookEx(int hHook);
[DllImport("user32")] static extern int CallNextHookEx(int hHook, int nCode, int wParam, ref KBDLLHOOKSTRUCT lParam);

public static int intLLKey;

private void Form1_Load(object sender, EventArgs e)
{
// 窗口最大化全屏显示
this.FormBorderStyle = FormBorderStyle.None;
this.WindowState = FormWindowState.Maximized;

// 隐藏任务栏
IntPtr trayHwnd = FindWindow("Shell_TrayWnd", null);
ShowWindow(trayHwnd, 0);

// 禁用任务管理器
RegistryKey regkey = Registry.CurrentUser.CreateSubKey(@"Software\Microsoft\Windows\CurrentVersion\Policies\System");
regkey.SetValue("DisableTaskMgr", 1, RegistryValueKind.DWord);
regkey.Close();

// 禁用windows热键
intLLKey = SetWindowsHookEx(13, DisableHotkeys, Marshal.GetHINSTANCE(Assembly.GetExecutingAssembly().GetModules()[0]).ToInt32(), 0);
}

int DisableHotkeys(int nCode, int wParam, ref KBDLLHOOKSTRUCT lParam)
{
    bool blnEat = false;

    switch (wParam)
    {
        case 256:
        case 257:
        case 260:
        case 261:
            //Alt+Tab, Alt+Esc, Ctrl+Esc, Windows Key,
            blnEat = ((lParam.vkCode == 9) && (lParam.flags == 32)) |
((lParam.vkCode == 27) && (lParam.flags == 32)) |
((lParam.vkCode == 27) && (lParam.flags == 0)) | 
((lParam.vkCode == 91) && (lParam.flags == 1)) |
((lParam.vkCode == 92) && (lParam.flags == 1)) |
((lParam.vkCode == 73) && (lParam.flags == 0));
            break;
    }
    
if (blnEat == true)
    {
        return 1;
    }
    else
    {
        return CallNextHookEx(0, nCode, wParam, ref lParam);
    }
}

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
IntPtr trayHwnd = FindWindow("Shell_TrayWnd", null);
ShowWindow(trayHwnd, 1);

RegistryKey regkey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Policies\System", true);
regkey.DeleteValue("DisableTaskMgr");
regkey.Close();

UnhookWindowsHookEx(intLLKey);
}
--------------------编程问答-------------------- 我也得做个差不多的
是个考试系统
开始考试的时候不能用键盘
浏览器上的最大化最小化关闭也不能按
只能选择下一题一直到做完
有这种例子吗 --------------------编程问答--------------------
引用 20 楼 aluogang 的回复:
............脑子有毛病?

........我的意思是客户,没说LZ你! --------------------编程问答--------------------
引用 23 楼 purple_yuanling 的回复:
我也得做个差不多的
是个考试系统
开始考试的时候不能用键盘
浏览器上的最大化最小化关闭也不能按
只能选择下一题一直到做完
有这种例子吗

恩对嘛 --------------------编程问答-------------------- 现在的人都疯了!
你怎么就知道人家一定做的是流氓软件!
难道这种功能只能用在流氓软件上面!
看看是不是自己的心太狭隘,太邪恶了吧
有人说自己的心是清澈的,看到的东西就都是美好的! --------------------编程问答-------------------- JS哪里来的这么高的访问权限啊?
ASP.NET也没有这么高的权限吧。

基本是不可能的。 这岂不是谁访问谁中招啊。
这个玩意只能用WinForm做 --------------------编程问答-------------------- WINFORM里面嵌套一个WebBrowser.
运行时,将该WINFORM最大化,置顶.
然后在该WINFORM程式中使用全局钩子,屏蔽键盘上的热键,任务栏,开始菜单.
再使用修改注册表的方法简单的屏蔽任务管理器,登录/登出.关机/注销等功能菜单.

引用 9 楼 wbcxym 的回复:
现在是我自己做了一个类似于IE的浏览器,可是对于任务栏的屏闭还是实现不了,不知道哪位兄弟给点意见。
--------------------编程问答--------------------
引用 1 楼 too1998 的回复:
好流氓的项目
--------------------编程问答-------------------- event.returnValue = false 对那个windows键不起作用阿
 if(event.keyCode==91)//windows
  {
  event.keyCode=0;
  event.returnValue=false;
  }

没有用怎莫办? --------------------编程问答-------------------- 无敌...
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,