Пжл, из Экселя прочитать СтатусБар другого прилож. через API

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
andyst
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 10.08.2004 (Вт) 17:04
Откуда: Gonolulu

Пжл, из Экселя прочитать СтатусБар другого прилож. через API

Сообщение andyst » 10.08.2004 (Вт) 17:19

Пжл, из Экселя или Ворда прочитать СтатусБар другого прилож. через API функции. Заранее благодарен
Помогите, пжл., из Экселя или Ворда прочитать СтатусБар другого приложения (через API

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

Сообщение GSerg » 10.08.2004 (Вт) 17:28

Ну даже в подпись вопрос вставил, вот ведь упорство...

Копать сюда:
FindWindow
EnumChildWindows, пока GetClassName не вернёт "msctls_statusbar32"
SendMessage (просмотри, для чего нужны константы SB_)
В общем, есть куда копать :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

andyst
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 10.08.2004 (Вт) 17:04
Откуда: Gonolulu

Сообщение andyst » 11.08.2004 (Ср) 18:33

Спасибо. А где можно прочитать про константы SB_ для
SendMessage? Может кто примером поможет????
Помогите, пжл., из Экселя или Ворда прочитать СтатусБар другого приложения (через API

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

Сообщение GSerg » 11.08.2004 (Ср) 18:54

Нееееет, сам, сам :)
http://www.activevb.de/rubriken/apiview ... ereng.html

Это ApiViewer. Харошая вещь...
А значения констант - www.msdn.microsoft.com
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

andyst
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 10.08.2004 (Вт) 17:04
Откуда: Gonolulu

Что-то есть, но чего-то не хватает

Сообщение andyst » 13.08.2004 (Пт) 19:29

Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) 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 Const WM_USER As Long = &H400
Private Const SB_GETTEXTA As Long = (WM_USER + 2)
'Private Const SB_GETTEXTW As Long = (WM_USER + 13)


Dim tWnd As Long, bWnd As Long

Private Sub CommandButton1_Click()

Dim rtl As Long
Dim MyStr As String

'Get the my window handle
tWnd = FindWindow("MeClassName", vbNullString)
'Get the subwindow handle
bWnd = FindWindowEx(tWnd, ByVal 0&, "msctls_statusbar32", vbNullString)

rtl = SendMessage(bWnd, SB_GETTEXTA, -1, ByVal CStr(Text1.Text))
'Create a buffer
MyStr = String(GetWindowTextLength(bWnd) + 1, Chr$(0))
'Get the window's text
GetWindowText bWnd, MyStr, Len(MyStr)
MsgBox MyStr

End Sub :roll:
Помогите, пжл., из Экселя или Ворда прочитать СтатусБар другого приложения (через API


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList