笔记本小键盘提示 C#
穷人家的孩子,买了个笔记本愣是没有小键盘提示灯。
牛的是人家给了一个大写提示灯。
更牛的是他妈给了音量关闭打开的提示灯,还他妈是橙色的!!!!!!
没办法 弄了小程序 来判断是否打开小键盘了。
本来是想用键盘钩子的,不过发现焦点在任务管理器的时候键盘钩子是无法使用的。
转念一想 干嘛那么麻烦。直接检测小键盘不就得了。
直接上代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
using System.Threading.Tasks; namespace IsNumLock
{
class Program
{
[DllImport("user32")]
public static extern int GetKeyState(int intkey);//144检测NumLock是否打开 [DllImport("Gdi32.dll")]
static extern bool TextOutA(IntPtr hdc,int x,int y ,string lpString,int l);//WIN32 参数 在HDC上面输出文字 [DllImport("user32")]
public static extern IntPtr GetDesktopWindow();//获取桌面 [DllImport("user32")]
static extern IntPtr GetWindowDC(IntPtr hwnd);//获取桌面的DC static int i = -; static IntPtr dc = GetWindowDC(GetDesktopWindow()); static void Main(string[] args)
{
i = GetKeyState();
while (true)
{
Thread.Sleep(TimeSpan.FromMilliseconds()); //阻断一百毫秒 ,不然CPU会增加
KeyDown();//这里本来想用多线程的,不过发现如果处理不当 内存会递加倒不如直接是单线程了/
}
} static void KeyDown()
{
var op = GetKeyState();
op = op == ? : op == ? : op;//这里写反了 将错就错了
if (op != i)
{
i = op;
dc = GetWindowDC(GetDesktopWindow());
TextOutA(dc, , , op == ? "Close" : "Open ", );//向屏幕输出
//这个参数 在桌面输出文字 ,应该还有一个方法来清空的桌面。不过发现会闪屏,也就算了
//就算不刷新,系统也会自动刷新。
//不会影响使用
}
}
}
}

内存占用还是可以
编译的时候,在属性里改成程序,不用控制台输出,改成64或者32 似乎没有什么影响
如果大家用的还是不错 可以加设置开机启动
代码:
var Startrun = Environment.CurrentDirectory + "\\IsNumLock.exe";//程序所在的全路径
RegistryKey RKey = Registry.CurrentUser.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
RKey.SetValue("IsNumLock", Startrun);
不用代码的方式就用手动修改注册表
win+r 打开运行 输入regedit 打开注册表
计算机\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
之后右键 新建 -字符串值 重名为程序的名字,之后在点击此项 右键修改,将程序的目录输入进去就好了包括程序自己
像是
C:\Users\Aang\source\repos\IsNumLock\IsNumLock\bin\Debug\IsNumLock.exe
如果嫌弃注册表太麻烦了可以用
https://jingyan.baidu.com/article/eae07827ad2bba1fec5485ae.html这篇文章的介绍
百度云盘的下载方式程序下载
笔记本小键盘提示 C#的更多相关文章
- Eclipse常用的快捷键
Eclipse常用快捷键 1, Ctrl+S,保存文档. 2, Tab,多行同时右移:选中多行 3, shlft+tab,多行同时左移,选中多行 4, ...
- 最新32位和64位xp,win7,win8,win10系统大全(电脑装机版)
一.系统主要特点 1.安装维护方便快速 - 全自动无人值守安装,采用万能GHOST技术,安装系统过程只需3-5分钟,适 合新旧各种机型. - 集成常见硬件驱动,智能识别+预解压技术,绝大多数硬件可以快 ...
- OSSIM安装与使用感受
下载地址 http://www.alienvault.com OSSIM通过将开源产品进行集成,从而提供一种能够实现安全监控功能的基础平台.它的目标是提供一种集中式.有组织的,能够更好地进行监测和显示 ...
- [IT] 关闭笔记本的蜂鸣提示
很久没有写什么了,今天开过workshop, 稍微放松些, 一时动念上来看看,没想到最近一篇都是2010年的了, 不得不感叹时光流逝之快啊. 那就写点什么吧. 现在每天工作用的DELL笔记本,性能差强 ...
- 笔记本启动时提示错误:amd_xata.sys数字签名无法验证
开机失败,提示adm文件无法验证 文件:Windows\system32\drivers\amd_xata.sys 状态:0xc0000428 信息:Windows 无法验证此文件的数字签名 工具 ...
- 一个.net程序员的安卓之旅-Eclipse设置代码智能提示功能
一个.net程序员的安卓之旅-代码智能提示功能 过完年回来就决心开始学安卓开发,就网上买了个内存条加在笔记本上(因为笔记本原来2G内存太卡了,装了vs2010.SQL Server 2008.orac ...
- JAVA学习笔记(二):eclipse智能提示(转)
存盘 Ctrl+s(肯定知道)注释代码 Ctrl+/取消注释 Ctrl+\(Eclipse3已经都合并到Ctrl+/了)代码辅助 Alt+/快速修复 Ctrl+1代码格式化 Ctrl+Shift+f整 ...
- 借助无线路由器+2台笔记本+Windows桥接功能,成功绕过了微信聊天记录迁移的BUG
最近入了台iphone se,在迁移微信聊天记录的时候,遇到个BUG.它的迁移流程是这样的:需要将两台手机连接到同一个WIFI上面,然后新手机扫旧手机上面的二维码,来完成导入.中途遇到的问题是: 此时 ...
- X86上搭建交叉工具链,来给龙芯笔记本编译本地工具链(未完待续)
故事的背景是,我买了一台龙芯2F的笔记本来装B. 为什么说是装B呢?因为不但操作系统是Linux,而且CPU还是龙芯的. 一般人有这么酷的装备吗?简直是装B大圣啊. 这里一定要申明一点,本人不是IT技 ...
随机推荐
- 微信小程序之巧妙的封装
巧妙的封装 暴露一个访问地址xapp.config.js module.exports = { api_host: `https://a.squmo.com/yizu` } 继续引入,加暴露api.c ...
- 第三方引擎应用场景分析--Tokudb,infobright
TokuDBTokuDB的特色:• Fractal Tree而不是B-Tree• 内部结点不仅有指向父子的指针还有Buffer区,数据写入先写buffer区,FIFO结构,写入只需要顺序添加到Buff ...
- Kali终端美化
首先安装figlet和cowsay root@sch01ar:~# apt-get install figlet root@sch01ar:~# apt-get install cowsay 用lea ...
- leetcode762
class Solution { public: bool IsPrime(int n) { ) { return false; } || n == ) { return true; } ; i &l ...
- js处理小数加减时精度失真
最近公司业务有用js处理数据加减,但有时候会出现很多位小数:后来发现是js处理小数时精度失真:为了后边不在犯类似错误,笔者觉得有必要记录下处理方法,当然处理方法有很多种,这里笔者找了一种较为简洁的方法 ...
- c# 类型化变量的var,和javascript一样的使用
.net framework推出var关键字,注意是关键字,不是什么新类型,只是编译器抛给我们的“语法糖” 1.object是所有类型的父类型,object a=1;和var a=1:的区别在于前一个 ...
- 19-EasyNetQ:用EasyNetQ.Hosepipe重新提交错误信息
EasyNetQ.Hosepipe是EasyNetQ队列管理工具.用来取回队列中的消息并重新发布这些消息.还可以用它来检测错误队列,并重试发布消息. 用法 EasyNetQ.Hosepipe.exe ...
- C#向pdf 添加水印
调用直接这样用: //PDFHelper.AddImageWatermarkPDF(path, "D://my.pdf", Server.MapPath("/HtmlTo ...
- 【原】Coursera—Andrew Ng机器学习—课程笔记 Lecture 3_Linear Algebra Review
Lecture3 Linear Algebra Review 线性代数回顾 3.1 矩阵和向量3.2 加法和标量乘法3.3 矩阵向量乘法3.4 矩阵乘法3.5 矩阵乘法的性质3.6 逆.转置 3. ...
- 如何搭建自己的SPRING INITIALIZR server
这两天在慕课学Spring boot ,用idea通过spring initializr新建项目 即使用代理连不上.无奈. 参考了 GitHub - spring-io/initializr: A w ...