Как приложение winforms может принимать пользовательский ввод без фокуса? - PullRequest
3 голосов
/ 12 января 2011

Я использую проект, размещенный на http://inputsimulator.codeplex.com/ Он использует стандартные коды ввода с клавиатуры Microsoft для SendKeys, какая клавиша фактически нажата.

Если мне нужно использовать свою winform в качестве клавиатуры для выполнения таких функций клавиатуры, как инструмент Microsoft, экранная клавиатура, я должен сосредоточиться на приложении, которое необходимо отредактировать.

Скажем, например, я должен напечатать документ в Word, чтобы он был в фокусе. Но когда я нажимаю на кнопки формы, фокус переходит на мою форму, и в Word ничего не пишется.

Итак ...

Я хочу создать элемент управления формы, который не фокусируется, а работает функционально.

Ответы [ 2 ]

2 голосов
/ 12 января 2011

Флаг стиля окна 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;
        }
    }
}
1 голос
/ 12 января 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...