Board logo

标题: [系统相关] 批处理调用c#.net获取Caps Lock、Num Lock和Scroll Lock键的状态 [打印本页]

作者: pcl_test    时间: 2016-6-14 20:56     标题: 批处理调用c#.net获取Caps Lock、Num Lock和Scroll Lock键的状态

本帖最后由 pcl_test 于 2019-10-27 11:02 编辑
  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 :end
  8.     )
  9. )
  10. echo;未安装.Net Framework 2.0及其上版本组件或相关程序丢失&pause&exit
  11. :end
  12. if not exist "%tmp%\$CheckKeyLocked.exe" (
  13.     "%cscpath%" /out:"%tmp%\$CheckKeyLocked.exe" "%~f0"
  14. )
  15. "%tmp%\$CheckKeyLocked.exe"
  16. pause&exit
  17. */
  18. using System;
  19. using System.Windows.Forms;
  20. class CheckKeyLocked
  21. {
  22.     static void Main(string[] args)
  23.     {
  24.         Console.WriteLine(
  25.             "Caps Lock: "+(Control.IsKeyLocked(Keys.CapsLock)?"ON":"OFF")+"\r\n"+
  26.                 "Num Lock: "+(Control.IsKeyLocked(Keys.NumLock)?"ON":"OFF")+"\r\n"+
  27.                     "Scroll Lock: "+(Control.IsKeyLocked(Keys.Scroll)?"ON":"OFF"));
  28.     }
  29. }
复制代码

作者: codegay    时间: 2016-6-14 22:55



想了一下,哈哈,其它语言也可以直接这样调用.net。粗暴实用。
作者: codegay    时间: 2016-6-14 23:02

能把.net的源码文件搞成和批处理混编吗?
不用more了
作者: codegay    时间: 2016-6-14 23:08

好吧,我看错了。这样的写法可以不用more也可以。
作者: pcl_test    时间: 2016-6-14 23:27

本帖最后由 pcl_test 于 2017-5-12 21:39 编辑

回复 4# codegay

    嗯,原本就是混编了,去掉more那行语句,"%tmp%\$"改为"%~f0"即可




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2