Форум: "WinAPI";
Текущий архив: 2002.05.30;
Скачать: [xml.tar.bz2];
ВнизИмитация нажатия кнопки. Найти похожие ветки
← →
[HDD]John (2002-03-27 17:45) [0]Надо имитировать нажатие кнопки. Использую функцию keybd_event.
Но она нажимает только в активном окне, а можно ли сделать так чтобы она нажимала в неактивном окне ????
На что мне ответили:
Попробуй отправить тому окну WM_KEYDONW и WM_KEYUP, должно сработать.
Но чето не понял как это мне поможет ???Поясните ПЛИЗ
← →
cok (2002-03-27 18:20) [1]КОРОЧЕ, СКАЛИХАСОВСКИ, ЕНТО УЖЕ БЫЛО:
Var
ButClassName,ButCaption:String;
MainWnd,ButWnd:HWND;
Begin
ButClassName:="имя_класса_кнопки";
ButCaption:="надпись_на_кнопке";
MainWnd:=<хендл_окна_на_котором_находится_кнопка>;
ButWnd:=FindWindowEx(MainWnd, 0, PChar(ButClassName), PChar(ButCaption));
PostMessage(ButWnd, BM_CLICK, 0, 0);
End;
← →
Chris (2002-03-28 08:18) [2]Если кому-нибудь пригодится, то эту прогу я использую при включении компьютера. Запускается она по ключу из RunService (до появления окошка "введите сетевой пароль") и нажимает кнопку OK (у меня пустой пароль).
procedure TForm1.Timer1Timer(Sender: TObject);
var i: integer;
cName, wName: PChar;
begin
Timer1.Enabled:=False;
if FindWindow("#32770","Ввод сетевого пароля")>32 then
begin
cName:=StrNew(" ");
wName:=StrNew(" ");
for i:=32 to 10000 do
if isWindow(i) then
begin
GetClassName(i,cName,50);
GetWindowText(i,wName,50);
if (cName="Button")and(wName="ОК") then
begin
SendMessage(i,WM_LBUTTONDOWN,0,0);
// Внимание! Кнопку надо не только нажать, но еще и отпустить!
SendMessage(i,WM_LBUTTONUP,0,0);
Close;
end;
end;
StrDispose(cName);
StrDispose(wName);
end;
Timer1.Enabled:=True;
end;
← →
[HDD]John (2002-03-28 13:48) [3]Класные штуки сеньку вери мач они мне пригодятся....Но боюсь я не правильно объяснил... Мне надо чтобы в левом (не дельфинском) окне эмитировалось нажатие КЛАВИШИ ТАВ
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.05.30;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.006 c