俗話說咳焚,一個好漢十個幫洽损,眾人拾柴火焰高等都說明一個道理,有更多的資源革半,更豐富的積累碑定,都是助你走向成功,走向頂峰的推動力又官。
本篇繼續(xù)繼續(xù)整理優(yōu)化已有的共用類庫延刘,并繼續(xù)發(fā)表隨筆介紹公用類庫的接口方法以及詳細使用操作,力求給自己繼續(xù)優(yōu)化六敬,積攢更豐富的公用類庫資源碘赖,加深了解的同時,也給大家展現(xiàn)公用類庫好的方面。
本篇的公用類庫的介紹主題是設備相關的部分普泡,包括計算機硬件信息(如系統(tǒng)信息播掷、電腦CPU、磁盤撼班、網(wǎng)卡歧匈、內(nèi)存等)、聲音播放控制砰嘁、 鍵盤屬性及操作件炉、全局鍵盤按鍵鉤子、鼠標屬性及操作般码、鼠標按鍵鉤子等類庫信息妻率。
1、****WAV聲音格式文件播放輔助類AudioHelper
**實現(xiàn)效果 **
1)本輔助類主要是用來方便實現(xiàn)播放WAV聲音格式文件的操作板祝。
2)聲音播放可以用在特定事件的觸發(fā)上宫静,如來電、收到消息等券时,經(jīng)典的就如QQ收到信息孤里,咳嗽的聲音,使用聲音播放可以提高更好的用戶體驗橘洞。
實現(xiàn)代碼
1)輔助類提供的方法接口如下所示:
/// <summary>
/// 播放 .wav 格式的聲音文件
/// </summary>
/// <param name="location">聲音文件路徑 </param>
public static void Play(string location)
/// <summary>
/// 播放 .wav 格式的聲音文件
/// </summary>
/// <param name="playMode">播放聲音的枚舉模式捌袜。默認為AudioPlayMode.Background。</param>
/// <param name="location">聲音文件路徑</param>
public static void Play(string location, AudioPlayMode playMode)
/// <summary>
/// 播放 .wav 格式的聲音文件
/// </summary>
/// <param name="stream"><see cref="T:System.IO.Stream"></see>聲音文件的流對象</param>
/// <param name="playMode">播放聲音的枚舉模式炸枣。默認為AudioPlayMode.Background虏等。</param>
public static void Play(Stream stream, AudioPlayMode playMode)
/// <summary>
/// 播放 .wav 格式的聲音文件
/// </summary>
/// <param name="data">聲音文件的字節(jié)數(shù)組</param>
/// <param name="playMode">播放聲音的枚舉模式。默認為AudioPlayMode.Background适肠。</param>
public static void Play(byte[] data, AudioPlayMode playMode)
/// <summary>
/// 播放系統(tǒng)聲音
/// </summary>
public static void PlaySystemSound(SystemSound systemSound)
/// <summary>
/// 停止正在后臺播放的聲音
/// </summary>
public static void Stop()
2) 輔助類AudioHelper的使用例子代碼如下所示
private void btnPlaySound_Click(object sender, EventArgs e)
{
try
{
AppConfig config = new AppConfig();
string SoundFilePath = config.AppConfigGet("SoundFilePath");
AudioHelper.Play(SoundFilePath);//AudioHelper.Play("ringin.wav");
}
catch (Exception ex)
{
LogHelper.Error("沒找到聲音文件" , ex);
}
}
2霍衫、聲音文件播放操作輔助類SoundPlayerHelper。除了MP3聲音文件外侯养,還可以播放WAV格式敦跌、midi格式聲音文件。
**實現(xiàn)效果 **
1)本輔助類主要是用來方便實現(xiàn)MP3文件逛揩、WAV文件柠傍、Midi文件等聲音的播放操作,并提供音量控制操作功能辩稽。
實現(xiàn)代碼
1)輔助類提供的方法接口如下所示:
/// <summary>
/// 播放聲音文件
/// </summary>
/// <param name="soundFileName">聲音文件路徑(可以是MP3惧笛、WAV、Midi等聲音文件)</param>
/// <param name="Repeat">是否重復播放</param>
public static void Play(string soundFileName,bool Repeat)
/// <summary>
/// 播放聲音嵌入資源字節(jié)數(shù)組
/// </summary>
/// <param name="soundEmbeddedResource">聲音文件嵌入資源字節(jié)數(shù)組(可以是MP3逞泄、WAV患整、Midi等聲音格式)</param>
/// <param name="Repeat">是否重復播放</param>
public static void Play(byte[] soundEmbeddedResource, bool Repeat)
/// <summary>
/// 暫停播放
/// </summary>
public static void Pause()
/// <summary>
/// 停止播放
/// </summary>
public static void Stop()
/// <summary>
/// 清除操作
/// </summary>
public static void Dispose()
/// <summary>
/// 獲取或設置音量的百分比
/// </summary>
/// <returns></returns>
public static float VolumePercent
/// <summary>
/// 獲取音量
/// </summary>
/// <returns></returns>
public static float GetVolume()
/// <summary>
/// 設置音量
/// </summary>
/// <param name="volume"></param>
public static void SetVolume(float volume)
/// <SUMMARY>
/// 返回當前狀態(tài)播放:播放静檬,暫停,停止等
/// </SUMMARY>
public static string Status
2)輔助類SoundPlayerHelper的使用例子代碼如下所示
bool isPlay = false;
private void btnPlayMp3_Click(object sender, EventArgs e)
{
if (!isPlay)
{
string mp3File = Path.Combine(Application.StartupPath, "傷不起.mp3");
string waveFile = Path.Combine(Application.StartupPath, "ringin.wav");
string midFile = @"C:\Windows\Media\onestop.mid";
SoundPlayerHelper.Play(mp3File, false); //播放MP3格式文件
//SoundPlayerHelper.Play(waveFile, true); //播放WAV格式文件
//SoundPlayerHelper.Play(midFile, false); //播放Midi格式文件
this.btnPlayMp3.Text = "停止播放";
}
else
{
SoundPlayerHelper.Stop();//停止播放
//SoundPlayerHelper.Pause();//暫停播放
this.btnPlayMp3.Text = "播放聲音";
}
string statu = SoundPlayerHelper.Status;
this.Text = statu;
isPlay = !isPlay;
}
private void trackBar1_Scroll(object sender, EventArgs e)
{
//設置音量
float vol = SoundPlayerHelper.VolumePercent;
SoundPlayerHelper.VolumePercent = trackBar1.Value;
}
3并级、提供用戶硬件唯一信息的輔助類 FingerprintHelper
**實現(xiàn)效果 **
1)本輔助類主要是用來方便實現(xiàn)獲取用戶硬件的相關信息拂檩,根據(jù)用戶各種硬件(CPU、網(wǎng)卡嘲碧、磁盤稻励、主板等)標識信息,獲取一個8位唯一標識數(shù)字愈涩。
2)本輔助類只提供了一個公共的方法Value望抽,它集合了CPU、網(wǎng)卡履婉、磁盤煤篙、主板等信息,通過這個8位的數(shù)字標識毁腿,我們可以唯一區(qū)分一臺電腦辑奈,類似我們每個人的指紋信息一樣,很少會發(fā)生重復的現(xiàn)象已烤,可以用在一些關鍵的注冊授權(quán)機制上鸠窗。
實現(xiàn)代碼
1)輔助類提供的方法接口如下所示:
/// <summary>
/// 根據(jù)用戶各種硬件(CPU、網(wǎng)卡胯究、磁盤稍计、主板等)標識信息,
/// 獲取一個8位唯一標識數(shù)字
/// </summary>
public static string Value()
/// <summary>
/// 獲取硬件的標識信息
/// </summary>
private static string identifier(string wmiClass, string wmiProperty, string wmiMustBeTrue)
/// <summary>
/// 獲取硬件的標識信息
/// </summary>
private static string identifier(string wmiClass, string wmiProperty)
/// <summary>
/// 獲取CPU信息
/// </summary>
private static string cpuId()
/// <summary>
/// 獲取BOIS主板標識信息
/// </summary>
private static string biosId()
/// <summary>
/// 獲取主硬盤的標識信息
/// </summary>
/// <returns></returns>
private static string diskId()
/// <summary>
/// 獲取主板的標識信息
/// </summary>
/// <returns></returns>
private static string baseId()
/// <summary>
/// 獲取主視頻控制器標識信息
/// </summary>
/// <returns></returns>
private static string videoId()
/// <summary>
/// 獲取第一個可用網(wǎng)卡信息
/// </summary>
/// <returns></returns>
private static string macId()
/// <summary>
/// 轉(zhuǎn)換內(nèi)容為8位數(shù)字
/// </summary>
private static string pack(string text)
2)輔助類FingerprintHelper的使用例子代碼如下所示
string identity = FingerprintHelper.Value();
MessageUtil.ShowTips(identity);
4裕循、獲取系統(tǒng)信息臣嚣、電腦CPU、磁盤剥哑、網(wǎng)卡硅则、內(nèi)存等相關信息輔助類 HardwareInfoHelper
**實現(xiàn)效果 **
1)本輔助類主要是用來方便獲取系統(tǒng)信息、電腦CPU星持、磁盤抢埋、網(wǎng)卡弹灭、內(nèi)存等相關信息督暂。
實現(xiàn)代碼
1)輔助類提供的方法接口如下所示:
/// <summary>
/// 獲得盤符為drvID的硬盤序列號,缺省為C
/// </summary>
/// <param name="drvID">盤符穷吮,如"C"</param>
/// <returns></returns>
public static string HDVal(string drvID)
/// <summary>
/// 獲取默認C盤的磁盤序列號
/// </summary>
/// <returns></returns>
public static string HDVal()
/// <summary>
/// 獲取硬盤ID
/// </summary>
/// <returns></returns>
public static string GetDiskID()
/// <summary>
/// 獲取硬盤Model的信息
/// </summary>
public static string GetDiskModel()
/// <summary>
/// 獲得Cpu使用率
/// </summary>
public static int GetCpuUsage()
/// <summary>
/// 獲取CPU的ID
/// </summary>
/// <returns></returns>
public static string GetCPUId()
/// <summary>
/// 獲取CPU的名稱
/// </summary>
/// <returns></returns>
public static string GetCPUName()
/// <summary>
/// 返回USB盤符列表
/// </summary>
public static List<string> GetUSBDriveLetters()
/// <summary>
/// 獲得硬盤信息
/// </summary>
public static HardDiskInfo GetHDInfo(byte driveIndex)
#region 其他數(shù)據(jù)
/// <summary>
/// 獲取MAC地址
/// </summary>
/// <returns></returns>
public static string GetMacAddress()
/// <summary>
/// 獲取IP地址
/// </summary>
public static string GetIPAddress()
/// <summary>
/// 獲取操作系統(tǒng)的登錄用戶名
/// </summary>
public static string GetUserName()
/// <summary>
/// 獲取計算機名
/// </summary>
public static string GetComputerName()
/// <summary>
/// 獲取PC類型
/// </summary>
public static string GetSystemType()
/// <summary>
/// 獲取物理內(nèi)存
/// </summary>
public static string GetTotalPhysicalMemory()
#endregion
2)輔助類HardwareInfoHelper的使用例子代碼如下所示
private void btnComputer_Click(object sender, EventArgs e)
{
string computerName = HardwareInfoHelper.GetComputerName();
string userName = HardwareInfoHelper.GetUserName();
string systemType = HardwareInfoHelper.GetSystemType();
string cpuid = HardwareInfoHelper.GetCPUId();
string cpuName = HardwareInfoHelper.GetCPUName();
int cpuUsage = HardwareInfoHelper.GetCpuUsage();
string diskId = HardwareInfoHelper.GetDiskID();
string ip = HardwareInfoHelper.GetIPAddress();
string macAddress = HardwareInfoHelper.GetMacAddress();
string memery = HardwareInfoHelper.GetTotalPhysicalMemory();
StringBuilder sb = new StringBuilder();
sb.AppendFormat("ComputerName:\t {0} \r\n", computerName);
sb.AppendFormat("UserName:\t {0} \r\n", userName);
sb.AppendFormat("SystemType:\t {0} \r\n", systemType);
sb.AppendFormat("CPU ID:\t {0} \r\n", cpuid);
sb.AppendFormat("CPU Name:\t {0} \r\n", cpuName);
sb.AppendFormat("CPU Usage:\t {0} \r\n", cpuUsage);
sb.AppendFormat("Disk Id:\t {0} \r\n", diskId);
sb.AppendFormat("IP:\t {0} \r\n", ip);
sb.AppendFormat("MacAddress:\t {0} \r\n", macAddress);
sb.AppendFormat("TotalPhysicalMemory:\t {0} \r\n", memery);
MessageUtil.ShowTips(sb.ToString());
string identity = FingerprintHelper.Value();
MessageUtil.ShowTips(identity);
}
5逻翁、鍵盤操作輔助類KeyboardHelper,提供屬性訪問敲擊那個鍵捡鱼,以及發(fā)送軟鍵盤消息等操作八回。
**實現(xiàn)效果 **
1)本輔助類主要是用來方便實現(xiàn)訪問鍵盤的大寫鍵、數(shù)字鍵等鍵的開啟情況,另外判斷CTRL缠诅、Shift溶浴、Alt鍵是否按下的操作,輔助類也封裝了發(fā)送軟鍵盤消息等操作管引。
實現(xiàn)代碼
1)輔助類提供的方法接口如下所示:
#region 鍵盤屬性
/// <summary>
/// 判斷ALT建是否按下
/// </summary>
public static bool AltKeyDown
/// <summary>
/// 判斷Caps Lock大寫鍵是否打開
/// </summary>
public static bool CapsLock
/// <summary>
/// 判斷CTRL鍵是否按下
/// </summary>
public static bool CtrlKeyDown
/// <summary>
/// 判斷Num Lock 數(shù)字鍵是否打開
/// </summary>
public static bool NumLock
/// <summary>
/// 判斷Scroll Lock滾動鎖定鍵是否打開
/// </summary>
public static bool ScrollLock
/// <summary>
/// 判斷Shift鍵是否按下
/// </summary>
public static bool ShiftKeyDown
#endregion
#region 操作方法
/// <summary>
/// 發(fā)送一個或多個擊鍵到活動窗口士败。
/// </summary>
/// <param name="keys">定義發(fā)送鍵的字符串。特殊控制鍵代碼SHIFT(+),CTRL(^), ALT(%)褥伴。Send("{SPACE}")谅将、Send("+{TAB}")</param>
public static void SendKeys(string keys)
/// <summary>
/// 發(fā)送一個或多個擊鍵到活動窗口
/// </summary>
/// <param name="keys">定義發(fā)送鍵的字符串.特殊控制鍵代碼SHIFT(+),CTRL(^), ALT(%)。Send("{SPACE}")重慢、Send("+{TAB}")</param>
/// <param name="wait">指定是否要等待應用程序繼續(xù)之前得到處理的擊鍵饥臂。默認為True。
/// </param>
public static void SendKeys(string keys, bool wait)
#endregion
2)輔助類KeyboardHelper的使用例子代碼如下所示
bool capsLock = KeyboardHelper.CapsLock;
bool numLock = KeyboardHelper.NumLock;
bool scrollLock = KeyboardHelper.ScrollLock;
KeyboardHelper.SendKeys("{TAB}"); //發(fā)送Tab鍵
KeyboardHelper.SendKeys("%{F4}"); //發(fā)送Alt + F4退出
相關的按鍵參考如下所示
6似踱、全局鍵盤鉤子隅熙,用來捕捉系統(tǒng)全局的鍵盤輸入輔助類 KeyboardHook
實現(xiàn)效果 **
1)本輔助類主要是用來方便實現(xiàn)全局鍵盤鉤子,用來捕捉系統(tǒng)全局的鍵盤輸入核芽。
2)通過鍵盤鉤子猛们,我們可以獲取用戶的各種按鍵信息,以及可以屏蔽指定按鍵的操作狞洋,全局鍵盤鉤子弯淘,就如一扇門一樣,可以記錄相關的鍵盤輸入操作吉懊,也可以增加指定的事件處理庐橙,可以控制鍵盤按鍵繼續(xù)流轉(zhuǎn)到其他程序中,或者屏蔽操作借嗽。最典型的鉤子操作例子就是金山詞霸等取詞軟件态鳖。
3)輔助類通過KeyboardHook.Enable()開始鍵盤鉤子,通過KeyboardHook.Disable()禁用或者通過KeyboardHook.Remove()來移除指定的鍵盤鉤子事件恶导。
實現(xiàn)代碼
1)輔助類提供的方法接口如下所示:
/// <summary>
/// 判斷是否CTRL鍵按下
/// </summary>
public static bool Control = false;
/// <summary>
/// 判斷Shift鍵是否按下
/// </summary>
public static bool Shift = false;
/// <summary>
/// 檢查Alt鍵是否按下
/// </summary>
public static bool Alt = false;
/// <summary>
/// 檢查Windows鍵是否按下
/// </summary>
public static bool Win = false;
/// <summary>
/// 鍵盤敲擊事件代理定義
/// </summary>
public delegate bool KeyPressed();
/// <summary>
/// 處理鍵盤按下委托函數(shù)
/// </summary>
/// <param name="key">
/// 按下的鍵浆竭。需檢查CTRL、Shift惨寿、Win等鍵邦泄。
/// <returns>
/// 如果想應用程序能捕捉到,設置為True裂垦;如果設置為False顺囊,則鍵盤事件被屏蔽。
/// </returns>
public delegate bool KeyboardHookHandler(Keys key);
/// <summary>
/// 添加一個鍵盤鉤子處理給當前的鍵
/// </summary>
public static KeyboardHookHandler KeyDown;
/// <summary>
/// 啟動鍵盤鉤子處理
/// </summary>
/// <returns>如無異常返回True</returns>
public static bool Enable()
/// <summary>
/// 禁用鍵盤鉤子處理
/// </summary>
/// <returns>如果禁用成功蕉拢,則返回True</returns>
public static bool Disable()
/// <summary>
/// 添加一個按下鍵的鉤子處理
/// </summary>
/// <param name="key">按下的鍵</param>
/// <param name="callback">按鍵的處理事件函數(shù)</param>
public static bool AddKeyDown(Keys key, KeyPressed callback)
/// <summary>
/// 添加一個鍵彈起的鉤子處理
/// </summary>
/// <param name="key">彈起的鍵</param>
/// <param name="callback">按鍵的處理事件函數(shù)</param>
public static bool AddKeyUp(Keys key, KeyPressed callback)
/// <summary>
/// 添加一個按下鍵的鉤子處理
/// </summary>
/// <param name="key">按下的鍵</param>
/// <param name="callback">按鍵的處理事件函數(shù)</param>
public static bool Add(Keys key, KeyPressed callback)
/// <summary>
/// 移除一個按下鍵的鉤子處理
/// </summary>
/// <param name="key">移除的按鍵</param>
public static bool RemoveDown(Keys key)
/// <summary>
/// 移除一個彈起鍵的鉤子處理
/// </summary>
/// <param name="key">移除的按鍵</param>
public static bool RemoveUp(Keys key)
/// <summary>
/// 移除一個鍵的鉤子處理
/// </summary>
/// <param name="key">移除的按鍵</param>
public static bool Remove(Keys key)
/// <summary>
/// 返回一個給定的鍵基于當前的控制鍵的字符串表示形式特碳。
/// </summary>
/// <param name="key">當前的鍵</param>
/// <returns></returns>
public static string KeyToString(Keys key)
2)輔助類KeyboardHook的使用例子代碼如下所示
private void btnKeyboadHook_Click(object sender, EventArgs e)
{
KeyboardHook.Enable();
KeyboardHook.Add(Keys.S, new KeyboardHook.KeyPressed(TestKeyboadHook));
}
private bool TestKeyboadHook()
{
//僅處理Alt + S 的鉤子事件
if (KeyboardHook.Alt)
{
this.Text = DateTime.Now.ToString();
NativeMethods.BringToFront(this.Handle);
}
return true; //如果要被其他程序捕捉诚亚,返回True,否則返回False午乓。
}
private void btnRemoveKeyboadHook_Click(object sender, EventArgs e)
{
KeyboardHook.Remove(Keys.S);
}
7站宗、鼠標輔助操作類,提供獲取鼠標狀態(tài)以及模擬鼠標點擊等操作 MouseHelper
**實現(xiàn)效果 **
1)本輔助類主要是用來方便獲取鼠標狀態(tài)以及模擬鼠標點擊等操作,通過該輔助類益愈,可以獲取鼠標是否安裝份乒、滾輪是否支持、或者模擬鼠標移動腕唧、單擊或辖、雙擊等操作。
實現(xiàn)代碼
1)輔助類提供的方法接口如下所示:
#region 鼠標相關屬性
/// <summary>
/// 檢查鼠標是否已經(jīng)安裝.
/// </summary>
public static bool MousePresent
/// <summary>
/// 檢查鼠標是否存在滾輪
/// </summary>
public static bool WheelExists
/// <summary>
/// 獲取鼠標滾輪每次滾動的行數(shù)
/// </summary>
public static int WheelScrollLines
#endregion
#region 鼠標操作函數(shù)
/// <summary>
/// 連續(xù)兩次鼠標單擊之間會被處理成雙擊事件的間隔時間枣接。
/// </summary>
/// <returns>以毫秒表示的雙擊時間</returns>
[DllImport("user32.dll", EntryPoint = "GetDoubleClickTime")]
public static extern int GetDoubleClickTime();
/// <summary>
/// 檢取光標的位置颂暇,以屏幕坐標表示。
/// </summary>
/// <param name="lpPoint">POINT結(jié)構(gòu)指針但惶,該結(jié)構(gòu)接收光標的屏幕坐標耳鸯。</param>
/// <returns>如果成功,返回值非零膀曾;如果失敗县爬,返回值為零。</returns>
[DllImport("user32.dll", EntryPoint = "GetCursorPos")]
public static extern int GetCursorPos(Point lpPoint);
/// <summary>
/// 把光標移到屏幕的指定位置添谊。如果新位置不在由 ClipCursor函數(shù)設置的屏幕矩形區(qū)域之內(nèi)财喳,則系統(tǒng)自動調(diào)整坐標,使得光標在矩形之內(nèi)斩狱。
/// </summary>
/// <param name="x">指定光標的新的X坐標耳高,以屏幕坐標表示。</param>
/// <param name="y">指定光標的新的Y坐標所踊,以屏幕坐標表示泌枪。</param>
/// <returns>如果成功,返回非零值秕岛;如果失敗碌燕,返回值是零</returns>
[DllImport("user32.dll")]
public static extern int SetCursorPos(int x, int y);
#endregion
#region 封裝函數(shù)
/// <summary>
/// 在當前鼠標的位置左鍵點擊一下
/// </summary>
public static void MouseClick()
/// <summary>
/// 移動到坐標位置點擊
/// </summary>
/// <param name="location">要點擊的坐標位置,屏幕絕對值</param>
public static void MouseClick(Point location)
/// <summary>
/// 移動到坐標位置點擊
/// </summary>
/// <param name="location">要點擊的坐標位置,屏幕絕對值</param>
public static void MouseRightClick(Point location)
/// <summary>
/// 移動到坐標位置
/// </summary>
public static void MouseMove(Point location)
#endregion
2)輔助類MouseHelper的使用例子代碼如下所示
操作比較簡單,自己操作下即可继薛。
8修壕、全局的鼠標鉤子操作類,用作捕捉全局的鼠標輸入操作的輔助類 MouseHook
**實現(xiàn)效果 **
1)本輔助類主要是用來方便實現(xiàn)全局的鼠標鉤子惋增,用作捕捉全局的鼠標輸入操作叠殷。
實現(xiàn)代碼
1)輔助類提供的方法接口如下所示:
/// <summary>
/// 鼠標輸入處理代理
/// </summary>
/// <param name="button">操作的鼠標鍵</param>
/// <returns>如果想應用程序能捕捉到改鲫,設置為True诈皿;如果設置為False林束,則鼠標事件被屏蔽。</returns>
public delegate bool MouseButtonHandler(MouseButtons button);
/// <summary>
/// 鼠標按鍵按下處理操作
/// </summary>
public static MouseButtonHandler ButtonDown;
/// <summary>
/// 鼠標按鍵彈起處理操作
/// </summary>
public static MouseButtonHandler ButtonUp;
/// <summary>
/// 鼠標移動處理操作
/// </summary>
public static MouseMoveHandler Moved;
/// <summary>
/// 鼠標滾動處理操作
/// </summary>
public static MouseScrollHandler Scrolled;
/// <summary>
/// 啟動鼠標鉤子處理
/// </summary>
/// <returns>如無異常則返回True</returns>
public static bool Enable()
/// <summary>
/// 禁用鼠標鉤子操作
/// </summary>
/// <returns>禁用成功則返回True</returns>
public static bool Disable()
2)輔助類MouseHook的使用例子代碼如下所示
private void btnMouseHook_Click(object sender, EventArgs e)
{
MouseHook.ButtonDown = new MouseHook.MouseButtonHandler(TestMouseHook);
MouseHook.Scrolled = new MouseHook.MouseScrollHandler(TestMouseScroll);
MouseHook.Enable();
}
private bool TestMouseHook(MouseButtons sender)
{
this.Text = string.Format("你單擊了鼠標鍵:{0}", sender);
return true;
}
private bool TestMouseScroll(int delta)
{
this.Text = string.Format("你滾動了鼠標值:{0}", delta);
return true;
}
整理文檔本身也對類庫進行進一步的優(yōu)化稽亏,整理過程本身也是一次馬拉松式的身心賽跑壶冒。