Страница: 1 |
Попробуй GetActiveWindow и GetWindowText Вот, может, будет полезно: Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 'Пока возвращаемый hWnd имеет смысл, выполняем цикл 'Получить имя задачи из списка 'Если получили имя задачи, значит добавляем ее в список найденных 'Переходим к следующей задаче из списка Private Sub cmdExit_Click() Private Sub cmdrefresh_Click() Private Sub Form_Load() По морде не бить - писал не я. GetForegroundWindow, GetWindowText dim h as long h=getforegroundwindow а потом получаешь текст с помощью GetWindowText. Точно не помню как, пример есть могу прислать Кто может намылить примерчик? Я как раз занимаюсь єтим вопросом( определение компьютерного почерка)! Это уже обработаный мной текст! Я долго разбирался во всем и переделал. Значит эта прога считывает все caption'ы в массив. Код, который находиться ниже помести в модуль, а потом из формы вызови функцию FillTaskListbox, и все у тебя в массиве а потом что хочешь делай с информацией... Че не ясно обращайся, помогу... Option Explicit Const max = 100 ' ' Private Function EnumWindowsProc(ByVal hWnd As Long, ByVal lParam As Long) As Long Страница: 1 |
Вопрос: Определение активного ока
Добавлено: 04.08.03 23:48
Автор вопроса: HACKER
Люди, подскажите пожайлуста. Как узнать заголовок активного окна в НЕ моей программы?
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
CyRax
Разработчик Offline Client
ICQ: 204447456
Вопросов: 180
Ответов: 4229
Web-сайт:
Профиль | | #1
Добавлено: 05.08.03 06:14
Номер ответа: 2
Автор ответа:
Nio
Вопросов: 15
Ответов: 115
Web-сайт:
Профиль | | #2
Добавлено: 05.08.03 18:38
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Const GW_HWNDFIRST = 0
Const GW_HWNDNEXT = 2
Const WM_CLOSE = &H10
Const WM_QUIT = &H12
Dim CurrWnd As String
Dim ListItem As String
Dim Length As String
Dim hW As Long
Sub GetTaskList()
'Получаем hWnd, который будет первым в списке
'через него, мы сможем отыскать другие задачи
CurrWnd = GetWindow(Me.hwnd, GW_HWNDFIRST)
Do While CurrWnd <> 0
'Получаем длину имени задания по CurrWnd
Length = GetWindowTextLength(CurrWnd)
ListItem = Space(Length + 1)
Length = GetWindowText(CurrWnd, ListItem, Length + 1)
If Length <> 0 Then
lstList.AddItem ListItem
End If
CurrWnd = GetWindow(CurrWnd, GW_HWNDNEXT)
DoEvents
Loop
End Sub
Private Sub cmdClose_Click()
hW = FindWindow(vbNullString, lstList.Text & Chr(0))
PostMessage hW, WM_QUIT, 0, 0
End Sub
'Закрывает Windows manipulations
End
End Sub
'Очищает список задач
lstList.Clear
'Обновляет список задач
GetTaskList
End Sub
'Запускает процедуру вывода списка задач
GetTaskList
End Sub
Номер ответа: 3
Автор ответа:
Morpheus
Вопросов: 224
Ответов: 3777
Web-сайт:
Профиль | | #3
Добавлено: 06.08.03 10:23
Номер ответа: 4
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #4
Добавлено: 06.08.03 22:22
Номер ответа: 5
Автор ответа:
NovichoK
Вопросов: 72
Ответов: 147
Профиль | | #5
Добавлено: 06.08.03 23:12
Public Progs(1 To max) As String
Public ProgsIndex As Long
'
'
Private Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
Private Declare Function IsWindowVisible Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function GetParent Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
'
'
Private Const GWL_HWNDPARENT = (-8)
'
'
'
'
'
Function FillTaskListBox(frm As Form)
ProgsIndex = 1
Call EnumWindows(AddressOf EnumWindowsProc, frm.hWnd)
End Function
Static WindowText As String
Static nRet As Long
'
'
'
If IsWindowVisible(hWnd) Then
'
'Видно ли нам окно
'
If GetParent(hWnd) = 0 Then
'
'Есть ли дочерные окна
'
If GetWindowLong(hWnd, GWL_HWNDPARENT) = 0 Then
'
'Есть ли хозяин
'
WindowText = Space$(256)
nRet = GetWindowText(hWnd, WindowText, Len(WindowText))
'переменная nRet получает длинну WindowText
'
If nRet Then
'Если caption существует вообще то продолжаем
WindowText = Left$(WindowText, nRet)
Progs(ProgsIndex) = WindowText
ProgsIndex = ProgsIndex + 1
End If
End If
End If
End If
'
'
'
EnumWindowsProc = True
End Function