C # analog and Alt + PrintScreen PrintScreen

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();

        }
    }
}

 

Reproduced in: https: //my.oschina.net/u/2552902/blog/543912

Guess you like

Origin blog.csdn.net/weixin_34288121/article/details/92326768