我正在使用一个托管在http://inputsimulator.codeplex.com/的项目,它使用默认的Microsoft键盘输入代码将SendKeys实际按下了什么键.
如果必须使用winform作为键盘来执行键盘功能,例如Microsoft的工具“屏幕键盘”,则必须将焦点集中在需要编辑的应用程序上.
比方说,例如,我必须在Word中键入文档,因此它具有焦点.但是,当我单击表单按钮时,焦点转移到了表单上,而Word上没有任何内容.
所以…
我想要做的是一个不集中精力但在功能上执行的窗体控件.
解决方法:
WS_EX_NOACTIVATE窗口样式标志旨在实现此目的.这是实现它的示例表单:
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
this.TopMost = true;
}
protected override CreateParams CreateParams {
get {
var cp = base.CreateParams;
cp.ExStyle |= 0x08000000; // Turn on WS_EX_NOACTIVATE;
return cp;
}
}
}