Доступ к правам процесса

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
VB-constructor
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.07.2006 (Пн) 21:37
Откуда: Ростов-на-Дону

Доступ к правам процесса

Сообщение VB-constructor » 01.04.2007 (Вс) 23:54

Привет всем!

Мне нужно сделать сабклассинг над чужим приложением.

Для этого необходимр получить права к процессу, использую OpenProcess:
Код: Выделить всё

cWnd = OpenProcess(STANDARD_RIGHTS_REQUIRED, True, procId)

OldWndProc = SetWindowLong(cWnd, GWL_WNDPROC, AddressOf WindowProc)


но по видимому исрользую не ту константу. Вопрос, какую константу использовать для перехвата сообщений

Могу привести весь код.

Спасибо за ответы!
Человек рождён для того, чтобы достичь жизни...

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

Re: Доступ к правам процесса

Сообщение GSerg » 02.04.2007 (Пн) 7:21

VB-constructor писал(а):Мне нужно сделать сабклассинг над чужим приложением.

Для этого необходимр получить права к процессу

Я не понимаю связи между первым и вторым высказываением.

Для сабклассинга чужого приложения нужно физически разместить свой код в нём. Ищи тему про расширение часов в трее.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

VB-constructor
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.07.2006 (Пн) 21:37
Откуда: Ростов-на-Дону

Сообщение VB-constructor » 02.04.2007 (Пн) 9:41

Я не понимаю связи между первым и вторым высказываением.
Ну мы же делаем сабклассинг через setwindowlong, что вполне работает при сабклассе на свою собственнную программу.

А если это другая программа, другой процесс, то эта ф-я возвращает нуль и в callproc ничего не поступает

Не знаю в каком направлении идти, ну и ткунул пальцем в небо: openprocess как бы возвращает "открытый дескриптор", вот и спрашиваю, какую константу использовать для этого?

Увы темы про сачы в трее я не нашел, по-видимому она как-то по-другому называется
Человек рождён для того, чтобы достичь жизни...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 02.04.2007 (Пн) 13:10

VB-constructor писал(а):
Я не понимаю связи между первым и вторым высказываением.
Ну мы же делаем сабклассинг через setwindowlong, что вполне работает при сабклассе на свою собственнную программу.

А если это другая программа, другой процесс, то эта ф-я возвращает нуль и в callproc ничего не поступает

Верно.

VB-constructor писал(а):Не знаю в каком направлении идти, ну и ткунул пальцем в небо: openprocess как бы возвращает "открытый дескриптор", вот и спрашиваю, какую константу использовать для этого?

Мимо.

Саблассить окна чужих процессов в принципе невозможно, потому что у каждого процесса своё АП. В частности, один процесс не может вызывать процедуры, расположенные в другом процессе. В частности, он не может вызывать оконные процедуры, расположенные в других процессах.

Нужно внедрить свой код в чужой процессс.
Изображение

VB-constructor
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.07.2006 (Пн) 21:37
Откуда: Ростов-на-Дону

Сообщение VB-constructor » 02.04.2007 (Пн) 18:56

Саблассить окна чужих процессов в принципе невозможно, потому что у каждого процесса своё АП.


tyomitch, а что такое АП?
Человек рождён для того, чтобы достичь жизни...

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

Сообщение GSerg » 02.04.2007 (Пн) 19:00

Адресное пространство.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

VB-constructor
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.07.2006 (Пн) 21:37
Откуда: Ростов-на-Дону

Сообщение VB-constructor » 02.04.2007 (Пн) 20:15

GSerg
Нужно внедрить свой код в чужой процессс.

хорошо, но как это сделать? Это возможно средствами VB?
Человек рождён для того, чтобы достичь жизни...

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 02.04.2007 (Пн) 20:17


VB-constructor
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.07.2006 (Пн) 21:37
Откуда: Ростов-на-Дону

Сообщение VB-constructor » 04.04.2007 (Ср) 19:42

Ясно, спасибо всем. Но асм пока я изучу, это целая история... , посему чтобы по этой статье задать вопрос я открою уже другую тему...

Здесь только один вопрос, если можно, осветите мне: чем отличается "открытый дедескриптор, возвращаемый OpenProcess в зависимости от константы от обычного хэндла окна, полученного например с помощью FindWindow?...

Или если быть более конкретным - за что отвечают константы, которые используются в первом параметре OpenProcess:

ByVal dwDesiredAccess _
As Long
так называемый флажок доступа, на что он влияет?

?
Заранее спасибо
Человек рождён для того, чтобы достичь жизни...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 05.04.2007 (Чт) 7:16

"Дескриптор" у процесса, хэндл у окна.
У одного процесса может быть тыща окон.
Ещё не понятно?
Изображение

VB-constructor
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 160
Зарегистрирован: 24.07.2006 (Пн) 21:37
Откуда: Ростов-на-Дону

Сообщение VB-constructor » 07.04.2007 (Сб) 19:35

А, блин, точно, я как-то не подумал...

Спасибо, tyomitch

Правда это не ответило на вопрос, за что отвечают константы ByVal dwDesiredAccess As Long (флаги доступа)?
Человек рождён для того, чтобы достичь жизни...


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

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

Сейчас этот форум просматривают: Yandex-бот и гости: 117

    TopList  
cron