![]() |
|
Модераторы: Akina |
![]()
|
|
| kb-nn |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 23.12.2003 Где: Нижний Новгород Репутация: нет Всего: 1 |
но он неизвестен, вот в чем вопрос!
Добавлено @ 15:33 известно только имя файла. Добавлено @ 15:34 кстати. спасибо за книжку. |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 7 Всего: 186 |
По моему была какаято апи функция для получения hwnd по process handle. Завтра напишу сегодня нет времени
|
|||
|
||||
| kb-nn |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 23.12.2003 Где: Нижний Новгород Репутация: нет Всего: 1 |
спасибо тебе
|
|||
|
||||
| __Sergey__ |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 21.1.2005 Репутация: 4 Всего: 4 |
Для запуска процесса используй CreateProcess.
В возвращяемой структуре PROCESS_INFORMATION есть параметры, для ф-ции EnumThreadWindows. |
|||
|
||||
| Exception |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 7 Всего: 186 |
Точно!
dwThreadId - идентификатор нити. Потом с помощью EnumThreadWindows получаем список окон этой проги(их hwnd) и setwinpos Описание EnumThreadWindows:
lpfn - callback определенный через AddressOf Ну вощем дальше поймёшь. ЗЫ Книжка зовётся "Win32 API и Visual Basic" Дена Эпплмана. Это сообщение отредактировал(а) Run-time error - 3.2.2005, 18:40 |
||||
|
|||||
| kb-nn |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 23.12.2003 Где: Нижний Новгород Репутация: нет Всего: 1 |
что- то я ничего не понял.
|
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 7 Всего: 186 |
Ты когда-нить AddressOf использовал?
Смотри! Объявляешь структуру PROCESS_INFORMATION, таскаешь из нее dwThreadId (идентификатор нити). То есть процесс запускаешь не через ShellExecute а чрез CreateProcess(описание в win32api.txt) ну и все структуры там же. Поищи в MSDN CreateProcess. Так вот потом создаёшь модуль с функцией типа EnumThreadWindowsProc. Параметры не помню, порою. Потом из кода вызываешь EnumThreadWindows с парам.: dwThreadId - ид. нити lpfn - пишешь прямо в вызове AddressOf EnumThreadWindowsProc lparam оставляй 0. Например:
Для каждого окна этой нити( а у нас оно одно) Винды вызовут фнкцию EnumThreadWindowsProc написанною тобой. В вызове тебе и передадут hwnd. Вроде так: Public Function EnumThreadWindowsProc(ByVal hwnd as long, Byval lparam as long) As Long SetWindowPos(hwnd, и т.д....) 'Чтоб прервать перечисление возврати ноль. EnumThreadWindowsProc = 0 end Function Насчет описания ф-ции не уверен смотри MSDN. Добавлено @ 21:09 Короче завтра покопаюсь напишу код |
|||
|
||||
| Naghual |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: 26 Всего: 49 |
Странно, но у меня не работает CreateProcess!
Т.е. функция завершается успешно и даже имеется коекакая информация о процессе. Но вот запущенного приложения нет. Ни в исполняемых программах ни в процессах. Как-бы и не запустилось вовсе оно. Возможно я делаю что-то не так... -------------------- Я желаю всем Счастья! |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 7 Всего: 186 |
Не знаю что у тебя не так, смотри мои параметры.
Приведенный ниже код почти работает.ПОЧТИ. Трабл: при запуске управление передается другому процессу => не вызывается EnumThreadWindows. КСТАТИ: заметь, в объявлении КрэйтПроцесс я lpProcessAttributtes и lpThreadAttributes заменил типом Long и передаю 0. Код:
Подскажите, кто-нить, КАК ЗАПУСТИТЬ ПРОЦЕСС БЕЗ ПЕРЕДАЧИ УПРАВЛЕНИЯ. Это сообщение отредактировал(а) Run-time error - 5.2.2005, 22:26 |
|||
|
||||
| kb-nn |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 23.12.2003 Где: Нижний Новгород Репутация: нет Всего: 1 |
слушайте.
вроде бы работает. спасибо! но неправильно отсчитываются координаты. нельзя ли сделать так, чтобы они были абсолютными, а не относительно дочернего окна? |
|||
|
||||
| __Sergey__ |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 21.1.2005 Репутация: 4 Всего: 4 |
Используй ф-ции преобразования координат, сейчас точно нескажу,
но примерно ClientToScreen and ScreenToClient |
|||
|
||||
| kb-nn |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 23.12.2003 Где: Нижний Новгород Репутация: нет Всего: 1 |
ничего не получается.
|
|||
|
||||
| Naghual |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: 26 Всего: 49 |
Пересчитывай новое положение учитывая положение родительского окна
-------------------- Я желаю всем Счастья! |
|||
|
||||
| Exception |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 7 Всего: 186 |
Короче если выйдет перешли исходники мне на мыло pls. Всё равно считай отчасти это мои исходники
|
|||
|
||||
| kb-nn |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 23.12.2003 Где: Нижний Новгород Репутация: нет Всего: 1 |
дело в том, что я не очекнь понял функцию ClientToScreen.
она берет координаты, и что дальше? а возвращает лишь успешен ли результат... я не понимаю... вы меня простите.... |
|||
|
||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |