Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.02.2012, 12:32   #1
sectorb
 
Регистрация: 23.11.2011
Сообщений: 7
По умолчанию Проблема со знанием WinApi

Добрый день форумчане.

Вообщем задача такая: Через программу написаную на Delphi открыть программу AnVir Task Manager (1)? потом в ней программно нажать на кнопку "Сохранить" (2), далее в выпавшем списке также программно нажать "Сохранить как текст или Html..."(3). Пока что все удалось до последнего пункта, нивкакую не хочет нажимать на кнопку (3).

Подскажите как можно получше реализовать или реализовать вообще.

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute(Handle,
  'open', 'C:\Program Files\AnVir Task Manager\AnVir.exe', nil, nil, SW_SHOWNORMAL);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin

h :=FindWindow(nil, 'AnVir Task Manager');
if h <> 0 then
begin
ShowMessage('Окно найдено');


h2 := FindWindowEx(h, 0,'ReBarWindow32', '');
if h2 <> 0 then
begin

h3 := FindWindowEx(h2, 0,'ToolbarWindow32', '');
if h3 <> 0 then
begin

   postmessage(h3, WM_LBUTTONDOWN, 10, 10);
   postmessage(h3, WM_LBUTTONUP, 10, 10);
   postmessage (h4,wm_Activate,0,0);
   postmessage (h4,wm_SetFocus,0,0);
   postmessage (h4,wm_Enable,0,0);
   postmessage(h4, WM_LBUTTONDOWN, 5, 12);
   postmessage(h4, WM_LBUTTONUP, 5,12);

end
else
ShowMessage('Окно НЕнайдено');
end
else
ShowMessage('Окно НЕнайдено')
end
else
ShowMessage('Окно НЕнайдено');
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
h :=FindWindow(nil, 'AnVir Task Manager');
postmessage(h,WM_Close,0,0);
end;

Последний раз редактировалось sectorb; 10.02.2012 в 12:37.
sectorb вне форума Ответить с цитированием
Старый 10.02.2012, 13:07   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,442
По умолчанию

Это тривиальная задачка для AutoIt. Зачем грабли-то строить?
Человек_Борща вне форума Ответить с цитированием
Старый 10.02.2012, 20:01   #3
sectorb
 
Регистрация: 23.11.2011
Сообщений: 7
По умолчанию

Мне нужно модуль написать для основной программы, именно на Delphi

Тему вверх. Проблема не решена.

Последний раз редактировалось Stilet; 11.02.2012 в 22:48.
sectorb вне форума Ответить с цитированием
Старый 11.02.2012, 22:46   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

ИМХО задача не решаема на таком уровне. А все потому что ты 100% не угадаешь координаты элементов менюшек. Разве что опираться на координаты основного окна, но что будет если менюшки переместят в другое место?
Я уже сталкивался с таким - лучше поискать другую стратегию. Может у него есть некий планировщик, который сделает то что ты хочешь? Или эта программа понимает ключи из коммандной строки...
В общем я не рекомендую идти этом путем - можно но нестабильно получится.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.02.2012, 09:22   #5
sectorb
 
Регистрация: 23.11.2011
Сообщений: 7
По умолчанию

ну а как тогда стабильно сделать?
sectorb вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
WinAPI C++ заголовок активного окна (проблема со строками) xDyPx Помощь студентам 0 18.12.2011 21:12
Требуется прграммист со знанием WPF! Yana Posh Фриланс 0 13.05.2011 13:25
Проблема с созданием дочернего окна в WinApi в VS2005 RomanGorbunov Win Api 4 15.03.2011 20:55