vc获取剪贴板文本内容

前言:

本文目前仅限于获取和设置剪贴板的文本内容,还未涉及到图片等资源;

示例:

一:设置剪贴板文本内容(支持一般符号,特殊符号未测试)

bool SetClipBoardText(LPCSTR text,HWND hWnd)
{
	ASSERT(hWnd);
	//打开剪贴板
	if ( !::OpenClipboard(hWnd) )
		return false;
	//如果剪贴板有内容则关闭剪贴板
	if ( !EmptyClipboard() )
	{
		CloseClipboard();
		return false;
	}
	//获取需要设置文本的长度
	int len=strlen(text);
	//申请剪贴板空间
	HANDLE hClip=GlobalAlloc(GMEM_MOVEABLE|GMEM_DDESHARE,(len+1)*sizeof(char*));
	if (hClip==NULL)
	{
		CloseClipboard();
		return false;
	}
	//给申请的空间加锁
	char* pBuf=(char*)GlobalLock(hClip);
	if (pBuf==NULL)
	{
		GlobalFree(hClip);
		CloseClipboard();
		return false;
	}
	//拷贝文本内容到剪贴板
	memcpy((char *)pBuf,text,len*sizeof(char*));
	pBuf[len]=NULL;
	//操作完成,释放锁
	GlobalUnlock(hClip);
	if (NULL==SetClipboardData(CF_TEXT,hClip))
	{
		GlobalFree(hClip);
		CloseClipboard();
		return false;
	}
	CloseClipboard();
	return true;
}  

二:获取剪贴板文本内容(这儿的std_string是通过string封装的,重载了 “=”号)

//获取剪贴板文本内容
std_string GetClipBoardText(HWND hWnd)
{
	ASSERT(hWnd);
	std_string ClipBoardText;
	//判断剪贴板的数据格式是否可以处理。
	if (!IsClipboardFormatAvailable(CF_TEXT))
		return ClipBoardText;   

	//打开剪贴板。
	if (!::OpenClipboard(hWnd))
		return ClipBoardText;   

	//获取数据
	HANDLE hMem = GetClipboardData(CF_TEXT);
	if (hMem != NULL)
	{
		//获取字符串。
		LPSTR lpStr = (LPSTR)GlobalLock(hMem);
		if (lpStr != NULL)
		{
			ClipBoardText=lpStr;
			//释放锁内存
			GlobalUnlock(hMem);
		}
	}
	//关闭剪贴板
	CloseClipboard();
	return ClipBoardText;
}

待续……

时间: 2024-12-10 17:14:50

vc获取剪贴板文本内容的相关文章

Android Studio 如何获取 text文本内容

1.找到目录的main先建立assets格式的文件夹 2.再把需要读取的txt 文件放入到该文件夹下(名字随意),这里取 list.txt. 文件内容 格式如下 3.读取文本内容 工具代码 /** * 返回学生名单 以String 数组形式 * * @return */ public String[] initAssets() { try { //获取输入流 InputStream inputStream = getAssets().open("list.txt"); //这里的名字是

[SoapUI]怎样获取隐藏元素的文本内容Get text of hidden element

隐藏元素无法通过gettext()获取其文本内容,须用javascript来获取 String actualDataPointName = (String) ((JavascriptExecutor) driver).executeScript( "return jQuery(arguments[0]).text();", element);

PHP将富文本编辑后的内容,去除样式图片等只保留txt文本内容

1.从数据库读取富文本内容样式如下: <p style=";text-indent: 0;padding: 0;line-height: 26px"><span style="font-family: 微软雅黑;letter-spacing: 0;font-size: 14px">&nbsp; &nbsp;这是一个小小的测试!这是一个小小的测试!这是一个小小的测试!这是一个小小的测试!这是一个小小的测试!</span&g

03 爬虫实例-获取网页弹幕内容

练习:爬取哔哩哔哩网页弹幕内容,并将爬取的内容以五角星的形式显示出来 思路: 向哔哩哔哩网站发送请求 请求成功后,解析爬取的弹幕内容保存到一个文件中 读取文件并分析弹幕内容中词组或文字出现的频率 将这些词组或文字组成五角星图形 组成五角星图形后,以图片的形式输出 实现: 1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # author:albert time:2019/10/28 4 import requests 5 from bs4 i

Android 复制文本内容到系统剪贴板(自由复制)

直接上代码:(对应的类:android.content.ClipboardManager) //获取剪贴板管理器: ClipboardManager cm = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); // 创建普通字符型ClipData ClipData mClipData = ClipData.newPlainText("Label", "这里是要复制的文字"); // 将Cl

获取WebView里的网页文本内容

获取WebView里的网页文本内容,能够採用例如以下方法: public class ComJSInterface { public void loadHtmlContent(String content) { Log.d("comJs", "html:" + content); } } mWebView.addJavascriptInterface(new ComJSInterface(), "comjs"); mWebView.loadUrl

Robot Framework获取输入后的文本/内容来进行使用的方法

如何在Robot Framework获取刚刚在输入框输入的文本或内容呢?其它很简单,但容易误导人. 比如:<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">,这是百度搜索输入框的代码.按正常来说,如果想在输入框"input text"内容后,

POI教程之第二讲:创建一个时间格式的单元格,处理不同内容格式的单元格,遍历工作簿的行和列并获取单元格内容,文本提取

第二讲 1.创建一个时间格式的单元格 Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿 Sheet sheet=wb.createSheet("第一个Sheet页"); // 创建第一个Sheet页 //第一个单元格 Row row=sheet.createRow(0); // 创建一个行 Cell cell=row.createCell(0); // 创建一个单元格 第1列 cell.setCellValue(new Date()); // 给

JavaScript or jQuery 获取option value值 以及文本内容的方法

1.html <div class="form-group"> <label>保险公司</label> <select class="form-control" id="testSelect"> <option value="平安">平安保险</option> <option value="太平洋">太平洋保险</op