Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.06.10;
Скачать: CL | DM;

Вниз

Управление окном другого приложения   Найти похожие ветки 

 
rll-progr ©   (2006-10-14 14:29) [0]

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


 
Eraser ©   (2006-10-14 22:03) [1]

> [0] rll-progr ©   (14.10.06 14:29)

можно, особенно если в данный момент твое приложение активно.


 
rll-progr ©   (2006-10-14 22:11) [2]

а как это сделать?


 
Eraser ©   (2006-10-14 22:14) [3]

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

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


 
rll-progr ©   (2006-10-14 22:18) [4]

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


 
Eraser ©   (2006-10-14 22:25) [5]

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

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


 
rll-progr ©   (2006-10-14 22:36) [6]

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


 
Eraser ©   (2006-10-14 22:38) [7]

> [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:52) [8]

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


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

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


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

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

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


 
rll-progr ©   (2006-10-14 23:07) [11]

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


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


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

???


var cursor:TPoint;
begin
GetCursorPos(cursor);

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


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


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

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

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


 
rll-progr ©   (2006-10-15 13:33) [14]

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


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


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


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

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

--
Regards, LVT.


 
Eraser ©   (2006-10-15 14:36) [16]

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

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


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

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


 
kaZaNoVa ©   (2007-01-03 14:28) [18]

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


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

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


 
kaZaNoVa ©   (2007-01-03 14:39) [20]

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

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

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

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


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

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

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


 
kaZaNoVa ©   (2007-01-03 14:54) [22]

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

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



Страницы: 1 вся ветка

Текущий архив: 2007.06.10;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.029 c
15-1179219626
Rule
2007-05-15 13:00
2007.06.10
Открыл для себя новую альтернативу жабы


2-1179396741
Accel
2007-05-17 14:12
2007.06.10
русский язык в Html и Delphi


2-1179517412
Konfetka
2007-05-18 23:43
2007.06.10
Дата


15-1179253032
N3xt_
2007-05-15 22:17
2007.06.10
Программа


15-1179052941
@!!ex
2007-05-13 14:42
2007.06.10
Out of system resources.