win10监听剪切板变化
一、第一步导入api
#region
[DllImport("user32.dll")]
public static extern bool AddClipboardFormatListener(IntPtr hwnd); [DllImport("user32.dll")]
public static extern bool RemoveClipboardFormatListener(IntPtr hwnd); private static int WM_CLIPBOARDUPDATE = 0x031D; #endregion
二、窗体初始化的时候,开启剪切板切换
public Form1()
{
InitializeComponent();
AddClipboardFormatListener(this.Handle);
}
三、窗体关闭时,移除监听
protected override void OnClosing(CancelEventArgs e)
{
RemoveClipboardFormatListener(this.Handle);
base.OnClosing(e);
}
三、重写窗体的WndProc方法处理监听
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_CLIPBOARDUPDATE)
{
UpdateClipValueList();
}
else
{
base.DefWndProc(ref m);
} } private void UpdateClipValueList() {
//显示剪贴板中的文本信息
if (Clipboard.ContainsText())
{
label1.Text = Clipboard.GetText();
}
//显示剪贴板中的图片信息
if (Clipboard.ContainsImage())
{
pictureBox1.Image = Clipboard.GetImage();
pictureBox1.Update();
}
}
运行结果:

win10监听剪切板变化的更多相关文章
- HTML5 oninput实时监听输入框值变化的完美方案
在网页开发中经常会碰到需要动态监听输入框值变化的情况,如果使用 onkeydown.onkeypress.onkeyup 这个几个键盘事件来监测的话,监听不了右键的复制.剪贴和粘贴这些操作,处理组合快 ...
- 【转载】实时监听输入框值变化的完美方案:oninput & onpropertychange
oninput 是 HTML5 的标准事件,对于检测 textarea, input:text, input:password 和 input:search 这几个元素通过用户界面发生的内容变化非常有 ...
- 实时监听输入框值变化:oninput & onpropertychange
结合 HTML5 标准事件 oninput 和 IE 专属事件 onpropertychange 事件来监听输入框值变化. oninput 是 HTML5 的标准事件,对于检测 textarea, i ...
- js/jquery 实时监听输入框值变化的完美方案:oninput & onpropertychange
(1) 先说jquery, 使用 jQuery 库的话,只需要同时绑定 oninput 和 onpropertychange 两个事件就可以了,示例代码: $('#username').bin ...
- JS 获取和监听屏幕方向变化(portrait / landscape)
移动设备的屏幕有两个方向: landscape(横屏)和portrait(竖屏),在某些情况下需要获取设备的屏幕方向和监听屏幕方向的变化,因此可以使用Javascript提供的 MediaQueryL ...
- 实时监听输入框值变化的完美方案:oninput & onpropertychange
实时监听输入框值变化的完美方案:oninput & onpropertychange: 网址:http://www.cnblogs.com/lhb25/archive/2012/11/30/o ...
- 监听EditText的变化
http://liangruijun.blog.51cto.com/3061169/729505 之前博客上的有关EditText的文章,只是介绍EditText的一些最基本的用法,这次来深入学习一下 ...
- input 即时搜索 监听输入值的变化
在 Web 开发中经常会碰到需要动态监听输入框值变化的情况,如果使用 onkeydown.onkeypress.onkeyup 这个几个键盘事件来监测的话,监听不了右键的复制.剪贴和粘贴这些操作,处理 ...
- Android监听手机网络变化
Android监听手机网络变化 手机网络状态发生变化会发送广播,利用广播接收者,监听手机网络变化 效果图 注册广播接收者 <?xml version="1.0" encodi ...
随机推荐
- RabbitMQ系列(五)使用Docker部署RabbitMQ集群
概述 本文重点介绍的Docker的使用,以及如何部署RabbitMQ集群,最基础的Docker安装,本文不做过多的描述,读者可以自行度娘. Windows10上Docker的安装 因为本人用的是Win ...
- 为什么使用SLF4J比使用log4j或者java.util.logging更好
1.SLF4j是什么? SLF4J 并没有真正地实现日志记录,它只是一个允许你使用任何java日志记录库的抽象适配层. 如果你正在编写内部或者外部使用的API或者应用库的话,如果使用了slf4j,那么 ...
- Web笔记(一) Web 简介与开发环境搭建
Web应用程序的工作原理 大多数的Web应用程序结构都是采用最为流行的B/S软件开发体系结构,将Web应用程序部署在Web服务器上,只要Web服务器启动,用户就可以通过客户端浏览器发送HTTP请求到W ...
- 行为型---状态者模式(State Pattern)
状态者模式的介绍 每个对象都有其对应的状态,而每个状态又对应一些相应的行为,如果某个对象有多个状态时,那么就会对应很多的行为.那么对这些状态的判断和根据状态完成的行为,就会导致多重条件语句,并且如果添 ...
- c#调用腾讯云API的实例
//获取时间戳 .net framework /* DateTime dt = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1 ...
- C#实现放大镜
winform实现一个跟随鼠标移动放大功能 实现步骤: 1.创建一个Form1,一个计时器timer1和一个图片显示控件pictureBox1 2.核心代码 ;//倍率,调节放大倍数,可由TrackB ...
- collect_list/collect_set(列转行)
Hive中collect相关的函数有collect_list和collect_set. 它们都是将分组中的某列转为一个数组返回,不同的是collect_list不去重而collect_set去重. 做 ...
- [android] 采用服务执行长期后台的操作
服务:在后台长期运行的没有界面的组件 新建一个类PhoneService类,继承系统的Service类 清单文件中 进行配置 新建一个节点<service>,设置名称android:nam ...
- 6.4 group by 优化
1.小总结 group by 实质是先排序后进行分组,遵照索引建的最佳左前缀. 当无法使用索引列,增大max_length_for_sort_data参数的设置 + 增大sort_buffer_siz ...
- 4.6 explain 之 rows
一.说明 根据表统计信息及索引选用情况,大致估算出找到所需的记录所需读取的行数. 二.示例 关注我的公众号,精彩内容不能错过