WinAPI

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

WinAPI

Сообщение vvs_adm » 03.02.2005 (Чт) 3:54

Option Explicit

Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal Msg As Long, wParam As Any, lParam As Any) As Long
Private Declare Function GetActiveWindow Lib "user32.dll" () As Long
Private Declare Function GetWindowText Lib "user32.dll" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

Dim RetVal As Long
Dim hWndw As Long
Dim lpText As String

Private Sub Form_Resize()

hWndw = GetActiveWindow()
RetVal = GetWindowText(hWndw, lpText, CLng(255))
MsgBox (lpText)

End Sub

Ну почему же MsgBox выдает пустую строку при изменении размеров окна :(

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 03.02.2005 (Чт) 3:59

Ой кошмар какой... Интересно, почему не рушится?..

Надо же буфер-то отводить под строку...

lpText=space$(255)
GetWindowText hWndw, lpText, len(lptext)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 03.02.2005 (Чт) 4:07

Спасибо...
Тока почему-то
lpText = Space$(255)
Can't assign to array

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 03.02.2005 (Чт) 8:47

Мать моя женщина :)

Надо объявлять ByVal lParam As String.

Если объявляешь, как Any, то тогда Dim lpText(0 To 255) As Byte. Или Dim lpText As Long, и производишь AllocMemory.
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 9

    TopList