像form1一样,在执行SendKeys时可能不会聚焦?
最后的主要目标是当特定过程窗口位于焦点的前面时,模拟组合键Ctrl + S。
问题是当进程窗口现在位于最前面并且我正在使用它的菜单时,每次计时器发送诸如Form1之类的键或我正在使用其菜单的进程时,都会发出蜂鸣声。不确定。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Process_Window
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
timer1.Enabled = true;
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void timer1_Tick(object sender, EventArgs e)
{
System.ComponentModel.BackgroundWorker worker = new System.ComponentModel.BackgroundWorker();
worker.DoWork += Worker_DoWork;
worker.ProgressChanged += Worker_ProgressChanged;
worker.RunWorkerCompleted += Worker_RunWorkerCompleted; ;
worker.RunWorkerAsync();
}
private void Worker_DoWork(object sender, DoWorkEventArgs e)
{
SendKeys.SendWait("^s");
}
private void Worker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
}
private void Worker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
}
}
}
答案 0 :(得分:2)
您可以在调用SendKeys.SendWait()
之前使用此功能,因此可以确定将Ctrl + S发送到了良好的窗口,如果我没记错名字的话,可以将SetForeGroundWindow与FindWindow一起使用。