Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сказать "ОК" диалоговому окну? 
V
    Опции темы
Diver
  Дата 14.1.2007, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 27.2.2004

Репутация: нет
Всего: нет



Всем привет! У меня возникла такая проблема...

Компьютер соединяется с Интернет через прокси-сервер и при загрузке каждой новой страницы пребует ввод логина и сетевого пароля. Вводим, жмем ОК - и вроде бы все нормально, но только до тех пор пока не переходиш по следующей ссылке. Использую браузер Mozilla FireFox - там в выскакивающем окошке есть галочка "Использовать менеджер паролей чтобы запомнить данный пароль". Даже в таком случае запрос постоянно появляется при переходе на новую страницу...

Задача (как себе представляю ее я) ... написать маленькую программу которая бы искала в системе данное окно и нажимала кнопку ОК. Требуется перебрать все окна в системе и послать сообщение... но как в системе отрабатывать диалоговые окна.
Буду признателен за любые советы и предложения!
PM MAIL   Вверх
Rondo
Дата 15.1.2007, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 154
Регистрация: 24.2.2006
Где: там..

Репутация: нет
Всего: нет



Код

var
  h: hwnd;
begin
  h := FindWindow(nil, 'Information'); //Находим диалоговое окно
  if h <> 0 then
    h := FindWindowEx(h, 0, nil, 'OK'); //находим кнопку на окне
  SendMessage(h, BM_CLICK, 0, 1); //Отсылаем мессагу для клика
  ...
end;


Это сообщение отредактировал(а) Rondo - 15.1.2007, 08:55
--------------------
Начинающий кодер  
PM MAIL ICQ   Вверх
CatATonik
Дата 15.1.2007, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 12.1.2007
Где: Москва

Репутация: 6
Всего: 8



Можно проще:

Код

ModalResult := mrOK;

PM MAIL   Вверх
Diver
Дата 15.1.2007, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 27.2.2004

Репутация: нет
Всего: нет



Интересные предложения. Попробовал первый вариант - с обычными формами работает на ура, но вот с диалоговыми как-то не очень. К примеру: не получается нажать кнопку "да" в окошке которое выдает Paint  когда пытаешься его закрыть, а рисунок не сохранен... Как быть?

А на счет ModalResult := mrOK; чего-то не понял как его использовать.
PM MAIL   Вверх
Insert
Дата 15.1.2007, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 13.4.2006

Репутация: 1
Всего: 1



А не легче настроить браузер на работу через прокси, у меня на работе тож мозилла, тоже прокси: 
"Настройки - Дополнительно-Сщединение - Настроить - Установить настройки прокси вручную" вводишь там все как полагается, ничего не должен спрашивать.
--------------------
пьяный русский кодер практически непобедим
PM MAIL   Вверх
CatATonik
Дата 15.1.2007, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 12.1.2007
Где: Москва

Репутация: 6
Всего: 8



Насчет ModalResult это я погорячился, когда смотрел тему, там текст сообщения другой был. 
Интересно кстати, почему?
PM MAIL   Вверх
Winprogrammer
Дата 15.1.2007, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 23.3.2006
Где: ::Россия.РСО-Алан ия.Владикавка

Репутация: нет
Всего: нет



Цитата(CatATonik @ 15.1.2007,  09:26)
Можно проще:

Код

ModalResult := mrOK;

Не стоит забывать, что эта форма виндовая. И ей так просто нельзя сделать.

На мой взгляд нужно делать как сказал Rondo.
--------------------
Я не понял Вашего вопроса, но я Вам на него отвечу…-----------
Uploading файлов без гемороя - это просто!!!
Winprogrammer.ifolder.ru
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Diver
Дата 15.1.2007, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 27.2.2004

Репутация: нет
Всего: нет



В том то все и дело, пример работает практически на всех окнах за исключением окошек типа MessageBox...

to  Insert 
Прикси и настроен вручную, но тем не менее проблема возникает...
PM MAIL   Вверх
13th
Дата 15.1.2007, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 14.1.2007

Репутация: нет
Всего: нет



Вот код ...

Код

procedure TMainForm.TimerTimer(Sender: TObject);
var wnd : HWND;
    point  : TPoint;
    rect   : TRect;
    dX, dY : integer;
begin
  wnd := FindWindow(nil,'Paint');
  if wnd <> 0 then
  begin
    BringWindowToTop(wnd);
    GetCursorPos(point);
    GetWindowRect(wnd, rect);
    dX:=50; dY:=100;
    SetCursorPos(rect.Left+dX,rect.Top+dY);
    Mouse_Event(MouseEventF_LeftDown,rect.Left+dX,rect.Top+dY,0,0);
    Mouse_Event(MouseEventF_LeftUp,rect.Left+dX,rect.Top+dY,0,0);
    SetCursorPos(point.X, point.Y);
  end;
end;


Может и не совсем спортивно - зато очень эффективно. Проверено на Paint'е... 
Закиньте этот код в Delphi и запустите (интервал таймера ~10). 
Создайте рисунок в Painte, намалюйте там чего-нибудь и попробуйте закрыть...


Это сообщение отредактировал(а) 13th - 15.1.2007, 17:59
PM MAIL   Вверх
Diver
Дата 15.1.2007, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 27.2.2004

Репутация: нет
Всего: нет



Всем спасибо (особенно 13th)... все получается. Конечно это решение под конкретное окно, но зато работает 100%.



Это сообщение отредактировал(а) Diver - 16.1.2007, 08:24
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0843 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.