php 微信相亲截图,使用微信PC端的截图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 keymap =

new Dictionary();

/// 

///   注册快捷键

/// 

/// 持有快捷键窗口的句柄

/// 组合键

/// 快捷键的虚拟键码

/// 回调函数

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;

}

/// 

///   注销快捷键

/// 

/// 持有快捷键窗口的句柄

/// 回调函数

public static void UnRegist(IntPtr hWnd, HotKeyCallBackHanlder callBack)

{

foreach (var var in keymap)

{

if (var.Value == callBack)

UnregisterHotKey(hWnd, var.Key);

}

}

/// 

///   快捷键消息处理

/// 

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

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值