当前位置: 首页 > news >正文

自动转换剪贴板中的字符串方便c#的$““符号输出

效果,剪贴板复制一个字符串,希望用c#的$""输出方便后续修改其中的某些变量。

比如字符串:

ksal;kgal;kglkda;kks;lfaks\\a\sa[d]asdsa\s][[[[]][[][][][{}{}{{}{}{}{[S"ADSa''aG'SA"G"sa"G"AS"G""asfgasfafs{}{}{}

希望得到的字符串:

$"ksal;kgal;kglkda;kks;lfaks\\a\sa[d]asdsa\s][[[[]][[][][][{{}}{{}}{{{{}}{{}}{{}}{{[S\"ADSa''aG'SA\"G\"sa\"G\"AS\"G\"\"asfgasfafs{{}}{{}}{{}}"

如果手工写比较麻烦,于是我写了这个小工具,使用MFC框架实现。

实现直接转换剪贴板中的字符串,方便c#代码输出。

直接上代码:


#include <windows.h>
#include <atlstr.h>CString ConvertStringForCsharpCode(CString& strPath)
{CString result;for (int i = 0; i < strPath.GetLength(); i++){TCHAR ch = strPath[i];switch (ch){case _T('"'):  // 双引号转义为\"result += _T("\\\"");break;case _T('{'):  // 左花括号转义为{{result += _T("{{");break;case _T('}'):  // 右花括号转义为}}result += _T("}}");break;//case _T('\\'): // 反斜杠转义为\\(根据场景决定是否需要)//	result += _T("\\\\");//	break;default:result += ch;}}return "$\"" + result + "\"";
}int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR     lpCmdLine,int       nCmdShow)
{char* buffer = nullptr;CString strFromClipboard;if (OpenClipboard(NULL)){HANDLE hData = GetClipboardData(CF_TEXT);char* buffer = (char*)GlobalLock(hData);strFromClipboard = buffer;int nLen = strFromClipboard.GetLength();if (nLen > 0){EmptyClipboard();strFromClipboard = ConvertStringForCsharpCode(strFromClipboard);size_t cbStr = (strFromClipboard.GetLength() + 1) * sizeof(TCHAR);HGLOBAL hData = GlobalAlloc(GMEM_MOVEABLE, cbStr);memcpy_s(GlobalLock(hData), cbStr, strFromClipboard.LockBuffer(), cbStr);strFromClipboard.UnlockBuffer();UINT nFormat = (sizeof(TCHAR) == sizeof(WCHAR) ? CF_UNICODETEXT : CF_TEXT);::SetClipboardData(nFormat, hData);}GlobalUnlock(hData);CloseClipboard();}return 0;
}

下面是隐藏黑窗口的方法:

要将命令行程序改为窗口程序并隐藏黑框,可以采用下面的方法:

使用WinMain入口点(推荐)

  1. 将main改为WinMain
  2. 在项目属性中设置子系统为Windows
  3. 添加/SUBSYSTEM:WINDOWS链接器选项

相关文章:

  • SQL语句的执行流程
  • 鼠标连点器 ,实现鼠标自动点击
  • 虚拟环境中的PyQt5 Pycharm设置参考
  • 使用YouDDNS-Docker为飞牛NAS配置YouDDNS动态域名解析
  • H3C-W2000-G2【透明代理模式】
  • 用wsl实现 kerberos 认证协议
  • 优启通添加自定义浏览器及EXLOAD使用技巧分享
  • vector中reserve导致的析构函数问题
  • 如何提高自己的实际操作技能以通过客运从业资格考试?
  • Python实现对大批量Word文档进行自动添加页码(16)
  • 一张纸决定的高度
  • DAY01:【ML 第二弹】高等数学
  • 初学c语言20(动态内存管理)
  • SYN Flood攻击:原理、危害与防御指南
  • 产品迭代与放弃的判断:MVP、PMF 与 Scale Fit 的三重验证
  • 开发者工具箱-鸿蒙金额转换开发笔记
  • (泛函分析)范数和收敛
  • LangChain
  • 讲述我的PLC自学之路 第九章
  • WHAT - 兆比特每秒 vs 兆字节每秒
  • 域名注册的网站有哪些/百度手机关键词排名工具
  • 如何与网站建立私密关系/传媒网站
  • 网站建设平台方案设计/网络推广公司介绍
  • 网站必须备案/查询域名网站
  • 诈骗网站怎么做的/策划方案网站
  • 建设网站用英文怎么说/域名交易中心