Текущий архив: 2006.07.16;
Скачать: CL | DM;
ВнизКак нажать кнопку чужого приложения. Найти похожие ветки
← →
Тоха © (2006-06-26 06:51) [0]Собственно сабж.
Мне надо нажать кнопку в чужом приложении, скрытно от пользователя (это не хакерство, упоси господь).
Поможите плиз.
← →
Handle (2006-06-26 11:06) [1]
PostMessage("handle кнопки в чужом приложении" , BM_CLICK, 0, 0);
← →
Тоха © (2006-06-26 11:36) [2]Спасибо. Извените за наглость, и за то что не в том разделе написал, но можно небольшой примерчик, как этот хэндл узнать?
Плиз. Ну очень нада.
← →
Тоха © (2006-06-26 11:41) [3]Мне надо сделать что инсталяшка другого производителя шла в скрытом (полускрытом) состоянии.
← →
Handle (2006-06-26 12:05) [4]
> Мне надо нажать кнопку в чужом приложении
В каком приложении?
> как этот хэндл узнать
Например вот такprocedure TForm1.Timer1Timer(Sender: TObject);
begin
Caption:= ( IntToStr (WindowFromPoint(Mouse.CursorPos)));
end;
← →
Handle (2006-06-26 12:08) [5]
> Мне надо сделать что инсталяшка другого производителя шла
> в скрытом (полускрытом) состоянии
А помоему хакерство
← →
ANB © (2006-06-26 13:42) [6]
> Тоха © (26.06.06 11:41) [3]
Смотреть FindWindow. Надежнее будет EnumWindows (если запускаешь инсталляшку через CreateProcess, то сможешь фильтровать окна по ProcessID, чтобы случайно не поймать другое).
← →
Плохиш © (2006-06-26 13:57) [7]
> Тоха © (26.06.06 11:41) [3]
> Мне надо сделать что инсталяшка другого производителя шла
> в скрытом (полускрытом) состоянии.
Используй ключ "-с" при запуске "инсталяшки другого производителя"
← →
Плохиш © (2006-06-26 13:58) [8]
> Плохиш © (26.06.06 13:57) [7]
Пардон, ключ "-s", клавиатуру забыл переключить :-)
← →
Тоха © (2006-06-26 14:36) [9]Спасибо. Буду пробовать.
Действительно не хакерство. Это что бы в своей же сети на работе развернуть приложение. А пользователю - это нафиг не надо.
← →
evvcom © (2006-06-26 14:42) [10]Для этого не надо кнопки нажимать. Для этого есть ключи.
← →
Medved © (2006-06-26 20:10) [11]http://unattended.oszone.net/
http://unattended.msfn.org/
http://www.autoitscript.com/autoit3/
http://www.nncron.ru/index_ru.shtml
← →
Тоха © (2006-06-27 06:29) [12]Спасибо всем, очень помогли.
> Для этого не надо кнопки нажимать. Для этого есть ключи.
Нету ключей. В том то и дело.
вот нашел примерчик:
==============
function EnumChildProc(Wnd: hWnd; SL: TStrings): BOOL; stdcall;
var
szFull: array[0..MAX_PATH] of Char; //Buffer for window caption
begin
Result := Wnd <> 0;
if Result then
begin
GetWindowText(Wnd, szFull, SizeOf(szFull)); // put window text in buffer
if (Pos(SL[0], StrPas(szFull)) > 0) // Test for text
and (SL.IndexOfObject(TObject(Wnd)) < 0) // Test for duplicate handles
then SL.AddObject(StrPas(szFull), TObject(Wnd)); // Add item to list
EnumChildWindows(Wnd, @EnumChildProc, Longint(SL)); //Recurse into child windows
end;
end;
function ClickButton(ParentWindow: Hwnd; ButtonCaption: string): Boolean;
var
SL: TStringList;
H: hWnd;
begin
SL := TStringList.Create;
try
SL.AddObject(ButtonCaption, nil); // First item in list is text to find
EnumChildWindows(ParentWindow, @EnumChildProc, Longint(SL));
H := 0;
case SL.Count of
1: ShowMessage("Window text not found.");
2: H := hWnd(SL.Objects[1]);
else
ShowMessage("Ambiguous text detected.");
end;
finally
SL.Free;
end;
Result := H <> 0;
if Result then PostMessage(H, BM_CLICK, 0, 0);
end;
// Rememeber the ampresand for underlined characters
// if the "c" is underlined, then the text is "&click"
==============
Страницы: 1 вся ветка
Текущий архив: 2006.07.16;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.009 c