Страница: 1 | 2 |
Вопрос: Можно ли получить что-либо из др. приложения?
Добавлено: 22.02.06 18:11
Автор вопроса: MaAst
Как можно (если вообще можно) получить, скажем, название или что-либо другое какого нибудь элемента или переменной из Другого приложения, которое никак не связано с тем которое получает?
Ответы
Всего ответов: 16
Номер ответа: 1
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #1
Добавлено: 22.02.06 18:30
Общего ответа на этот вопрос быть не может.
Конкретизируй, плиз.
Номер ответа: 2
Автор ответа:
ChemistN1
Вопросов: 7
Ответов: 43
Web-сайт:
Профиль | | #2
Добавлено: 22.02.06 18:52
А артмани по-твоему, как работает? Память сканирует. Вот тебе и переменная из другой проги
Номер ответа: 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
плин! в 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-сайт:
Профиль | | #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 сам...