读取剪切板中的字符传递给一个字符串

程序源码

#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>

int get_clipboard(char *str);

int main(void){

	//定义一个测试字符串
	char str[30] = {0};

	//将剪切板中的内容传入该字符串
	get_clipboard(str);

	//输出该字符串
	printf("%s",str);

	//暂停,检验程序运行结果
	system("pause");
	return 0;

}

int get_clipboard(char *str){

	//局部变量
	char *pbuf = NULL;

	//剪切板句柄
	HANDLE hclip;
 
	//打开剪切板,获取里面的数据
	if(OpenClipboard(NULL) == 0){
		printf("打开剪切板失败!\n");
		return -1;
	}

	//判断剪切板当中的数据是不是文本类型的
	if(!IsClipboardFormatAvailable(CF_TEXT)){
		printf("剪切板当中的数据类型不匹配!\n");

		//关闭剪切板,不然其他程序无法正常使用剪切板
		CloseClipboard();
		return -1;
	}

	//获取剪切板里面的数据
    hclip = GetClipboardData(CF_TEXT);

	//加锁,返回一个VOID类型的指针
	pbuf = (char *)GlobalLock(hclip);

	//解锁
	GlobalUnlock(hclip);
	
	//将剪切板里面所有字符传入给参数
	while(1){
		
		//如果到了字符串末尾就退出循环
		if(*pbuf == 0){
			break;
		}
		
		//定义一个用于循环的局部变量
		int i = 0;

		do{

			//将读取到的字母或数字字符赋给word
			str[i] = *pbuf;

			//将指针指向下一个字符处
			++pbuf;
			++i;
		}while(*pbuf);

		//添加字符串结束
		str[i] = '\0';
	}

	//关闭剪切板,不然其他程序无法正常0使用剪切板
	CloseClipboard();
	return 0;

}

程序运行结果范例

 

THE END
分享
二维码
海报
读取剪切板中的字符传递给一个字符串
程序源码 #include <stdio.h> #include <stdlib.h> #include <Windows.h> int get_clipboard(char *str); int main(void){ //……