Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Управление окном другого приложения [D6, D7, Win2k, WinXP]


Страницы:   1 2

rll-progr ©   (2006-10-14 14:29:00) 

Есть некое приложение. В нем есть видимая неактивная кнопка. Можно ли  подключиться к этому приложению и сделать кнопку активной. Очень надо.


kaZaNoVa   (2007-01-03 14:54:00) [1]

bb2   (03.01.07 14:49) [21]
Дело в том, что приложение, которым мне нужно управлять, чужое. Возможна ли при этом OLE-автоматизация?

ИМХО, если в чужой проге это не предусмотрено то не получится


bb2   (2007-01-03 14:49:00) [2]

Дело в том, что приложение, которым мне нужно управлять, чужое. Возможна ли при этом OLE-автоматизация?

За функции - спасибо, функции отличные! Обязательно применю.


kaZaNoVa   (2007-01-03 14:39:00) [3]

bb2   (03.01.07 14:34) [19]
записать действия юзера и сделать в проге ..

ну типа юзер запускает прогу водит мышкой все это мутить ... но имхо такой подход тупиковый ...(

функции по теме:

keybd_event()
mouse_event()
GetCursorPos()
SetCursorPos()
SetForegroundWindow()


bb2   (2007-01-03 14:34:00) [4]

Да вообще-то хотелось бы... А как можно?


kaZaNoVa   (2007-01-03 14:28:00) [5]

bb2   (03.01.07 14:17) [17]
можно, а нужно ли? имхо лучше OLE-автоматизация ..


bb2   (2007-01-03 14:17:00) [6]

А как вообще сделать так, чтобы одно приложение управляло другим? Можно ли, чтобы программа САМА нашла это другое приложение (например, по имени его EXE-файла), открыла в нём нужные окна и т.д. Если кто знает, подскажите, пожалуйста!


Eraser   (2006-10-15 14:36:00) [7]

> [9] rll-progr ©   (14.10.06 23:00)
> нашел . ну фокус она полечает а как чтобы она активна стала?

учитесь по-четче формулировать вопросы.


Leonid Troyanovsky   (2006-10-15 14:27:00) [8]


> rll-progr ©   (15.10.06 13:33) [14]


Недоступный контрол фокус не получает,
так что не надо было [9].

Неактивная и недоступная - две большие разницы.

--
Regards, LVT.


rll-progr   (2006-10-15 13:33:00) [9]

РАБОТАЕТ!!!!!! Спасибо.
EnableWindow(+дескриптор кнопки+,true)


Eraser   (2006-10-15 01:47:00) [10]

> [12] Psychedelic ©   (15.10.06 00:32)

сами-то поняли что написали? )
если да - то прокомментируйте )


Psychedelic   (2006-10-15 00:32:00) [11]


> точного и оффициального рецепта нету. нужно использовать
> различные полу-хакерские технологии.. но вообще я этим вопросом
> не интересовался досконально.

???


var cursor:TPoint;
begin
GetCursorPos(cursor);

EnableWindow(WindowFromPoint(cursor){или дескриптор кнопки},true)


Проводим ммышкой по неактивным, и они становяться активными....


rll-progr   (2006-10-14 23:07:00) [12]

ну и на этом спасибо


Eraser   (2006-10-14 23:05:00) [13]

> [9] rll-progr ©   (14.10.06 23:00)

точного и оффициального рецепта нету. нужно использовать различные полу-хакерские технологии.. но вообще я этим вопросом не интересовался досконально.


rll-progr   (2006-10-14 23:00:00) [14]

нашел . ну фокус она полечает а как чтобы она активна стала?


rll-progr   (2006-10-14 22:52:00) [15]

Ну суть я понял. Есть ссылка на твою прогу WS а то я свою похожую дома на компе не нашел (на работе точно помню есть)


Eraser   (2006-10-14 22:38:00) [16]

> [6] rll-progr ©   (14.10.06 22:36)

ну для теста я накатал уж очень примитивный примерчик
procedure TForm1.Button1Click(Sender: TObject);
var
 hWindow, hButton: HWND;
begin
 hWindow := FindWindow('TfmOptions', nil);
 hButton := StrToInt(edButtonHandle.Text);
 SetForegroundWindow(hWindow);
 SendMessage(hButton, WM_SETFOCUS, 0, 0);
end;

здесь нужно в поле ввода edButtonHandle вручную вводить хэндл нужной кнопки (который я получил с пом. программы Window Scaneer от InqSoft).


rll-progr   (2006-10-14 22:36:00) [17]

Раз уж ты попробовал не напишешь чкть по подробнее


Eraser   (2006-10-14 22:25:00) [18]

> [4] rll-progr ©   (14.10.06 22:18)

только что попробовал - катит.


rll-progr   (2006-10-14 22:18:00) [19]

Не так вроде не прокатит. Есть одно приложение с неактивной кнопкой и мое из которого я должен кнопку другого приложения сделать активной.


Eraser   (2006-10-14 22:14:00) [20]

> [2] rll-progr ©   (14.10.06 22:11)

примерное так:
вызвать SetForegroundWindow, потом послать нужной кнопке WM_SETFOCUS.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо