读取剪切板中的字符传递给一个字符串
程序源码
- #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
0
二维码
海报
共有 0 条评论