亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#實現的SN快速輸入工具實例

2020-01-24 02:16:45
字體:
來源:轉載
供稿:網友

本文實例講述了C#實現的SN快速輸入工具的方法。分享給大家供大家參考。具體實現方法分析如下:

一般軟件都要輸入序列號(SN),而大家平時用的最多的恐怕是盜版軟件,通常盜版軟件的序列號(SN)都保存成:XXXXX-XXXXX-XXXX-XXXX的形式。

而軟件輸入序列號的地方通常都是幾個文本框(TextBox)組成。一個個的將XXXXX復制到文本框將非常麻煩。于是SN快速輸入工具便由此產生了。

當然這些都和我的編寫這個程序的原因無關。我編寫這個程序的原因純粹是因為有個網友和他舅舅打賭說要編寫個程序,而他舅舅就是要他編寫這個程序,但可惜我的這位網友才是個編程初學者(比我更菜的菜鳥),當然完成不了這個看似簡單,實際要用到許多編程知識的程序咯。

要做這個程序,首先當然是要了解程序的功能了。它的功能就是要讓你復制完了形式如“XXXXX-XXXXX-XXXX-XXXX”的序列號之后,當你把鼠標指向文本框,程序能自動將XXXXX添加到相應的文本框中。

既然是要處理復制的序列號,那么我們肯定要用到和剪貼板相關的東西了。剪貼板,還好這個我以前在C#中用過N次了,不用再查windows api了。C#里面本來就提供了Clipboard這個類。

于是就用到了string Clipboard.GetText()這個靜態方法,將剛才復制的帶-的序列號取出來,然后用個string類型的變量strKeys保存在我的程序中,以便使用。

第一步,從剪貼板里面取數據,我們就完成了。

接著,我們該考慮怎么處理我們的數據了,我們的數據最后是要寫到幾個連續的文本框中的,那么我們可以考慮通過String.Split(char[],string splitoption)這個方法將序列號分割成幾個子字符串,然后再通過windows api講文本輸出到相應的textbox句柄上。但是這樣做無疑增加了程序的難度,幾個連續的文本框的切換,使用Tab鍵就能做到了,然后將文本輸出到文本框中,直接讓鍵盤打出來就ok了。那么很明顯,我們只需要將我們要按的鍵模擬出來就行了,這個時候我首先想到的是windows api中鍵盤模擬事件keybd_event,于是我開始在MSDN中查詢keybd_event方法,方法中有個KEYEVENTF_KEYUP這個參數,但是我不知道他相應的值,于是我開始查找這個長整形的值。但是始終都找不到,就在我在MSDN中查找KEYUP相關的東西的時候,我突然發現了System.Windows.Form.SendKeys這個類。原來.net framework已經將keybd_event這個非托管對象的方法封裝到SendKeys這個類中了,直接使用SendKeys這個類就可以模擬鍵盤操作了。

再查詢Tab鍵的寫法就是{Tab}。

那么我只要將原來文本strKeys中的-全部轉換成{Tab}然后再交給SendKeys這個類來處理,這個程序就基本完成了。

于是有了

復制代碼 代碼如下:
strKeys.Replace("-", "{TAB}");
SendKeys.Send(strKeys);

這兩行代碼。

這樣就有了我的程序的主過程:

復制代碼 代碼如下:
private void ProcessHotkey()//主處理程序
{
 strKeys = Clipboard.GetText();
 strKeys.Replace("-", "{TAB}");
 SendKeys.Send(strKeys);
}

但是我們怎么通過快捷鍵來觸發,來完成這個過程了。

于是我開始在百度和MSDN查找相關處理全局快捷鍵的windows api的資料。

要設置快捷鍵必須使用user32.dll下面的兩個方法。

復制代碼 代碼如下:
BOOL RegisterHotKey(
 HWND hWnd,
 int id,
 UINT fsModifiers,
 UINT vk
);


復制代碼 代碼如下:
BOOL UnregisterHotKey(
 HWND hWnd,
 int id
);

轉換成C#代碼,那么首先就要引用命名空間System.Runtime.InteropServices;來加載非托管類user32.dll。于是有了:

復制代碼 代碼如下:
[DllImport("user32.dll", SetLastError=true)]
public static extern bool RegisterHotKey(
 IntPtr hWnd, // handle to window
 int id, // hot key identifier
 KeyModifiers fsModifiers, // key-modifier options
 Keys vk // virtual-key code
);

[DllImport("user32.dll", SetLastError=true)]
public static extern bool UnregisterHotKey(
 IntPtr hWnd, // handle to window
 int id // hot key identifier
);

[Flags()]
public enum KeyModifiers
{
 None = 0,
 Alt = 1,
 Control = 2,
 Shift = 4,
 Windows = 8
}

這是注冊和卸載全局快捷鍵的方法,那么我們只需要在Form_Load的時候加上注冊快捷鍵的語句,在FormClosing的時候卸載全局快捷鍵。同時,為了保證剪貼板的內容不受到其他程序調用剪貼板的干擾,在Form_Load的時候,我先將剪貼板里面的內容清空。

于是有了:

復制代碼 代碼如下:
private void Form1_Load(object sender, System.EventArgs e)
{
 label2.AutoSize = true;

 Clipboard.Clear();//先清空剪貼板防止剪貼板里面先復制了其他內容
 RegisterHotKey(Handle, 100, 0, Keys.F10);
}

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
 UnregisterHotKey(Handle, 100);//卸載快捷鍵
}

那么我們在別的窗口,怎么讓按了快捷鍵以后調用我的主過程ProcessHotkey()呢?

那么我們就必須重寫WndProc()方法,通過監視系統消息,來調用過程:

復制代碼 代碼如下:
protected override void WndProc(ref Message m)//監視Windows消息
{
 const int WM_HOTKEY = 0x0312;//按快捷鍵
 switch (m.Msg)
 {
  case WM_HOTKEY:
   ProcessHotkey();//調用主處理程序
   break;
 }
 base.WndProc(ref m);
}

至此我們的程序就完成了。

希望本文所述對大家的C#程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91手机视频在线观看| 这里只有精品视频| 亚洲第一精品夜夜躁人人躁| 国产成人久久久| 中文字幕久热精品视频在线| 欧美日韩在线另类| 日本久久久a级免费| 77777亚洲午夜久久多人| 色妞一区二区三区| 欧美成人午夜激情| 日韩精品在线视频| 久热在线中文字幕色999舞| 亚洲伊人成综合成人网| 欧美精品久久久久久久久| 欧洲一区二区视频| 日韩欧美一区二区三区| 亚洲网站在线播放| 26uuu国产精品视频| 日韩欧美中文字幕在线播放| 国产精品99久久久久久久久久久久| 国产精品一区二区久久久久| 一级做a爰片久久毛片美女图片| 国模叶桐国产精品一区| 亚洲黄色在线观看| 国产午夜精品美女视频明星a级| 久久久综合av| 日韩高清a**址| 岛国视频午夜一区免费在线观看| 九九热99久久久国产盗摄| 欧美国产精品人人做人人爱| 久久色免费在线视频| 国产精品你懂得| 高清欧美性猛交xxxx黑人猛交| 国语自产精品视频在线看| 欧美性猛交xxxx黑人猛交| 国语自产精品视频在线看| 亚洲国产美女精品久久久久∴| 亚洲女同精品视频| 亚洲综合精品伊人久久| 精品国产欧美成人夜夜嗨| 国产精品高清网站| 91精品啪aⅴ在线观看国产| 亚洲区在线播放| 日韩精品极品毛片系列视频| 日本欧美中文字幕| 国产日韩换脸av一区在线观看| 久久青草福利网站| 亚洲成人久久电影| 成人激情视频免费在线| 中文在线资源观看视频网站免费不卡| 精品国偷自产在线| 视频一区视频二区国产精品| 久久精品一偷一偷国产| 亚洲精品一区在线观看香蕉| 久热精品视频在线| 清纯唯美亚洲激情| 国产精品美女久久久久久免费| 久久久精品久久| 精品国产一区二区在线| 久久精品成人欧美大片| 91国内产香蕉| 国产脚交av在线一区二区| wwwwwwww亚洲| 国产欧美日韩中文字幕| 日韩av网址在线| 精品动漫一区二区| 久久久人成影片一区二区三区| 精品亚洲国产视频| 中文字幕av日韩| 成人av色在线观看| 日韩在线视频免费观看高清中文| 欧美精品一区二区三区国产精品| 国产精品久久久久久久久久尿| 亚洲欧洲午夜一线一品| 夜夜嗨av色一区二区不卡| 国产亚洲欧洲在线| 色综合亚洲精品激情狠狠| 亚洲专区在线视频| 狠狠躁夜夜躁人人爽天天天天97| 午夜剧场成人观在线视频免费观看| 国产视频久久久久| 中文字幕亚洲欧美在线| 亚洲欧洲美洲在线综合| 欧美一区二区三区图| 亚州av一区二区| 成人午夜在线观看| 国模精品系列视频| 国产精品女视频| 国产第一区电影| 精品久久久91| 国产精品欧美亚洲777777| 国产最新精品视频| 欧美国产日韩一区二区在线观看| 亚洲精品第一页| 久久大大胆人体| 久久九九国产精品怡红院| 精品亚洲国产视频| 欧美精品九九久久| 久久99国产综合精品女同| 欧美极品在线视频| 欧美精品手机在线| 日韩av在线播放资源| 国产女人18毛片水18精品| 久久久久久久一区二区三区| 日本久久亚洲电影| 久久亚洲综合国产精品99麻豆精品福利| 中文字幕亚洲国产| 久久久91精品国产一区不卡| 久久久欧美一区二区| …久久精品99久久香蕉国产| 久久激情五月丁香伊人| 乱亲女秽乱长久久久| 欧美尺度大的性做爰视频| 国产精品第一视频| www.美女亚洲精品| 91社影院在线观看| 欧美午夜片欧美片在线观看| 亚洲新中文字幕| 久久福利网址导航| 久久天天躁狠狠躁夜夜躁| 国产日韩精品在线| 亚洲精品小视频| 亚洲精品国产成人| 国产福利精品在线| 亚洲一区二区在线播放| 日韩有码在线播放| 国产精品扒开腿做爽爽爽视频| 久久在精品线影院精品国产| 国产精品一区电影| 色妞在线综合亚洲欧美| 丝袜一区二区三区| 久久亚洲国产精品成人av秋霞| 精品无码久久久久久国产| 一个人www欧美| 国产亚洲精品久久久优势| 欧美午夜精品久久久久久浪潮| 国内精久久久久久久久久人| 黄色一区二区三区| 国产成人精品久久二区二区| 在线观看国产精品日韩av| 97视频在线免费观看| 国产精品久久久久福利| 日本久久久久亚洲中字幕| 欧美激情xxxx| 日韩欧美国产中文字幕| 国产成人久久精品| 亚洲国产一区二区三区四区| 亚洲最新中文字幕| 97香蕉超级碰碰久久免费软件| 亚洲欧洲日产国产网站| 福利视频第一区| 欧美精品久久久久久久久| 久久99精品久久久久久琪琪| 亚洲第一色中文字幕| 色爱精品视频一区| 国产精品网站视频| 亚洲精品国产电影| 欧美成人免费一级人片100| 亚洲第一视频网| www.欧美精品一二三区| 日韩av在线电影网| 国产精品入口夜色视频大尺度| 最近2019年日本中文免费字幕| 中文在线资源观看视频网站免费不卡|