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

七里港网站建设线上推广的渠道

七里港网站建设,线上推广的渠道,工信网企业查询,网站右侧浮动代码本文介绍了 .NET 实现截图功能的思路和过程#xff0c;如果你仅想了解最后的解决方案#xff0c;可以直接查看文章末尾。截图的功能我们应该都经常使用#xff0c;在开发软件时#xff0c;我们有时也或多或少需要提供这方面的功能#xff0c;无论是为用户更方便提供远程诊…本文介绍了 .NET 实现截图功能的思路和过程如果你仅想了解最后的解决方案可以直接查看文章末尾。截图的功能我们应该都经常使用在开发软件时我们有时也或多或少需要提供这方面的功能无论是为用户更方便提供远程诊断还是获取用户的选择区域亦或是提供某些功能上的辅助。开发截图无非就这几种选择教用户使用截图工具、自行开发一个、使用第三方库。教用户使用教的成本无疑是最低的但是不知道用户那边会发生什么存在很大的不确定性。截图软件除了我们经常用的聊天工具和系统自带的 Win Ctrl S外我用起来感觉最好的还是 C 写的开源软件 flameshot[1] 功能非常强大。flameshot使用的第三方的截图软件不仅有教的成本还会打断用户对本身软件的一个使用体验。教用户使用最好还是用系统自带的 Win Ctrl S截图已经可以满足基本的截图需求。自行开发自行开发的原理也非常简单创建一个半透明的全屏无边框窗体记录鼠标在窗体上的框选矩形位置使用CopyFromScreen获取该位置的屏幕图片即可。以上只是针对单个显示器的情况若有多个显示器则需要增加鼠标所在显示器的逻辑。虽然听起来不难但代码实现起来还是有许多要注意的细节。简单的矩形截图实现不难难得是让用户易用易接受毕竟聊天软件已经帮你培养了用户习惯。使用第三方库CSkin[2] 是我在 2012 年就在使用的一款界面库在 WinForm 无疑是软件 UI 美化的王者可以直接作出和 PC 端 QQ 一样的界面体验。库里也提供了截图工具 FrmCapture没中不足的是在多显示器场景下会报错无法正常使用代码库也有 4 年没有更新了。private FrmCapture m_frmCapture; if (m_frmCapture null || m_frmCapture.IsDisposed) {m_frmCapture new FrmCapture(); } m_frmCapture.IsCaptureCursor false; // 截图结束事件 m_frmCapture.Disposed M_frmCapture_Disposed; m_frmCapture.Show();HandyControl[3] 和在 nuget 上搜索到的 ScreenCapturerSharp[4] 虽然也可以实现截图功能但都无法处理多显示器的场景。HandyControl 社区活跃其使用体验会比较好。ScreenCapturerSharp 提供了类似 QQ 的截图工具库在 UI 上稍差一些。如何又快又好又容易如果只是获取截图有没有更简单的方式呢我们只需要模拟按键 Win Ctrl S 就可以了呀然后通过剪贴板获取到截图。说起来容易但是事情其实并没有那么简单。首先 SendKeys 就不支持发送 Windows 徽标按键我们需要通过 WinAPI keybd_event 来替代实现然后还要获取到截图结束的事件。[DllImport(user32.dll, SetLastError true)] static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, UIntPtr dwExtraInfo);其实上面是一个保底的通用方案我们可以自行启动截图软件启动截图软件读取剪贴板Clipboard.GetImage() 一套结束无缝无感堪称完美Process snippingToolProcess new Process() {StartInfo new ProcessStartInfo(C:\\Windows\\system32\\SnippingTool.exe, /clip),EnableRaisingEvents true, }; snippingToolProcess.Exited SnippingToolProcess_Exited; snippingToolProcess.Start();事情其实远没有那么简单直到我在 Win11 用了我的软件。才意识到这只是可以在 Win10 的 64 位操作系统使用。SnippingTool /clip 这样带参数启动在 Win11 不支持了这个路径下的 exe 还被删除了。虽然你可以在 Win11 通过控制台使用SnippingTool /clip启动截图软件但是并不会直接进入截图流程而是打开软件主界面。仔细研究你会发现Win11 的截图其实已经是 UWP 应用了就算你吧 Win10 的 SnippingTool.exe 复制到 Win11 也是报错无法使用的所以你也不可能在自己的软件打包带上它。经过几番折腾我在微软社区提问和提交反馈 Win F 的时候我觉得这个软件是不是这样启动直接就先截了个屏 但是没有找到新版本截图的启动参数。最后直到我前几天发现 Microsoft Learn 的文章 启动屏幕截取 - UWP applications[5]。在 UWP 里使用这么简单嘛使用 LaunchUriAsync 就可以了。bool result await Windows.System.Launcher.LaunchUriAsync(new Uri(ms-screenclip:));有了 URI 的方式一切就变简单了你甚至可以在浏览器里调用截图放一个超链接或者直接在浏览器地址栏粘贴ms-screenclip:后回车打开截图。之后我们只需要监听进程结束就可以了这里需要说明的是不是启动的进程而是截图的进程下面直接上在 WinForm 中使用的代码var psi new ProcessStartInfo() {UseShellExecute true,FileName ms-screenclip: }; Process.Start(psi);// 获取 ScreenClippingHost 这个截图进程的结束事件 var snippingToolProcess Process.GetProcessesByName(ScreenClippingHost)[0]; snippingToolProcess.EnableRaisingEvents true; snippingToolProcess.Exited SnippingToolProcess_Exited;SnippingToolProcess_Exited 事件private void SnippingToolProcess_Exited(object? sender, EventArgs e) {this.BeginInvoke(new Action(() {var img Clipboard.GetImage();})); }References[1] flameshot: https://github.com/flameshot-org/flameshot[2] CSkin: http://www.cskin.net/[3] HandyControl: https://handyorg.github.io/handycontrol/extend_controls/screenshot/[4] ScreenCapturerSharp: https://www.nuget.org/packages/ScreenCapturerSharp[5] 启动屏幕截取 - UWP applications: https://learn.microsoft.com/zh-cn/windows/uwp/launch-resume/launch-screen-snipping
http://www.pierceye.com/news/668992/

相关文章:

  • 无为建设局网站安装wordpress xampp
  • 广药网站建设试卷wordpress人力资源模板下载
  • 电商网站规划的开发背景明年做那个网站能致富
  • 网站建设及托管合同wordpress页面批量生成二维码
  • 益阳市住房和建设局 网站哪些网站可做矿机期货
  • 网站开发哪里有html5网站赏析
  • 襄阳网站建设八零后做的网站怎么上传到网上运行
  • 学网站开发培训学校专业集团门户网站建设费用
  • 加快政务公开网站建设知名的摄影网站有哪些
  • 任县网站建设网络公司桐城网站开发
  • linux服务器做网站软装设计图效果图
  • 个人网站可以做商城吗被官方认可赚钱软件
  • 自己可以做网站服务器室内设计整套方案图
  • 网站建设商城网站微信广告代理
  • 创建网站的方案企业营销策划公司
  • 做彩铃的网站个人博客网站建设
  • 正黄集团博弘建设官方网站达州高端网站建设
  • 七台河建设网站wordpress logo制作
  • 怎么设计一个自己的网站番禺网站建设效果
  • 网站哪家做的好淄博网站开发选网泰
  • 网站建设与制作与维护ppt百度广告联盟收益
  • 在线网站建设费用是多少大学生活动策划书模板
  • 动物网站建设wordpress无法跳转正确页面
  • 上海市建设工程 安全协会网站wordpress会员微信支付宝
  • pc网站转换手机网站代码桂林工作网招聘
  • 营销型网站建设的要素怎么建网站赚钱
  • 成都网站建设学习郑州制作网站推荐
  • 网站建设 镇江丹阳php网站开发实例教程代码
  • 佛山外贸网站建设方案专业网站建设系统
  • 做一个网站团队需要哪些人员花钱也可以哪些网站可以做推广广告