大家好,又见面了,我是你们的朋友全栈君。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Drawing.Imaging;
namespace KeyBoard
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{//打印全屏
Print.printScreen();
if (Clipboard.ContainsImage())
{//功能提取或替换Windows系统剪贴板的图片
Clipboard.GetImage();
}
}
private void button2_Click(object sender, EventArgs e)
{//打印当前窗口
Print.altPrintScreen();
if (Clipboard.ContainsImage())
{//功能提取或替换Windows系统剪贴板的图片
Clipboard.GetImage();
}
}
}
class Print
{
//bVk,虚拟键盘码
//bScan ,该键的硬件扫描码
//dwFlags,定义函数操作的各个方面的一个标志位集
//dwExtraInfo,定义与击键相关的附加的32位值
[DllImport("user32.dll")]
static extern void keybd_event(byte bVk, byte bScan, uint dwFlags,
UIntPtr dwExtraInfo);//该函数合成一次击键事件
const int KEYEVENTF_KEYUP = 0x2;//若指定该值,该键将被释放;若未指定该值,该键将被按下
public static void keydown(Keys k)
{//按下
keybd_event((byte)k, 0, 0, UIntPtr.Zero);
}
public static void keyup(Keys k)
{//释放
keybd_event((byte)k, 0, KEYEVENTF_KEYUP, UIntPtr.Zero);
}
public static void printScreen()
{//模拟PrintScreen
keydown(Keys.PrintScreen);
Application.DoEvents();
keyup(Keys.PrintScreen);
Application.DoEvents();
}
public static void altPrintScreen()
{//模拟Alt+PrintScreen
keydown(Keys.Menu);
keydown(Keys.PrintScreen);
Application.DoEvents();
keyup(Keys.PrintScreen);
keyup(Keys.Menu);
Application.DoEvents();
}
}
}
转载于:https://my.oschina.net/u/2552902/blog/543912
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/106773.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...