用微信电脑端截图dll库来实现微信截图功能

广告:宝塔Linux面板高效运维的服务器管理软件 点击【 https://www.bt.cn/p/uNLv1L 】立即购买

用微信电脑端截图dll库来实现微信截图功能

这篇文章主要为大家详细介绍了使用微信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库来实现微信截图功能的详细内容,更多请关注9543建站博客其它相关文章!

广告:SSL证书一年128.66元起,点击购买~~~

9543建站博客
一个专注于网站开发、微信开发的技术类纯净博客。
作者头像
admin创始人

肥猫,知名SEO博客站长,14年SEO经验。

上一篇:浅析网页与小程序间怎么进行通信
下一篇:bootstrap有什么开发工具

发表评论

关闭广告
关闭广告