C# API复制/拷贝到剪辑板
备忘
昨天在做一个程序的时候需要用到”剪辑板”功能, 可是死活引用不了”windows.forms”… (忘记添加引用了)
无奈只好去找了一个易语言的”置剪辑板文本”, 来翻译.
代码
/// <summary>
/// 复制字符串到剪辑板
/// </summary>
/// <param name="text"></param>
/// <returns></returns>
static bool CopyString(string text)
{
int DwLength = text.Length+1;
int GHND = 2;
int hGlobalMemory = GlobalAlloc(GHND, DwLength);
int lpGlobalMemory = GlobalLock(hGlobalMemory);
RtlMoveMemory(lpGlobalMemory, text, DwLength);
GlobalUnlock(hGlobalMemory);
int hWnd=0;
OpenClipboard(hWnd);
EmptyClipboard();
const int CF_TEXT = 1;
bool i;
if (SetClipboardData(CF_TEXT, hGlobalMemory) != 0)
{
i = true;
}
else
{
i = false;
}
CloseClipboard();
return i;
}
//全局堆栈分配_
[DllImport("kernel32.dll")]
static extern int GlobalAlloc(int wFlags, int dwBytes);
//锁住全局内存块_
[DllImport("kernel32.dll")]
static extern int GlobalLock(int hMem);
//拷贝内存
[DllImport("kernel32.dll")]
static extern int RtlMoveMemory(int 目标地址, string 源数据, int 尺寸);
//解锁全局内存块
[DllImport("kernel32.dll")]
static extern int GlobalUnlock(int hMem);
//清空剪辑板
[DllImport("user32.dll")]
static extern int EmptyClipboard();
//打开剪辑板
[DllImport("user32.dll")]
static extern int OpenClipboard(int 剪辑板句柄);
//设置剪辑板数据
[DllImport("user32.dll")]
static extern int SetClipboardData(int wFormat, int hMem);
//关闭剪辑板
[DllImport("user32.dll")]
static extern int CloseClipboard();
C# API复制/拷贝到剪辑板的更多相关文章
- Clipboard 剪辑板
ie是最早支持剪辑板相关事件(并且允许javascript接入)的浏览器(鼠标右键复制) 相关事件: beforecopy— Fires just before the copy operatio ...
- Ubuntu Vim 复制到系统粘贴板
/************************************************************************* * Ubuntu Vim 复制到系统粘贴板 * 说 ...
- java IO之字节流和字符流-Reader和Writer以及实现文件复制拷贝
接上一篇的字节流,以下主要介绍字符流.字符流和字节流的差别以及文件复制拷贝.在程序中一个字符等于两个字节.而一个汉字占俩个字节(一般有限面试会问:一个char是否能存下一个汉字,答案当然是能了,一个c ...
- js实现复制内容到粘贴板
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- Objective-C:OC内部可变对象和不可变对象的深(复制)拷贝问题思考:
OC内部:可变对象和不可变对象的深(复制)拷贝问题思考: 不可变对象: 例如NSString对象,因为NSString对象是常量字符串,所以,不可以更改其内容,但是可以修改指向该字符串的指针指向 ...
- js 复制文字、 复制链接到粘贴板
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- js点击按钮复制内容到粘贴板
复制内容到粘贴板,就是要选择需要复制的内容并执行document.execCommand("copy")命令: //复制内容到粘贴板 function copyToClipboar ...
- 详谈OC(object-c)深浅复制/拷贝-什么情况下用retain和copy
读前小提示:对于深浅复制有一个清楚的了解,对于学习oc的朋友来说,至关重要.那么首先,我们要明白深浅复制是如何定义的呢.这里为了便于朋友们理解,定义如下. 浅 复 制:在复制操作时,对于被复制的对象的 ...
- linux scp命令参数及用法详解--linux远程复制拷贝命令使用实例【转】
转自:http://blog.csdn.net/jiangkai_nju/article/details/7338177 一般情况,本地网络跟远程网络进行数据交抱,或者数据迁移,常用的有三种方法,一是 ...
- 【转】Mac不能复制拷贝写入文件到移动硬盘,U盘怎么办 |
原文网址:http://jingyan.baidu.com/article/a3aad71aa1dde7b1fb0096ab.html 有的小伙伴把移动硬盘或 U 盘接入到 Mac 电脑上,当把文件拷 ...
随机推荐
- 渗透测试-struts2攻防环境搭建拿shell
一.下载Jspstudy 打开目录D:\JspStudy\tomcat\webapps 二.打开struts2并进行拿shell 1.打开struts2 在浏览器中输入网址http://localho ...
- python mitmproxy抓包库
一.简介 mitmproxy是一款用Python编写的支持HTTP(S)的中间人代理工具.它可以拦截.查看.修改.重放和保存HTTP/HTTPS流量 ,支持命令行界面和图形界面,可用于安全测试.网络调 ...
- QQ 邮箱设置自定义域名邮箱
编者有话说 这篇文章来源于2019年12月左右,我在配置 Galaxy 生信分析平台的邮件服务过程中的一个尝试,我最早把它记录在了语雀上面,但由于某些原因一直迟迟没有更新到生信科技爱好者的公众号.直至 ...
- BGP选路
实验拓扑 实验需求 现有三个自治系统,需要对R1访问R4的loopback-X数据走向进行精确控制: R1访问R4的loopback0走R2,通过在R1上修改本地优先级实现 R1访问R4的loopba ...
- Python生成指定大小的文件
转载请注明出处️ 作者:测试蔡坨坨 原文链接:caituotuo.top/400bd75c.html 你好,我是测试蔡坨坨. 在日常测试工作中,我们经常需要对上传的文件大小进行测试,例如:一个文件上传 ...
- 用声明式宏解析 Rust 语法之 enum parser
上一篇用声明式宏解析 Rust 语法 我们的 "macro parser" 解析了 function 和 struct, 这篇来尝试 parse 一下更复杂的 enum 为什么说 ...
- h2database BTree 设计实现与查询优化思考
h2database 是使用Java 编写的开源数据库,兼容ANSI-SQL89. 即实现了常规基于 BTree 的存储引擎,又支持日志结构存储引擎.功能非常丰富(死锁检测机制.事务特性.MVCC.运 ...
- C++面试八股文:如何实现一个strncpy函数?
某日二师兄参加XXX科技公司的C++工程师开发岗位第31面: 面试官:strcpy函数使用过吧? 二师兄:用过. 面试官:这个函数有什么作用? 二师兄:主要用做字符串复制,将于字符从一个位置复制到另一 ...
- k3s 基础 —— 配置 loki
官方文档 核心组件 3 个 chart: promtail 这是一个 agent 代理客户端,用于收集日志,将日志传送给 loki loki 核心组件,主要功能是日志数据的写入与分析.包含 gatew ...
- Unity iOS Guideline 1.3 - Safety - Kids Category 被拒
解决办法: 不使用unity 的分析SDK //关闭unity信息收集服务 UnityEngine.Analytics.Analytics.enabled = false; UnityEngine.A ...