全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

使用微信PC端的截图dll库实现微信截图功能

本文实例为大家分享了截图dll库实现微信截图功能 ,供大家参考,具体内容如下

ScreenForm.cs代码:

using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Windows.Forms;

namespace screenT
{
  public partial class ScreenForm : Form
  {
    public ScreenForm()
    {
      InitializeComponent();
    }


    private void ScreenCapture()
    {
      DLL.PrScrn();
    }

    protected override void WndProc(ref Message m)
    {
      base.WndProc(ref m);
      Hotkey.ProcessHotKey(m);
    }

    private void button1_Click(object sender, EventArgs e)
    {
      DLL.PrScrn();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
      //注册热键(窗体句柄,热键ID,辅助键,实键)  
      try
      {
        Hotkey.Regist(Handle, HotkeyModifiers.MOD_ALT, Keys.F1, ScreenCapture);
      }
      catch (Exception te)
      {
        MessageBox.Show("Alt + A 热键被占用");
      }
    }

    private void Form1_FormClosed(object sender, FormClosedEventArgs e)
    {
      //注消热键(句柄,热键ID)  
      Hotkey.UnRegist(Handle, ScreenCapture);
    }
  }

  public class DLL
  {
    [DllImport("PrScrn.dll", EntryPoint = "PrScrn")]
    public static extern int PrScrn(); //与dll中一致  
  }


  public static class Hotkey
  {
    #region 系统api

    [DllImport("user32.dll")]
    [return: MarshalAs(UnmanagedType.Bool)]
    private static extern bool RegisterHotKey(IntPtr hWnd, int id, HotkeyModifiers fsModifiers, Keys vk);

    [DllImport("user32.dll")]
    private static extern bool UnregisterHotKey(IntPtr hWnd, int id);

    #endregion

    public delegate void HotKeyCallBackHanlder();

    private const int WM_HOTKEY = 0x312;
    private static int keyid = 10;

    private static readonly Dictionary<int, HotKeyCallBackHanlder> keymap =
      new Dictionary<int, HotKeyCallBackHanlder>();

    /// <summary>
    ///   注册快捷键
    /// </summary>
    /// <param name="hWnd">持有快捷键窗口的句柄</param>
    /// <param name="fsModifiers">组合键</param>
    /// <param name="vk">快捷键的虚拟键码</param>
    /// <param name="callBack">回调函数</param>
    public static void Regist(IntPtr hWnd, HotkeyModifiers fsModifiers, Keys vk, HotKeyCallBackHanlder callBack)
    {
      int id = keyid++;
      if (!RegisterHotKey(hWnd, id, fsModifiers, vk))
        throw new Exception("regist hotkey fail.");
      keymap[id] = callBack;
    }

    /// <summary>
    ///   注销快捷键
    /// </summary>
    /// <param name="hWnd">持有快捷键窗口的句柄</param>
    /// <param name="callBack">回调函数</param>
    public static void UnRegist(IntPtr hWnd, HotKeyCallBackHanlder callBack)
    {
      foreach (var var in keymap)
      {
        if (var.Value == callBack)
          UnregisterHotKey(hWnd, var.Key);
      }
    }

    /// <summary>
    ///   快捷键消息处理
    /// </summary>
    public static void ProcessHotKey(Message m)
    {
      if (m.Msg == WM_HOTKEY)
      {
        int id = m.WParam.ToInt32();
        HotKeyCallBackHanlder callback;
        if (keymap.TryGetValue(id, out callback))
        {
          callback();
        }
      }
    }
  }

  public enum HotkeyModifiers
  {
    MOD_ALT = 0x1,
    MOD_CONTROL = 0x2,
    MOD_SHIFT = 0x4,
    MOD_WIN = 0x8
  }
}

运行结果如图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# 微信  # 截图  # dll  # C#截图程序类似腾讯QQ截图实现代码  # 解决C# 截取当前程序窗口指定位置截图的实现方法  # c#实现winform屏幕截图并保存的示例  # 解决C#全屏幕截图的实现方法  # C#实现网页截图功能  # 对指定的网页进行截图的效果 C#版  # c# 控件截图的简单实例  # C#实现类似qq的屏幕截图程序  # C#实现通过ffmpeg从flv视频文件中截图的方法  # C#实现属于自己的QQ截图工具  # 句柄  # 回调  # 如图  # 大家分享  # 具体内容  # 大家多多  # 组合键  # EventArgs  # sender  # object  # Form1_Load  # 实键  # ID  # align  # base  # Message  # ref  # Hotkey  # WndProc  # button1_Click 


相关文章: 建站之星安装路径如何正确选择及配置?  建站之星如何一键生成手机站?  建站VPS推荐:2025年高性能服务器配置指南  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  红河网站制作公司,红河事业单位身份证如何上传?  如何在IIS管理器中快速创建并配置网站?  建站之星如何修改网站生成路径?  整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?  如何用AWS免费套餐快速搭建高效网站?  教程网站设计制作软件,怎么创建自己的一个网站?  如何快速查询网站的真实建站时间?  网站海报制作教学视频教程,有什么免费的高清可商用图片网站,用于海报设计?  如何通过服务器快速搭建网站?完整步骤解析  如何使用Golang table-driven基准测试_多组数据测量函数效率  如何选择服务器才能高效搭建专属网站?  php条件判断怎么写_ifelse和switchcase的使用区别【对比】  阿里云网站制作公司,阿里云快速搭建网站好用吗?  C++用Dijkstra(迪杰斯特拉)算法求最短路径  如何解决VPS建站LNMP环境配置常见问题?  如何通过商城免费建站系统源码自定义网站主题?  小程序网站制作需要准备什么资料,如何制作小程序?  清除minerd进程的简单方法  如何快速搭建虚拟主机网站?新手必看指南  网站插件制作软件免费下载,网页视频怎么下到本地插件?  建站主机选哪种环境更利于SEO优化?  制作网站的模板软件,网站怎么建设?  c++怎么用jemalloc c++替换默认内存分配器【性能】  企业微网站怎么做,公司网站和公众号有什么区别?  开源网站制作软件,开源网站什么意思?  MySQL查询结果复制到新表的方法(更新、插入)  建站之星下载版如何获取与安装?  如何选择高效稳定的ISP建站解决方案?  如何高效搭建专业期货交易平台网站?  道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?  官网建站费用明细查询_企业建站套餐价格及收费标准指南  如何高效完成独享虚拟主机建站?  建站10G流量真的够用吗?如何应对访问高峰?  济南网站制作的价格,历城一职专官方网站?  成都网站制作报价公司,成都工业用气开户费用?  为什么Go需要go mod文件_Go go mod文件作用说明  北京制作网站的公司,北京铁路集团官方网站?  如何在Golang中指定模块版本_使用go.mod控制版本号  如何在景安服务器上快速搭建个人网站?  测试制作网站有哪些,测试性取向的权威测试或者网站?  制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  如何用VPS主机快速搭建个人网站?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  常州企业建站如何选择最佳模板? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。