Вопрос: Можно ли получить что-либо из др. приложения? | Добавлено: 22.02.06 18:11 |
Автор вопроса: ![]() |
Как можно (если вообще можно) получить, скажем, название или что-либо другое какого нибудь элемента или переменной из Другого приложения, которое никак не связано с тем которое получает? |
Ответы | Всего ответов: 16 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() Администратор ICQ: 326066673 Вопросов: 368 Ответов: 5968 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 22.02.06 18:30 |
Общего ответа на этот вопрос быть не может.
Конкретизируй, плиз. |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 7 Ответов: 43 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 22.02.06 18:52 |
А артмани по-твоему, как работает? Память сканирует. Вот тебе и переменная из другой проги ![]() |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 15 Ответов: 63 |
Профиль | Цитата | #3 | Добавлено: 22.02.06 19:02 |
а как память просканировать? (глубый вопрос блин.. как раньше я не додумался спросить?) |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 15 Ответов: 63 |
Профиль | Цитата | #4 | Добавлено: 22.02.06 19:22 |
(если можно для vb2005) |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #5 | Добавлено: 22.02.06 23:29 |
капцовая тема по поводу сканирования памяти, недумаю что получится как
у артмани. Купи исходники артмани ![]() например что узнать значение чужого тектового поля в чужой программе, достаточно определить хендел окна и переEnum'ить (перечислить) все дочерние хенделы этого окна... Потом есть API ф-ции для получение текста с какого-то хендела итп... |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 15 Ответов: 63 |
Профиль | Цитата | #6 | Добавлено: 23.02.06 00:11 |
это тоже может пригодиться, можно поподробнее?
ну или хотя бы подскажите кто нидь все-таки насчет сканирования памяти, может чего получится. |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик 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 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 15 Ответов: 63 |
Профиль | Цитата | #8 | Добавлено: 23.02.06 21:41 |
рулёёёз))) а какую еще можно получить информацию о контролах в другой форме? А можно изменять контролы? |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 15 Ответов: 63 |
Профиль | Цитата | #9 | Добавлено: 23.02.06 21:55 |
(вообще желательно бы получить координаты контрола и формы, на которой он находится) |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 15 Ответов: 63 |
Профиль | Цитата | #10 | Добавлено: 23.02.06 22:32 |
[QUOTE]EnumChildWindows hWndParent, AddressOf EnumElement_, 0&[/QUOTE]
плин! в vs2005 на AddressOf ошибку выдает! (в vb6 все путем, работает), чем его можно заменить в vb2005? |
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #11 | Добавлено: 23.02.06 23:19 |
апетит во время еды? Можно всё... ограничение лишь твоими знаниями...
|
Номер ответа: 12 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 15 Ответов: 63 |
Профиль | Цитата | #12 | Добавлено: 23.02.06 23:48 |
то-то и проблема что не знаю как. поиски ничем не помогли... подскажите пожалуйста. хотя бы про AddressOf |
Номер ответа: 13 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 233286456 Вопросов: 34 Ответов: 5445 |
Web-сайт: Профиль | Цитата | #13 | Добавлено: 24.02.06 00:07 |
поиск не помогает? плохо ищешь или фантазия испорченая ![]() |
Номер ответа: 14 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 0 Ответов: 33 |
Профиль | Цитата | #14 | Добавлено: 24.02.06 11:14 |
По поводу AddressOf - в VB.NET применяются делегаты(Delegates) в поиск, или FAQ.
По поводу получения данных:нуу, если тебя так интересует можно просто "вынуть" всю бинарную начинку процесса. Но что это тебе даст?? В конце концов вопрос слишком общий, что именно тебе надо? |
Номер ответа: 15 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик 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 сам... |
|