源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
查看: 73|回复: 18

[ASP.NET] 使用微信PC端的截图dll库实现微信截图功能

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2017-6-14 09:38:55 | 显示全部楼层 |阅读模式
这篇文章主要为大家详细介绍了使用微信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
  }
}

运行结果如图:

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

回复

使用道具 举报

3

主题

2万

回帖

50

积分

注册会员

Rank: 2

积分
50
发表于 2022-9-1 22:00:07 | 显示全部楼层
感谢楼主分享
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2022-12-10 10:09:10 | 显示全部楼层
额头额定法国队是范德萨
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

499

积分

中级会员

Rank: 3Rank: 3

积分
499
发表于 2023-4-11 04:39:08 | 显示全部楼层
挺不错的东西
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-9-12 21:15:39 | 显示全部楼层
66666666666
回复 支持 反对

使用道具 举报

4

主题

1万

回帖

60

积分

注册会员

Rank: 2

积分
60
发表于 2023-9-13 07:01:43 | 显示全部楼层
554411515451555
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

87

积分

注册会员

Rank: 2

积分
87
发表于 2024-4-15 20:05:24 | 显示全部楼层
啦啦啦啦啦啦哈哈哈
回复 支持 反对

使用道具 举报

7

主题

2万

回帖

398

积分

中级会员

Rank: 3Rank: 3

积分
398
发表于 2024-7-18 11:13:04 | 显示全部楼层
可以,看卡巴
回复 支持 反对

使用道具 举报

3

主题

2万

回帖

301

积分

中级会员

Rank: 3Rank: 3

积分
301
发表于 2024-7-23 12:57:31 | 显示全部楼层
看看怎么样再说
回复 支持 反对

使用道具 举报

3

主题

2万

回帖

156

积分

注册会员

Rank: 2

积分
156
发表于 2024-8-30 22:05:45 | 显示全部楼层
看看看看
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2024-11-24 08:55 , Processed in 0.068407 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表