Страница: 1 |
Страница: 1 |
Вопрос: Как определить заголовок активного окна?
Добавлено: 05.04.08 01:12
Автор вопроса: JacK | Web-сайт:
Нужно определить заголовк актвного окна и (текст) сохранить в переменную. Как это организовать?
Ах да, извините мне мою лень)) Как определить путь к исполняемой программе. т.е. к своему экзешнику?
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа:
User Unknown
Вечный Юзер!
ICQ: uu@jabber.cz
Вопросов: 120
Ответов: 3302
Профиль | | #1
Добавлено: 05.04.08 01:18
1.
Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Private Sub Form_Activate()
'KPD-Team 1999
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
Dim MyStr As String
'Create a buffer
MyStr = String(GetWindowTextLength(Me.hwnd) + 1, Chr$(0))
'Get the window's text
GetWindowText Me.hwnd, MyStr, Len(MyStr)
MsgBox MyStr
End Sub
2. App.Path
Номер ответа: 2
Автор ответа:
JacK
ICQ: 9580088
Вопросов: 13
Ответов: 1078
Web-сайт:
Профиль | | #2
Добавлено: 05.04.08 02:48
Спасибо!
Но не совсем, то что я хотел))
Нужно определить заголовок активного окна чужой программы)
Вот пытаюсь, но не получается почему:
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 Sub Timer1_Timer()
Dim MyStr As String
Dim hWnd As Long
hWnd = GetActiveWindow()
MyStr = String(GetWindowTextLength(hWnd) + 1, Chr$(0))
GetWindowText hWnd, MyStr, Len(MyStr)
Label1.Caption = MyStr
End Sub
тут я использовал GetActiveWindow - она вроди как должна определять хендл чужого окошка?)
Номер ответа: 3
Автор ответа:
JacK
ICQ: 9580088
Вопросов: 13
Ответов: 1078
Web-сайт:
Профиль | | #3
Добавлено: 05.04.08 02:50
Прога, снова определяет только свой заголовок, а когда фокус пропадает вообще ничего нет!
Номер ответа: 4
Автор ответа:
JacK
ICQ: 9580088
Вопросов: 13
Ответов: 1078
Web-сайт:
Профиль | | #4
Добавлено: 05.04.08 02:54
Или нужно SetActiveWindow юзать?
Номер ответа: 5
Автор ответа:
JacK
ICQ: 9580088
Вопросов: 13
Ответов: 1078
Web-сайт:
Профиль | | #5
Добавлено: 05.04.08 03:10
Хм... странно, но мой код работает в некоторых приложениях а в некоторых нет)) С чем это связано?
Номер ответа: 6
Автор ответа:
Viper
ICQ: 249094859
Вопросов: 0
Ответов: 310
Профиль | | #6
Добавлено: 05.04.08 07:56
Вообще-то GetActiveWindow возвращает активное окно потока, вызвавщего эту функцию, так что это всегда будет твое окно. А то, что тебе надо это GetForegroundWindow
Номер ответа: 7
Автор ответа:
JacK
ICQ: 9580088
Вопросов: 13
Ответов: 1078
Web-сайт:
Профиль | | #7
Добавлено: 06.04.08 01:49
Спасибо огромное!)
Номер ответа: 8
Автор ответа:
JacK
ICQ: 9580088
Вопросов: 13
Ответов: 1078
Web-сайт:
Профиль | | #8
Добавлено: 06.04.08 01:49
Данке шон! Всё работает))