找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
楼主: 老刘1号

[其他] [20170624更新]键鼠锁定工具-BlockUserInput

[复制链接]
 楼主| 发表于 2017-3-30 13:00:21 | 显示全部楼层
回复 8# pcl_test


    也好……忘了有Start这码事情了
话说斑竹你能不能不要学这么快……我刚开始学批你在学VBS……我学了VBS你在学PS……VBS学了没多久又 玩C#
酱紫让人压力山大啊……
发表于 2017-3-30 12:53:40 | 显示全部楼层
本帖最后由 pcl_test 于 2017-3-30 12:57 编辑

回复 6# 老刘1号
ahk的BlockInput底层调用的就是这个API
回复 7# 老刘1号
第三方的特定之一就是可以独立运行,start即可
 楼主| 发表于 2017-3-30 12:51:30 | 显示全部楼层
回复 5# pcl_test


    有个缺点,锁定的时候CMD需要需要干其他的事情啊……
总不能就一直等着吧……
 楼主| 发表于 2017-3-30 12:45:11 | 显示全部楼层
回复 5# pcl_test


    也是最近发现User32里面有个API……
User32.dll真是一个神奇的东东
发表于 2017-3-30 12:32:14 | 显示全部楼层
本帖最后由 pcl_test 于 2017-3-30 12:35 编辑
  1. /*&cls
  2. @echo off
  3. set "netpath=%systemroot%\Microsoft.NET\Framework"
  4. for /f "delims=" %%a in ('dir /ad /b "%netpath%\v?.*"') do (
  5.     if exist "%netpath%\%%a\csc.exe" (
  6.         set "cscpath=%netpath%\%%a\csc.exe"
  7.         goto :0
  8.     )
  9. )
  10. echo;未安装.Net Framework 2.0及其上版本组件或相关程序丢失&pause&exit/b
  11. :0
  12. "%cscpath%" /out:"$BlockInput.exe" "%~f0"
  13. "$BlockInput.exe"
  14. pause&exit
  15. */
  16. using System;
  17. using System.Threading;
  18. using System.Runtime.InteropServices;
  19. class BlockUserInput
  20. {
  21.     [DllImport("user32.dll")]
  22.     static extern bool BlockInput(bool BlockIt);
  23.     static void Main(string[] args)
  24.     {
  25.         if(args.Length<1){
  26.             Console.WriteLine("Blocks keyboard and mouse input events.\r\n"+
  27.                 "Usage:\r\n$BlockInput.exe seconds  //The valid range is 0 ~ 86400.");
  28.             Thread.Sleep(2000);
  29.         }else{
  30.             try{
  31.                 int num = Convert.ToInt32(args[0].ToString());
  32.                 if(num>=0 && num<=86400){
  33.                     Console.WriteLine("Blocking...");
  34.                     BlockInput(true);
  35.                     Thread.Sleep(num*1000);
  36.                 }else Console.WriteLine("Input out of range.");
  37.             }catch{Console.WriteLine("Enter an integer between 0 and 86400.");}
  38.         }
  39.     }
  40. }
复制代码

评分

参与人数 1技术 +1 收起 理由
老刘1号 + 1 666,Net直接生成Exe

查看全部评分

发表于 2017-3-30 12:31:48 | 显示全部楼层
本帖最后由 pcl_test 于 2017-3-30 12:40 编辑

看了下大小,很大,发现原来是ahk封装的
  1. #NoEnv
  2. #NoTrayIcon
  3. if A_OSVersion in WIN_8,WIN_8.1
  4. {
  5. MsgBox ,,提示,暂不支持Win8及以上系统,10
  6. ExitApp
  7. }
  8. Else
  9. {
  10. BlockInput,On   ;由于 Windows API 的特性,按下 Ctrl+Alt+Del 将重新启用输入
  11. sleep,%1%000
  12. BlockInput,Off
  13. }
复制代码
发表于 2017-3-30 02:20:45 | 显示全部楼层
已收录到 Batch-CN

评分

参与人数 1技术 +1 收起 理由
老刘1号 + 1 谢谢

查看全部评分

 楼主| 发表于 2017-3-10 22:27:30 | 显示全部楼层
听说联系Crlf斑竹可以放第三方库~
回复 1# CrLf
回复 2# CrLf
回复 3# CrLf
回复 4# CrLf
回复 5# CrLf
回复 CrLf
回复 CrLf
回复 CrLf
回复 Cr CrLf
回复 lf CrLf
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 23:20 , Processed in 0.015886 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表