资源简介
定时向系统发送模拟按键,可以实现用快捷键完成定时执行某项操作的功能。
代码片段和文件信息
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 < listView.Items.Count; i++)
{
if (timeNow == listView.Items[i].Text)
{
string keys = listView.Items[i].Name;
string[] keyArr = keys.Split(‘+‘);
for (int j = 0; j < keyArr.Length; 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银行站点密码
- 下一篇:电子秤重量读取(串口通讯)
相关资源
- 使用Socket发送数据
- 服务器和客户端(TCP发送消息、发送
- C# 定时提醒器
- Quartz.NET定时任务框架
- TCP通信(支持发送文本和图片文件)
- C# Mail-发送邮箱
- C#定时关机、重启、注销
- 自动发送弹幕(定时模拟操作键盘)
- C#发送邮件(支持多个收件人/支持抄
- sms app 发送短信
- RabbitMQ消息的发送和接收C#
- C#+短信发送平台源代码
- .net下的多媒体定时器
- C# 定时任务
- C#定时调度任务服务
- C# quartz 定时使用教程
- C#按键模拟 鼠标模拟 c#按键精灵
- c#定时服务数据同步源代码
- C#创建计划任务,定时服务,完美执行
- STM32 VS1003 串口2DMA发送录音数据
- C# 定时自动导出数据库数据为Excel文件
- 钉钉接口请求数据接入数据库c#源码
- C#数据库定时备份Windows服务源码
- c#使用一个socket同时发送字符串和文件
- 燕骏团队串口发送数据并显示曲线工
- C#发送接收短信
- C#企业微信发送文本消息,发送图片给
- C# DataTable生成excel并将excel添加附件发
- LumiSoftsmtp邮件发送winform
- 基于SMTP协议的电子邮件发送程序的设
评论
共有 条评论