資源簡介
工廠用來做鍵盤測試的,我做好了,工程部用了別一個方案,所以就分享給大家學習吧,用到了C#鍵盤鉤子,完整的項目案例哦

代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.ComponentModel;
using?System.Data;
using?System.Drawing;
using?System.Text;
using?System.Windows.Forms;
using?System.Runtime.InteropServices;
using?System.Reflection;
using?System.Diagnostics;
using?Microsoft.Win32;
namespace?Vjsdn.Tech.KeyboardHook
{
???public?partial?class?frmKeyboardHook?:?Form
???{
??????//勾子管理類?
??????private?System.Drawing.Color?red_color?=?Color.Red;
??????private?System.Drawing.Color?blue_color?=?Color.Blue;
??????private?System.Drawing.Color?default_color?=?Color.Teal;
??????private?System.Drawing.Color?color?=?Color.Blue;
??????//20181022松下公司要求對特殊鍵測試五次以后才通過這里對空格鍵強要求
??????private?int?space_canpass_count=10;//空格鍵要測試5次才能通過填入雙倍數字
??????private?string?key_name;//按下還是彈起記錄
??????private?KeyboardHookLib?_keyboardHook?=?null;
??????private?List?keyarr;//裝載所有按鍵用于清空用
??????private?List?keyarr_tmp;//裝載所有按鍵用于判斷還有多少按鍵要檢測
??????private?int?task_count;
??????private?int?current_count;
??????private?bool?test_over?=?false;
??????public?frmKeyboardHook()
??????{
?????????InitializeComponent();
??????}
??????private?void?button1_Click(object?sender?EventArgs?e)
??????{
??????????if?(button1.Text?==?“開始測試“)
??????????{
??????????????//安裝勾子?
??????????????_keyboardHook?=?new?KeyboardHookLib();
??????????????_keyboardHook.InstallHook(this.onkeydown);
??????????????label1.Text?=?“系統也就緒,請插入鍵盤開始測試“;
??????????????groupBox1.Focus();
??????????????button1.Text?=?“結束測試“;
??????????}
??????????else?{
??????????????if?(_keyboardHook?!=?null)?_keyboardHook.UninstallHook();
??????????????button1.Text?=?“開始測試“;
??????????????label1.Text?=?“系統也退出,請重新點擊開始測試“;
??????????}
??????}
??????private?void?button2_Click(object?sender?EventArgs?e)
??????{
??????????reset_keyboard();
??????????
??????}
???????//重置鍵盤,清空顏色
??????private?void?reset_keyboard()
??????{
??????????label6.Text?=?““;
??????????space_canpass_count?=?10;//重置空格鍵
??????????test_over?=?false;
??????????current_count?=?task_count;
??????????keyarr_tmp.Clear();
??????????keyarr.ForEach(i?=>?keyarr_tmp.Add(i));//重新復制待檢測數組
??????????groupBox1.Focus();
??????????for?(int?i?=?keyarr_tmp.Count-1;?i?>=?0;?i--)?{
??????????????string?str?=?keyarr_tmp[i];
??????????????Button?btn?=?(Button)this.Controls.Find(str?true)[0];
??????????????btn.BackColor?=?default_color;
??????????????
??????????}
?????????
????????
????????
??????}
??????private?void?render_key(string?name)?{?//按鍵接收一個vkcode,此函數將拼接一個控件名,然后定位去修改
??????????try
??????????{
??????????????string?str?=?name;
??????????????Button?btn?=?(Button)this.Controls.Find(str?true)[0];
??????????????btn.BackColor?=?color;
??????????}
??????????catch?{
??????????
??????????}
????
??????}
??????///??
??????///?客戶端鍵盤捕捉事件.?
??????///? ?
??????///?由Hook程序發送的按鍵信息?
??????///?是否攔截?
???
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????959??2018-10-20?21:26??Vjsdn.Tech.KeyboardHook.sln
?????文件????????187??2018-10-20?21:26??Vjsdn.Tech.KeyboardHook\App.config
?????文件??????37888??2018-10-21?21:00??Vjsdn.Tech.KeyboardHook\bin\Debug\Vjsdn.Tech.KeyboardHook.exe
?????文件????????187??2018-10-20?21:26??Vjsdn.Tech.KeyboardHook\bin\Debug\Vjsdn.Tech.KeyboardHook.exe.config
?????文件??????48640??2018-10-21?21:00??Vjsdn.Tech.KeyboardHook\bin\Debug\Vjsdn.Tech.KeyboardHook.pdb
?????文件??????22984??2018-10-21?18:33??Vjsdn.Tech.KeyboardHook\bin\Debug\Vjsdn.Tech.KeyboardHook.vshost.exe
?????文件????????187??2018-10-20?21:26??Vjsdn.Tech.KeyboardHook\bin\Debug\Vjsdn.Tech.KeyboardHook.vshost.exe.config
?????文件????????490??2018-04-12?07:35??Vjsdn.Tech.KeyboardHook\bin\Debug\Vjsdn.Tech.KeyboardHook.vshost.exe.manifest
?????文件???????9532??2018-10-21?21:00??Vjsdn.Tech.KeyboardHook\frmKeyboardHook.cs
?????文件??????68407??2018-10-21?17:31??Vjsdn.Tech.KeyboardHook\frmKeyboardHook.Designer.cs
?????文件??????11059??2018-10-21?17:31??Vjsdn.Tech.KeyboardHook\frmKeyboardHook.resx
?????文件???????4224??2018-10-20?21:28??Vjsdn.Tech.KeyboardHook\KeyboardHookLib.cs
?????文件???????1308??2018-10-20?22:58??Vjsdn.Tech.KeyboardHook\obj\Debug\DesignTimeResolveAssemblyReferences.cache
?????文件???????7241??2018-10-20?21:27??Vjsdn.Tech.KeyboardHook\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
?????文件??????????0??2018-10-20?21:26??Vjsdn.Tech.KeyboardHook\obj\Debug\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
?????文件??????????0??2018-10-20?21:26??Vjsdn.Tech.KeyboardHook\obj\Debug\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
?????文件??????????0??2018-10-20?21:26??Vjsdn.Tech.KeyboardHook\obj\Debug\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
?????文件???????1447??2018-10-21?18:33??Vjsdn.Tech.KeyboardHook\obj\Debug\Vjsdn.Tech.KeyboardHook.csproj.FileListAbsolute.txt
?????文件????????985??2018-10-21?17:31??Vjsdn.Tech.KeyboardHook\obj\Debug\Vjsdn.Tech.KeyboardHook.csproj.GenerateResource.Cache
?????文件???????2209??2018-10-20?22:37??Vjsdn.Tech.KeyboardHook\obj\Debug\Vjsdn.Tech.KeyboardHook.csprojResolveAssemblyReference.cache
?????文件??????37888??2018-10-21?21:00??Vjsdn.Tech.KeyboardHook\obj\Debug\Vjsdn.Tech.KeyboardHook.exe
?????文件???????3778??2018-10-21?17:31??Vjsdn.Tech.KeyboardHook\obj\Debug\Vjsdn.Tech.KeyboardHook.frmKeyboardHook.resources
?????文件??????48640??2018-10-21?21:00??Vjsdn.Tech.KeyboardHook\obj\Debug\Vjsdn.Tech.KeyboardHook.pdb
?????文件????????180??2018-10-20?21:28??Vjsdn.Tech.KeyboardHook\obj\Debug\Vjsdn.Tech.KeyboardHook.Properties.Resources.resources
?????文件????????545??2018-10-20?21:26??Vjsdn.Tech.KeyboardHook\Program.cs
?????文件???????1366??2018-10-20?21:26??Vjsdn.Tech.KeyboardHook\Properties\AssemblyInfo.cs
?????文件???????2898??2018-10-20?21:26??Vjsdn.Tech.KeyboardHook\Properties\Resources.Designer.cs
?????文件???????5612??2018-10-20?21:26??Vjsdn.Tech.KeyboardHook\Properties\Resources.resx
?????文件???????1110??2018-10-20?21:26??Vjsdn.Tech.KeyboardHook\Properties\Settings.Designer.cs
?????文件????????249??2018-10-20?21:26??Vjsdn.Tech.KeyboardHook\Properties\Settings.settings
............此處省略12個文件信息
- 上一篇:HtmlToXaml轉換源碼
- 下一篇:三軸運動控制C#
評論
共有 條評論