|
|
|
Не катит SB_GETTEXTA
|
|||
|---|---|---|---|
|
#18+
Hello, All! Люди помогите понять, почему следующий код не фурычит, точнее фурычит, но не так как надо. После выполнения вылетает вот такая ошибка(Access violation at addres 773C6762 in module 'comctl32.dll'. Write of address 001B4074), типа я не в свою память записываю...? Причем ошибка не фатальная, жмем ‘Ok’ и все можно работать дальше, с одним приложением, но при всех прочих совершенно грохает другое приложение! Option Explicit Private hwndQ As Long 'дескриптор Private hwndTStatus As Long 'дескриптор Private retval As Long ' возвращаемое значение Private cBuf As Long 'длина строки из контрола Private sBuf As String 'сама извлекаемая строка Private lResp As Long Private Sub Command1_Click() 'находим хендл окна вритера hwndQ = FindWindow(vbNullString, "тырым-пырым") ' Устанавливаем окна вритера текущим приоритетным окном, если есть запуск If hwndQ <> 0 Then retval = SetForegroundWindow(hwndQ) ' Узнаем хендл StatusBar'а hwndTStatus = FindWindowEx(hwndQ, 0, "TStatusBar", vbNullString) ' Узнаем число элементов списка cBuf = SendMessage(hwndTStatus, SB_GETTEXTLENGTHA, ByVal CLng(0), ByVal CLng(0)) ' Готовим буффер sBuf = Space(cBuf) & vbNullChar ' Извлекаем данные lResp = SendMessage(hwndTStatus, SB_GETTEXTA, ByVal 0, ByVal sBuf) End Sub Ошибка происходит именно в последней строке, когда я пытаюсь извлечь из StatusBar текст, самое интересное, что длина текста определяется без проблем. Очень надеюсь на помощь, так как хочеца все сделать кульно, а то придется идти только по длине строки, что душу не радует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2007, 19:18 |
|
||
|
|

start [/forum/topic.php?fid=60&fpage=212&tid=2163153]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
18ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 301ms |

| 0 / 0 |
