| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 50 人关注过本帖
标题:咨询一个问题,关于复制粘贴的问题.
只看楼主 加入收藏
a451410
Rank: 2
等 级:论坛游民
帖 子:137
专家分:98
注 册:2018-3-4
结帖率:82.69%
收藏
 问题点数:5 回复次数:2 
咨询一个问题,关于复制粘贴的问题.
我想知道如何模仿键盘的ctrl+C,就是从某个文本里复制长度的问题.
怎么用c来实现,不是模拟键盘去按ctrl 和 c键.而是直接向键盘的缓冲区内写入某些内容,
然后我直接去ctrl+v 去粘贴就可以了
请问怎么用c来实现  在线等
搜索更多相关主题的帖子: 复制 内容 ctrl 键盘 咨询 
昨天 14:57
阳光上的桥
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:38
帖 子:133
专家分:792
注 册:2023-1-12
收藏
得分:0 
CTRL+C 的功能是复制,并不操纵键盘缓冲区,只是把内容存放到系统的剪贴板对象,使用 OpenClipboard、SetClipboardData、CloseClipboard 系列函数来操作,示例代码:

程序代码:
#include <windows.h>
#include <string.h>

void CopyToClipboard(const char* text) {
    if (OpenClipboard(NULL)) {
        EmptyClipboard();
        HGLOBAL hMem = GlobalAlloc(GMEM_MOVEABLE, strlen(text) + 1);
        if (hMem) {
            char* pMem = (char*)GlobalLock(hMem);
            strcpy(pMem, text);
            GlobalUnlock(hMem);
            SetClipboardData(CF_TEXT, hMem);
        }
        CloseClipboard();
    }
}
昨天 15:07
yiyanxiyin
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:9
帖 子:292
专家分:2171
注 册:2023-6-29
收藏
得分:0 
如果阁下说的模拟(模仿)键盘仅仅是指使用机械臂等物理撞击来模拟(模仿)手指敲击, 那么kb_event()和SendInput()会写键盘缓冲区, 并且不是模拟(模仿)键盘(物理撞击式), 最终实现非模拟(模仿)键盘且写键盘缓冲区的ctl+c功能, 从而满足需方的苛刻的看似完成不了的变态之需求. 在当前冯诺依曼计算机体系框架下,如果有一丁点考虑使用clipboard和postmessage的想法,那么就是对上帝之需求的严重忽视, 如果模拟(模仿)之定义不加以限制,那么要实现此变态需求可能需要等到冯诺依曼架构体系被推翻之后,可能是计算机架构体系被革命了好几代之后
昨天 16:36
快速回复:咨询一个问题,关于复制粘贴的问题.
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020987 second(s), 11 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved