資源簡介
定時向系統發送模擬按鍵,可以實現用快捷鍵完成定時執行某項操作的功能。
代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.Drawing;
using?System.IO;
using?System.Windows.Forms;
using?System.Runtime.InteropServices;
namespace?Test
{
public?partial?class?MainForm?:?Form
????{
public?MainForm()
{
InitializeComponent();
}
????????///?
????????///?導入模擬鍵盤的方法
????????///?
????????///?按鍵的虛擬鍵值
????????///?掃描碼,一般不用設置,用0代替就行
????????///?選項標志:0:表示按下,2:表示松開
????????///?一般設置為0
????????[DllImport(“user32.dll“)]
????????public?static?extern?void?keybd_event(byte?bVk?byte?bScan?int?dwFlags?int?dwExtraInfo);
????????private?void?textBox_KeyDown(object?sender?KeyEventArgs?e)
????????{
????????????e.SuppressKeyPress?=?true;
????????????textBox.Text?=?string.Format(“{0}{1}{2}{3}“?e.Control???“Ctrl+“?:?null?e.Alt???“Alt+“?:?null?e.Shift???“Shift+“?:?null?e.KeyCode);
????????????textBox.Name?=?string.Format(“{0}{1}{2}{3}“?e.Control???“17+“?:?null?e.Alt???“18+“?:?null?e.Shift???“16+“?:?null?e.KeyValue);
????????}
????????private?void?timer_Tick(object?sender?EventArgs?e)
????????{
????????????string?timeNow?=?DateTime.Now.ToString(“HH:mm:ss“);
????????????for?(int?i?=?0;?i?????????????{
????????????????if?(timeNow?==?listView.Items[i].Text)
????????????????{
????????????????????string?keys?=?listView.Items[i].Name;
????????????????????string[]?keyArr?=?keys.Split(‘+‘);
????????????????????for?(int?j?=?0;?j?????????????????????{
????????????????????????keybd_event(byte.Parse(keyArr[j])?0?0?0);
????????????????????????System.Threading.Thread.Sleep(5);
????????????????????}
????????????????????for?(int?j?=?keyArr.Length?-?1;?j?>=?0;?j--)
????????????????????{
????????????????????????keybd_event(byte.Parse(keyArr[j])?0?2?0);
????????????????????????System.Threading.Thread.Sleep(5);
????????????????????}
????????????????????listView.Items[i].Remove();
????????????????????i--;
????????????????}
????????????}
????????????if?(listView.Items.Count?==?0)?btnGo.PerformClick();
????????}
????????private?void?btnAdd_Click(object?sender?EventArgs?e)
????????{
????????????if?(string.IsNullOrEmpty(textBox.Text))?return;
????????????var?item?=?listView.Items.Add(new?ListViewItem(new?string[]?{?dateTimePicker.Value.ToString(“HH:mm:ss“)?textBox.Text?}));
????????????item.Name?=?textBox.Name;
????????}
????????private?void?btnDel_Click(object?sender?EventArgs?e)
????????{
????????????for?(int?i?=?listView.Items.Count?-?1;?i?>=?0;?i--)
????????????{
????????????????if?(listView.Items[i].Selected)?listView.Items[i].Remove();
????????????}
????????}
????????private?void?btnGo_Click(object?sender?EventArgs?e)
????????{
????????????if?(timer.Enabled)
????????????{
????????????????timer.Stop();
????????????????btnGo.Text?=?“執行(&G)“;
???????????????
- 上一篇:模擬人工錄入web銀行站點密碼
- 下一篇:電子秤重量讀取(串口通訊)
評論
共有 條評論