Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Как определить заголовок активного окна? Добавлено: 05.04.08 01:12  

Автор вопроса:  JacK | Web-сайт: idiot.ru | ICQ: 9580088 
Нужно определить заголовк актвного окна и (текст) сохранить в переменную. Как это организовать?
Ах да, извините мне мою лень)) Как определить путь к исполняемой программе. т.е. к своему экзешнику?

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 User Unknown



Вечный Юзер!

ICQ: uu@jabber.cz 

Вопросов: 120
Ответов: 3302
 Профиль | | #1 Добавлено: 05.04.08 01:18
1.
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 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-сайт: idiot.ru
 Профиль | | #2
Добавлено: 05.04.08 02:48
Спасибо!
Но не совсем, то что я хотел))
Нужно определить заголовок активного окна чужой программы)
Вот пытаюсь, но не получается почему:
Private Declare Function GetActiveWindow Lib "user32" () 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 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-сайт: idiot.ru
 Профиль | | #3
Добавлено: 05.04.08 02:50
Прога, снова определяет только свой заголовок, а когда фокус пропадает вообще ничего нет!

Ответить

Номер ответа: 4
Автор ответа:
 JacK



ICQ: 9580088 

Вопросов: 13
Ответов: 1078
 Web-сайт: idiot.ru
 Профиль | | #4
Добавлено: 05.04.08 02:54
Или нужно SetActiveWindow юзать?

Ответить

Номер ответа: 5
Автор ответа:
 JacK



ICQ: 9580088 

Вопросов: 13
Ответов: 1078
 Web-сайт: idiot.ru
 Профиль | | #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-сайт: idiot.ru
 Профиль | | #7
Добавлено: 06.04.08 01:49
Спасибо огромное!)

Ответить

Номер ответа: 8
Автор ответа:
 JacK



ICQ: 9580088 

Вопросов: 13
Ответов: 1078
 Web-сайт: idiot.ru
 Профиль | | #8
Добавлено: 06.04.08 01:49
Данке шон! Всё работает))

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам