Форум: "WinAPI";
Текущий архив: 2007.06.10;
Скачать: [xml.tar.bz2];
ВнизУправление окном другого приложения Найти похожие ветки
← →
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 вся ветка
Форум: "WinAPI";
Текущий архив: 2007.06.10;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.041 c