线程中模拟Print Screen 按键失效的原因

林夕合鸟 林夕合鸟 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
在主进程中模拟Print Screen 按键没有问题,但是在进程中,出现问题 Clipboard.GetImage()为空。

主要代码如下:
public void PrintScreen()
{
keybd_event((byte)0x2c, 0, 0, 0);//down
keybd_event((byte)0x2c, 0, 2, 0);//up
}

private Bitmap GetScreenImage()
{
Bitmap NewBitmap = null;

try
{
if (Clipboard.ContainsImage())
{
NewBitmap = (Bitmap)(Clipboard.GetImage().Clone());
}

return NewBitmap;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return null;
}
}

private void button10_Click(object sender, EventArgs e)
{
ThreadPool.QueueUserWorkItem(new WaitCallback((s) => {
while (true)
{
PrintScreen();
Bitmap map = GetScreenImage();
if (map != null)
{
string strFile = DateTime.Now.ToString("mmss") + ".bmp";
map.Save(@"D:\2\" + strFile, ImageFormat.Bmp);
}

Thread.Sleep(5000);
}
}));
}
...全文
评论 8
收藏 已收藏
分享
返回顶部
林夕合鸟
C# 111,129 成员 642,538 内容