Отследить перехват фокуса приложения - VB

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток! Проблема такая: у меня на компьютере периодически кто-то перехватывает фокус секунды на 1-2, а потом обратно возвращает. Очень неудобно. Как мне это программно вычислить, т.е. узнать, что за программа? Грубо говоря, как отследить перехват фокуса в приложениях, открытых в Windows?

Решение задачи: «Отследить перехват фокуса приложения»

textual
Листинг программы
  1. Declare Function GetForegroundWindow Lib "user32" () As Long
  2. Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
  3. Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
  4. Declare Function CreateToolhelp32Snapshot Lib "kernel32" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
  5. Declare Function Module32First Lib "kernel32" (ByVal hSnapshot As Long, uProcess As MODULEENTRY32) As Long
  6. Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
  7.  
  8. Private Type MODULEENTRY32
  9.   dwSize As Long
  10.   th32ModuleID As Long
  11.   th32ProcessID As Long
  12.   GlblcntUsage As Long
  13.   ProccntUsage As Long
  14.   modBaseAddr As Long
  15.   modBaseSize As Long
  16.   hModule As Long
  17.   szModule As String * 256
  18.   szExePath As String * 260
  19. End Type
  20. Sub TimerProc()
  21. Dim uProcess As MODULEENTRY32
  22. Static OldName$
  23. Ret = GetForegroundWindow()
  24. GetWindowThreadProcessId Ret, pid
  25.  
  26. hSnapshot = CreateToolhelp32Snapshot(8, pid)
  27. uProcess.dwSize = Len(uProcess)
  28. n = Module32First(hSnapshot, uProcess)
  29. Name$ = Left(uProcess.szModule, InStr(uProcess.szModule, Chr(0)) - 1)
  30. If Name$ <> OldName$ Then
  31.  Form1.Print Name$
  32.  OldName$ = Name$
  33. End If
  34. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.143 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы