Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.09.2011, 09:02   #1
to-to
Новичок
Джуниор
 
Регистрация: 24.09.2011
Сообщений: 1
Вопрос Как отловить получение фокуса другим приложением

Как узнать что какое-то приложение получило фокус?
Т.е событие получения фокуса другим приложением.
Пишу на VB.NET. Можно ли это сделать средствами .NET Framework?
to-to вне форума Ответить с цитированием
Старый 25.09.2011, 11:09   #2
Guy
Форумчанин
 
Регистрация: 15.12.2010
Сообщений: 398
По умолчанию

Если ты знаешь заголовок этого окна и не хочешь заморачиваться с хуками и прочей приблудой то :

Делаешь Таймер с небольшим периодом в нем используя GetForegroundWindow берёшь указательнь на окно которое наверху

Код:
[DllImport("user32.dll")]
private static extern IntPtr GetForegroundWindow();
Код:
<DllImport("user32.dll", SetLastError:=True)> _
Private Shared Function GetForegroundWindow() As IntPtr
Затем получаешь её текст через GetWindowText и сравниваешь


Код:
[System.Runtime.InteropServices.DllImport("user32.dll")]
        private static extern IntPtr GetForegroundWindow();

        [System.Runtime.InteropServices.DllImport("user32.dll")]
        static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount);

        static void Main(string[] args)
        {
            System.Threading.Thread.Sleep(3000);

            var hWnd = GetForegroundWindow();
            int length = 50;
            StringBuilder sb = new StringBuilder(length + 1);
            GetWindowText(hWnd, sb, sb.Capacity);
            System.Diagnostics.Debugger.Break();
        }
    }
Guy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как скопировать файл, который занят другим приложением? Greek9000 Общие вопросы Delphi 3 09.02.2011 11:28
Возможно ли понять используется ли файл другим приложением? Парсифаль Общие вопросы C/C++ 1 24.01.2011 12:31
Вопрос касаюшийся управлением другим приложением Дима я Общие вопросы Delphi 11 18.09.2010 23:20
Как написать событие на получение фокуса кнопкой? chandrasecar Общие вопросы Delphi 5 30.06.2010 19:25
Работа с другим приложением Станкевич Вадим Общие вопросы Delphi 2 17.05.2010 16:17