使用微信PC端的截圖dll庫實現(xiàn)微信截圖功能
更新時間:2017年06月14日 09:38:55 作者:WuLex
這篇文章主要為大家詳細介紹了使用微信PC端的截圖dll庫實現(xiàn)微信截圖功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了截圖dll庫實現(xiàn)微信截圖功能 ,供大家參考,具體內(nèi)容如下
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 系統(tǒng)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">回調(diào)函數(shù)</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">回調(diào)函數(shù)</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
}
}

運行結(jié)果如圖:

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
XslTransform.Transform將結(jié)果輸出到字符串里的方法
XslTransform.Transform將結(jié)果輸出到字符串里的方法...2007-04-04
js實現(xiàn)網(wǎng)頁防止被iframe框架嵌套及幾種location.href的區(qū)別
首先我們了解一下幾種location.href的區(qū)別簡單的說:幾種location.href的區(qū)別js實現(xiàn)網(wǎng)頁被iframe框架功能,感興趣的朋友可以了解下2013-08-08
ASP.NET生成eurl.axd Http異常錯誤的處理方法
在IIS6中同時啟用了ASP.NET 2.0 和 ASP.NET 4.0 后,網(wǎng)站程序可能會出現(xiàn)如下錯誤:“ System.Web.HttpException: Path ‘//eurl.axd/‘ was not found. ”2011-05-05
asp.net Silverlight應用程序中獲取載體aspx頁面參數(shù)
有時候SL應用中需要使用由aspx頁面中傳遞過來的參數(shù)值,此時通常有兩種方法獲取2009-11-11
.NET 6開發(fā)TodoList應用之實現(xiàn)PUT請求
PUT請求本身其實可說的并不多,過程也和創(chuàng)建基本類似。這篇文章主要為大家介紹了.NET6實現(xiàn)PUT請求的示例詳解,感興趣的小伙伴可以跟隨小編一起學習一下2021-12-12
將DataTable中的一行復制到另一個DataTable的方法
將DataTable中的一行復制到另一個DataTable的方法...2007-09-09

