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

程序源码

  • #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
分享
二维码
海报