Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 | 2 |

 

  Вопрос: Можно ли получить что-либо из др. приложения? Добавлено: 22.02.06 18:11  

Автор вопроса:  MaAst
Как можно (если вообще можно) получить, скажем, название или что-либо другое какого нибудь элемента или переменной из Другого приложения, которое никак не связано с тем которое получает?

Ответить

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

Номер ответа: 1
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #1
Добавлено: 22.02.06 18:30
Общего ответа на этот вопрос быть не может.
Конкретизируй, плиз.

Ответить

Номер ответа: 2
Автор ответа:
 ChemistN1



Вопросов: 7
Ответов: 43
 Web-сайт: snurs.narod.ru
 Профиль | | #2
Добавлено: 22.02.06 18:52
А артмани по-твоему, как работает? Память сканирует. Вот тебе и переменная из другой проги 8-)

Ответить

Номер ответа: 3
Автор ответа:
 MaAst



Вопросов: 15
Ответов: 63
 Профиль | | #3 Добавлено: 22.02.06 19:02
а как память просканировать? (глубый вопрос блин.. как раньше я не додумался спросить?)

Ответить

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



Вопросов: 15
Ответов: 63
 Профиль | | #4 Добавлено: 22.02.06 19:22
(если можно для vb2005)

Ответить

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


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #5 Добавлено: 22.02.06 23:29
капцовая тема по поводу сканирования памяти, недумаю что получится как
у артмани. Купи исходники артмани :) Или в корне измени идею... т.е.
например что узнать значение чужого тектового поля в чужой программе,
достаточно определить хендел окна и переEnum'ить (перечислить) все дочерние хенделы
этого окна... Потом есть API ф-ции для получение текста с какого-то
хендела итп...

Ответить

Номер ответа: 6
Автор ответа:
 MaAst



Вопросов: 15
Ответов: 63
 Профиль | | #6 Добавлено: 23.02.06 00:11
это тоже может пригодиться, можно поподробнее?
ну или хотя бы подскажите кто нидь все-таки насчет сканирования памяти, может чего получится.

Ответить

Номер ответа: 7
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #7 Добавлено: 23.02.06 18:31
Собирает текст из всех окошек любого приложения


'Модуль
Private Declare Function EnumChildWindows Lib "user32" (ByVal hWndParent As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
Private Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Public TextBoxTxt() As String

Public Function EnumElement_(ByVal hwnd As Long, ByVal lParam As Long) As Long 'CALLBACK !
'Перечисляет все элементы в указанном окне
Dim c As Byte, t As Integer
Dim sText As String
Dim sClass As String
        sClass = Space$(128)
        c = GetClassName(hwnd, sClass, 128)
        If c > 0 Then
            sClass = Left$(sClass, c)
                sText = Space$(128)
                t = GetWindowText(hwnd, sText, 128)
                ReDim Preserve TextBoxTxt(Counter)
                    TextBoxTxt(Counter) = "[" & sClass & "] = " & Chr(34) & Left$(sText, t) & Chr(34) & " (" & hwnd & ";)"
                    Counter = Counter + 1
        End If
EnumElement_ = 1
End Function

Public Sub EnumElement(hWndParent As Long)
'Перечесляет все элементы в указанном окне
    EnumChildWindows hWndParent, AddressOf EnumElement_, 0&
End Sub
'Конец Модуля

'Форма:

'Накидай на форму отфонаря каких-то контролов...

Private Sub Form_Load()
    'Me.hwnd - хендел текущей формы, но можно передать любой другой
    ;(другого приложения, см примеры...)
    Call EnumElement(Me.hwnd)
    MsgBox Join(TextBoxTxt, vbCrLf)
End Sub


Ответить

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



Вопросов: 15
Ответов: 63
 Профиль | | #8 Добавлено: 23.02.06 21:41
рулёёёз))) а какую еще можно получить информацию о контролах в другой форме? А можно изменять контролы?

Ответить

Номер ответа: 9
Автор ответа:
 MaAst



Вопросов: 15
Ответов: 63
 Профиль | | #9 Добавлено: 23.02.06 21:55
(вообще желательно бы получить координаты контрола и формы, на которой он находится)

Ответить

Номер ответа: 10
Автор ответа:
 MaAst



Вопросов: 15
Ответов: 63
 Профиль | | #10 Добавлено: 23.02.06 22:32
[QUOTE]EnumChildWindows hWndParent, AddressOf EnumElement_, 0&[/QUOTE]

плин! в vs2005 на AddressOf ошибку выдает! (в vb6 все путем, работает), чем его можно заменить в vb2005?

Ответить

Номер ответа: 11
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #11 Добавлено: 23.02.06 23:19
апетит во время еды? Можно всё... ограничение лишь твоими знаниями...

Ответить

Номер ответа: 12
Автор ответа:
 MaAst



Вопросов: 15
Ответов: 63
 Профиль | | #12 Добавлено: 23.02.06 23:48
то-то и проблема что не знаю как. поиски ничем не помогли... подскажите пожалуйста. хотя бы про AddressOf

Ответить

Номер ответа: 13
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #13
Добавлено: 24.02.06 00:07
поиск не помогает? плохо ищешь или фантазия испорченая ;)

Ответить

Номер ответа: 14
Автор ответа:
 ANDREY



Вопросов: 0
Ответов: 33
 Профиль | | #14 Добавлено: 24.02.06 11:14
По поводу AddressOf - в VB.NET применяются делегаты(Delegates) в поиск, или FAQ.
По поводу получения данных:нуу, если тебя так интересует можно просто "вынуть" всю бинарную начинку процесса. Но что это тебе даст?? В конце концов вопрос слишком общий, что именно тебе надо?

Ответить

Номер ответа: 15
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #15 Добавлено: 24.02.06 16:17
>вообще желательно бы получить координаты контрола и формы, на которой он находится


Public Sub GetWindowsRECT(hwnd As Long, ProcID As Integer, Height As Integer, Top As Integer, Left As Integer, Witch As Integer)
'Возвращает информацию о окне: кординаты, высоту, ширину
Dim rctTemp As RECT

     GetWindowThreadProcessId hwnd, lngProcID
     GetWindowRect hwnd, rctTemp
     
     'Load the labels with the info retrieved.
ProcID = lngProcID
Top = rctTemp.Top
Left = rctTemp.Left

Height = rctTemp.Bottom - Top
Witch = rctTemp.Right - Left
End Sub


API сам...

Ответить

Страница: 1 | 2 |

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



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