Фокусировка!!!!!

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Netguard
Постоялец
Постоялец
 
Сообщения: 489
Зарегистрирован: 26.07.2002 (Пт) 13:31
Откуда: Russia

Фокусировка!!!!!

Сообщение Netguard » 04.10.2003 (Сб) 11:14

У меня проблемка.... Мне надо определенной программе передавать комманды клавишами. Что я делаю...

AppActivate IdActive ----по номеру процесса активирую программу
SendKeys "W" ----передаю комманду

Так вот в чем проблема...... При вызове AppActivate нужное преложение вылазит на передний план. А мне нужно чтоб оно сохранялась на той позиции на которой было. Т.е. если было приложение поверх нужной программы то все так бы и оставалась после передачи комманд.

Как это реализовать?????

Netguard
Постоялец
Постоялец
 
Сообщения: 489
Зарегистрирован: 26.07.2002 (Пт) 13:31
Откуда: Russia

Сообщение Netguard » 04.10.2003 (Сб) 18:08

Ну че прям никто с такой проблемкой не сталкивался???? Откликнитесь

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 04.10.2003 (Сб) 19:00

Netguard писал(а):Ну че прям никто с такой проблемкой не сталкивался???? Откликнитесь


А как ты представляешь "сделать окно активным, но чтоб оно активным не было"? :wink:

Тут ИМХО надо проге сообщение послать:
Код: Выделить всё
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Dim had As Long

had = FindWindow(vbNullString, "ЗАГОЛОВОК_ОКНА")
If had <> 0 Then PostMessage had, WM_KEYDOWN, 13, 0&


PostMessage had, WM_KEYDOWN, 13, 0&
В моем случае, я посылал ентер (там ещё цикл я сделал :))
В твоем же случае, любую другую букву - 87 (W) например.
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

Netguard
Постоялец
Постоялец
 
Сообщения: 489
Зарегистрирован: 26.07.2002 (Пт) 13:31
Откуда: Russia

Сообщение Netguard » 05.10.2003 (Вс) 11:20

Поиск по заголовку окна мне не подходит. Мне надо по номеру процесса. Т.е. я знаю номер запущенного процесса и по нему нахожу приложение и передаю комманды без вывода на передний план.
А по заголовку окна не подходит так как название окон постоянно меняются в приложении.

FaKk2
El rebelde gur&#250;
El rebelde gur&#250;
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 06.10.2003 (Пн) 22:55

Netguard писал(а):Поиск по заголовку окна мне не подходит. Мне надо по номеру процесса. Т.е. я знаю номер запущенного процесса и по нему нахожу приложение и передаю комманды без вывода на передний план.
А по заголовку окна не подходит так как название окон постоянно меняются в приложении.


Но изначально, заголовок тебе известен?
Вот и храни его хендл :)
Или нет?.... :roll:
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

Netguard
Постоялец
Постоялец
 
Сообщения: 489
Зарегистрирован: 26.07.2002 (Пт) 13:31
Откуда: Russia

Сообщение Netguard » 09.10.2003 (Чт) 19:57

как я узнаю я его хэндл если не знаю имя заголовка окна???? я знаю точно название запускного файла. По названию файла я нахожу его номер процесса и мне надо зная номер процесса передать этому приложению под известным номером комманду. Так как это сделать?Я идиот! Убейте меня, кто-нибудь!??

Netguard
Постоялец
Постоялец
 
Сообщения: 489
Зарегистрирован: 26.07.2002 (Пт) 13:31
Откуда: Russia

Сообщение Netguard » 11.10.2003 (Сб) 8:54

Здесь модераторы вообще есть???? ответьте хотябы вы?Я идиот! Убейте меня, кто-нибудь!?

ZeroX
Бывалый
Бывалый
 
Сообщения: 207
Зарегистрирован: 29.04.2003 (Вт) 12:36
Откуда: Мой адрес не дом и не улица, мой адрес Советский Союз

Сообщение ZeroX » 11.10.2003 (Сб) 9:49

Так вот, если ты знаешь PID процесса, то найти все окна пренадлежащие этому процессу очень просто. Что тебе и нужно сделать. Извини кода под рукой нет, раскопаю выложу в топике.
Каждый warning мечтает стать error'om


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

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

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

    TopList