一键拷贝命令小工具(附源码)

有时候在开发过程中,需要多次拷贝和黏贴一些脚本命令到某种终端,如果该终端支持连续粘贴,那可以一次性的将所有命令复制并贴到终端里。如果不支持,那就只能一条一条的复制粘贴。楼主最近遇到的情况就是在某个项目中,需要按顺序连续的一条一条地拷贝6条命令到一个终端里,相当费时间,次数多了手都累的很!

于是乎花了点时间做了一个“一键拷贝命令工具”,界面如下:


点击左边的每个按钮,即可将右边对应编辑框里的内容写入到windows剪贴板里,再ctrl+v一下,即可完成一条命令的输入。

也就是说:把  “选择命令和ctrl+c” 两步操作 简化为点击一次按钮。

其原理非常简单,核心代码注释如下:

	CString strText;
	GetDlgItemText(ID, strText);   //获取编辑框里的命令内容
	if ("" == strText || strText.GetLength() >= 1024)
		return;

	wchar_t sztmp[1024] = {0};
	wsprintf(sztmp, L"%s", strText);
	if (::OpenClipboard(m_hWnd))     //打开剪贴板
	{
		if (::EmptyClipboard())//清空剪贴板内数据  
		{
			int nSize = strText.GetLength() * 2 + 2;//这里是字节数,UNICODE编码每个字符占2个字节,后面加上一个\0结尾符.  
			HGLOBAL hMem = ::GlobalAlloc(GHND, nSize);
			char* pData = (char*)::GlobalLock(hMem);
			memcpy_s(pData, nSize, sztmp, nSize - 2);
			//sprintf(pData, "%s", strText);
			pData[nSize-1] = '\0';
			::GlobalUnlock(hMem);
			::SetClipboardData(CF_UNICODETEXT, hMem);  //将数据写入剪贴板
			::CloseClipboard();                        //关闭剪贴板,给其它进程使用
			::GlobalFree(hMem);
		}
	}

代码下载路径在这里,供需要的朋友参考,VS2013工程可直接编译运行

下载地址



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值