Win32编程实现剪贴板监控查看
网络上有很多使用MFC和.NET实现windows剪贴板监控的程序。这里参考《Windows程序设计(第五版)》实现了一个最简单的Win32剪贴板监控程序。采用原始的win32编程,不适用MFC和.NET等的封装库。
下面是需要修改的WndProc函数。(整个工程在https://github.com/kingzone/ClipboardMonitor)
//
// 函数: WndProc(HWND, UINT, WPARAM, LPARAM)
//
// 目的: 处理主窗口的消息。
//
// WM_COMMAND - 处理应用程序菜单
// WM_PAINT - 绘制主窗口
// WM_DESTROY - 发送退出消息并返回
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;
static HWND hwndNextViewer;
HGLOBAL hGlobal;
PTSTR pGlobal;
RECT rect;
switch (message)
{
case WM_CREATE:
hwndNextViewer = SetClipboardViewer(hWnd);
break;
case WM_CHANGECBCHAIN:
if((HWND)wParam == hwndNextViewer)
hwndNextViewer = (HWND)lParam;
else if(hwndNextViewer)
SendMessage(hwndNextViewer, message, wParam, lParam);
//return 0;
break;
case WM_DRAWCLIPBOARD:
if(hwndNextViewer)
SendMessage(hwndNextViewer, message, wParam, lParam);
InvalidateRect(hWnd, NULL, TRUE);
//return 0;
break;
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
// 分析菜单选择:
switch (wmId)
{
case IDM_ABOUT:
DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
break;
case IDM_EXIT:
DestroyWindow(hWnd);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// TODO: 在此添加任意绘图代码...
// OpenClipboard, GetClipboardData, CloseClipboard
GetClientRect(hWnd, &rect);
OpenClipboard(hWnd);
#ifdef UNICODE
hGlobal = GetClipboardData(CF_UNICODETEXT);
#else
hGlobal = GetClipboardData(CF_TEXT);
#endif
if(hGlobal != NULL)
{
pGlobal = (PTSTR)GlobalLock(hGlobal);
DrawText(hdc, pGlobal, -1, &rect, DT_EXPANDTABS);
GlobalUnlock(hGlobal);
}
CloseClipboard();
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
ChangeClipboardChain(hWnd, hwndNextViewer);
PostQuitMessage(0);
//return 0;
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
转载:点击打开链接
Win32编程实现剪贴板监控查看相关推荐
- 如何监控员工电脑剪贴板并查看记录
企业员工在日常使用电脑办公的过程中,剪贴板可以说是使用最为广泛和频繁的一项功能.不论是公司文件编辑,还是各应用程序之间共享信息,剪贴板都扮演着极为重要的角色.剪贴板实际上是Windows系统内置的一段 ...
- windows 剪贴板监控
迅雷下载或者旋风下载都有一个很有意思的剪贴板监控功能,当你打开剪贴板监控时,如果你复制了一个下载的URL,这两个程序都会弹出来下载框来让你去下载,显得很智能,昨天发现灵格斯词霸也有个剪贴板取词功能. ...
- Win32 编程基础
Windows编程框架 #include <windows.h> #include <windowsx.h>//函数声明BOOL InitWindow( HINSTANCE h ...
- Win32编程基础知识
Win32编程基础知识 尽管Windows应用程序千变万化,令人眼花缭乱,但,消息机制和窗口过程却始终它们的基础,掌握了这两项技术,也就相当于把握住了问题的关键. 如果你以前是C程序员或是MFC的忠实 ...
- Win32编程基础知识(包括对程序的分析)
管Windows应用程序千变万化,令人眼花缭乱,但,消息机制和窗口过程却始终它们的基础,掌握了这两项技术,也就相当于把握住了问题的关键. 如果你以前是C程序员或是MFC的忠实用户,只要你学习过C语言的 ...
- 什么是win32编程
win=windows操作平台 32=32位的操作系统 顾名思义 可以简单理解为:编写可以在32位的windows操作系统下运行的程序. Win32编程,指的是用Window提供的API(A ...
- 利用Python和win32编程范例——按需定制一个按键精灵
转自:作者 橘子一方 http://www.orangecube.net/articles/python-win32-example.html 利用Python和win32编程范例--按需定制一个按键 ...
- WIN32编程经验总结
WIN32编程经验总结 分类: C/C++ 2013-10-28 10:37 157人阅读 评论(0) 收藏 举报 一 窗口和消息 1 前缀 前缀 全称 释义 CS class style ...
- python pywin32 相同句柄_如何利用Python和win32编程避免重复性体力劳动(一)——开始、FindWindow和FindWindowEx...
请移步至这里以获得更加的排版和阅读体验,谢谢您 本系列文章假设各位看官对python是足够熟悉的,但却不太了解win32编程. 嘛..其实我也没学过win32编程,脸请各位看官随意招呼. 需求:最近因 ...
最新文章
- 揭秘丨“北京八分钟”里中国制造的科技力量
- 周期串 字符串的最小正周期
- macOS完全卸载Android Studio方法
- javaI/O之PushbackInputStream
- ExceptionLess新玩法 — 记日志
- 数据结构c语言版第16页,数据结构c语言版
- aref无效 lisp_aref无效 lisp_Common Lisp专题4:数组
- 《机器学习实战》笔记(01):机器学习基础
- react之使用js创建虚拟DOM
- 批量标准化BN方法简介【避免了梯度消失和梯度爆炸、加速网络的收敛、优化网络结构】
- Redis:使用Redis的分布式锁
- python slicer_报表筛选:Excel Slicer与SQL Server Reporting Services(SSRS)参数
- spring 如何决定使用jdk动态代理和cglib(转)
- 从何润东代言团宝,看团购行业逐渐成熟
- selinux为enforcing模式时,运行anonymous上传之后无法删除
- Python爬取QQ音乐并下载
- JAVA基础——接口(全网最详细教程)
- 怎么制作gif动图,gif动态图怎么制作
- SEO优化 TDK的写法思路
- ExoPlayer播放器剖析(六)ExoPlayer同步机制分析