C# 监控粘贴板、总在最前代码
2016-06-03 22:15
507 查看
监控粘贴板
using Microsoft.Win32; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; namespace AutomaticCopy { public partial class Form1 : Form { #region Definitions /**定义热键使用*/ private const int WM_DRAWCLIPBOARD = 0x308; private const int WM_CHANGECBCHAIN = 0x30D; private IntPtr nextClipHwnd; //API declarations... [DllImport("user32.dll", CharSet = CharSet.Auto)] static public extern IntPtr SetClipboardViewer(IntPtr hWndNewViewer); [DllImport("user32.dll", CharSet = CharSet.Auto)] static public extern bool ChangeClipboardChain(IntPtr HWnd, IntPtr HWndNext); [DllImport("user32.dll", CharSet = CharSet.Auto)] private static extern int SendMessage(IntPtr hwnd, int wMsg, IntPtr wParam, IntPtr lParam); #endregion public Form1() { InitializeComponent(); } //重写wndproc方法 定义热键使用 protected override void WndProc(ref Message m)//监视Windows消息 { switch (m.Msg) { case WM_DRAWCLIPBOARD: //将WM_DRAWCLIPBOARD消息传递到下一个观察链中的窗口 SendMessage(nextClipHwnd, m.Msg, m.WParam, m.LParam); IDataObject data = Clipboard.GetDataObject(); if (data.GetDataPresent(DataFormats.Text) | data.GetDataPresent(DataFormats.OemText)) { this.label1.Text = (String)data.GetData(DataFormats.Text); } break; default: base.WndProc(ref m); break; } } private void Form1_Load(object sender, EventArgs e) { nextClipHwnd = SetClipboardViewer(this.Handle); } private void FrmMain_FormClosed(object sender, FormClosedEventArgs e) { //从观察链中删除本观察窗口 ChangeClipboardChain(this.Handle, nextClipHwnd); //将WM_DRAWCLIPBOARD消息传递到下一个观察链中的窗口 SendMessage(nextClipHwnd, WM_CHANGECBCHAIN, this.Handle, nextClipHwnd); } } }
总在最前
public Form1() { InitializeComponent(); // timer1.Start(); } private void timer1_Tick(object sender, EventArgs e) { // this.TopMost = false; // this.BringToFront(); this.TopMost = true; }
相关文章推荐
- C# 窗体间传值方法大汇总(转)
- 大地测量学白塞尔大地主题解算
- C# 后台获取WebApi 方法
- c#
- 使用NPOI操作excel
- [C#错误]未找到类型或命名空间名称" " (是否缺少 using 指令或程序集引用?)
- C#方法总结
- C#中MessageBox用法大全
- 关于C# 中的Attribute 特性
- WindowsCE project missing Microsoft.CompactFramework.CSharp.targets in Visual Studio 2008
- C# 目录(文件夹)复制实现
- C#在winform中调用系统控制台输出
- 第三方登录插件.NET版XY.OAuth-CSharp
- 反射获取对象中属性的信息,包括属性的特性
- C#—实验10.1和10.2
- 通过反射,获取多路委托的全部返回结果
- 从datagridview中导出数据到excel
- c#泛型结合Linq实现从数据源中截取指定位置,行数的数据
- C#的枚举数(Enumerator)和可枚举类型(Enumerable)
- 七牛时间戳防盗链生成csharp,c#实现