Молчун
Зарегистрирован: 03 September 2006
Сообщения: 32
Примеры кода: 0
|
Как передать сообщение другому приложению |
27 June 2008 00:20 |
|
|
|
|
Приложение Б не получает комбинацию клавиш приложения А так как фокус скорей всего на окне приложения А.
Вот пример 2 функций помогающих решить эту проблему
//Переводит фокус на заданное окна
[DllImport("User32.dll")]
static extern int SetForegroundWindow(IntPtr hw);
//Ищет окно с заданным именем, возвращает хандл
[DllImport("User32.dll")]
static extern IntPtr FindWindow(string ClassName, string WindName);
Вот как примерно использовать
IntPtr h ;
h = FindWindow("notepad", null);
SetForegroundWindow(h);
SendKeys.SendWait("{F1}");
SendKey( ) не ждет ответа от приложения так что вариант с Wait наверно лучше.
Имя окна надо указать точно.
Все работает исправно шлет и принимается.
Если приложение Б запускалось бы из приложения А то получить его хэндл можно и проще.
Этот пример будет работать если приложение Б не является чьим нибудь дочерним окном.
Данное сообщение получено с сайта GotDotNet.RU
Последний раз редактировалось 27 June 2008 00:20
|
|