На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! user posted image
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.

Соблюдайте общие правила форума

Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как запустить программу/файл? (и дождаться ее завершения)
5. Как перехватить API-функции, поставить hook? (перехват сообщений от мыши, клавиатуры - внедрение в удаленное адресное прстранство)
... (продолжение следует) ...

Внимание:
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки - бан.
Мат в разделе - бан на три месяца...

Полезные ссылки:
user posted image MSDN Library user posted image FAQ раздела user posted image Поиск по разделу user posted image Как правильно задавать вопросы


Выразить свое отношение к модераторам раздела можно здесь: user posted image Rouse_, user posted image Krid

Модераторы: Rouse_, Krid
  
> Поиск Handle у IE
    Есть такие вопросы 1)Как узнать Handle у IE(т.к он менятеся после ввода Веб-Страницы).
    2) Как узнать Handle у элемта страницы (например у поля ввода Edit), и как туда записать текст, из Edit'a Formi Delphi. Зарание спасибо.
      Нет, т.к. эти элементы - не окна, просто картинки.
      Кстати, в Опере можно решить эту проблему.
      Что же касается ослика, то здесь единственный способ через интерфейс iHtmlElement
        Хорошо, а как эту проблему можно решить в Opere? И как всёже найти Handle у IE?
          В Опере GetFocus например.
          В IE нельзя, я же сказал. У него это не окна, а картинки! А поэтому и дискриптора у них нет.
            Вопрос конкретно про Handle окна IE.
              :)
              ты русский язык понимаешь?

              Добавлено в :
              Или ты про головное окно?
              Если да, то FindWindow() по классу 'IEFrame'
                Да, с русским у меня туговато, т.к живу я в Латвии(Рига), у моём учебном заведении в неделю 1 урок русского и 6 латышского(Хотя в паспорте написано "Krievs" т.е "Русский").Вопрос должен иметь положительный ответ.ИмХо."Как определить дискриптор самого окна IE?" function FindWindow(ClassName, WindowName: PChar): HWnd;Параметры:
                ClassName: Имя класса.
                WindowName: Текстовый заголовок.
                Загвостка: Текстовый заголовок окна ИЕ постоянно меняется. Как быть? (Лат."Ko darit?")


                :)
                  Не беспокойся, пиши:
                  ExpandedWrap disabled
                    WinHandle := FindWIndow( 'IEFrame', nil );

                  И всё будет в порядке. При открытии страницы handle не поменялся(я проверил).
                    Цитата ZAS @ 13.01.04, 15:14
                    Есть такие вопросы 1)Как узнать Handle у IE(т.к он менятеся после ввода Веб-Страницы).
                    2) Как узнать Handle у элемта страницы (например у поля ввода Edit), и как туда записать текст, из Edit'a Formi Delphi. Зарание спасибо.

                    Цитата ZAS @ 13.01.04, 15:14
                    2) Как узнать Handle у элемта страницы (например у поля ввода Edit), и как туда записать текст, из Edit'a Formi Delphi. Зарание спасибо.

                    Song прав в том смысле, что никаких хэндлов эти элементы не имеют. Это совсем не TEdit. В HTML они задаются как
                    ExpandedWrap disabled
                      <form><input type="text" id="Some_Id"></form>
                    . Иногда их называют edit fields(поля ввода).
                    В разделе uses добавь ComObj. Это для работы с OLE(Object Linking and Embedding of objects). Нужна будет функция CreateOLeObject.
                    Опиши переменную:
                    ExpandedWrap disabled
                      var var IE:OleVariant;

                    Кинь на форму 2 кнопки и Edit с текстом.
                    По Button1Click загрузи страницу с такими полями ввода:
                    ExpandedWrap disabled
                      procedure TForm1.Button1Click(Sender: TObject);
                      begin
                        IE := CreateOLEObject('InternetExplorer.Application');
                        IE.Visible := True;
                        IE.Navigate('http://www.TheWebPageWithAForm.com');//в кавычках пропиши адрес страницы
                                                      // или создай свою(см выше как задаются поля)
                      end;

                    По Button2Click присваивай им значения:
                    ExpandedWrap disabled
                      procedure TForm1.Button2Click(Sender: TObject);
                      var
                       i : integer;
                       Doc, Tags, Tag : variant;
                      begin
                       Doc:=IE.Document;
                       Tags:=Doc.Body.All.Tags('input');
                       for i:=0 to Tags.Length-1 do begin
                         Tag:=Tags.Item(i);
                         if CompareText(Tag.Type,'text')=0 then Tag.Value:=Edit1.Text; //проверили или тип input текстовый
                                                  //если да, то записываем туда значение твоего Edit
                       end;                          
                      end;

                    Если что-то всё-таки сделать не получилось, то в attach'е возьми готовый работающий простейший исходник для Delphi 6. Если придётся, то перебацаешь проект для более ранних версий Delphi. Код не меняется. Уточняй, что надо.
                    Прикреплённый файлПрикреплённый файлDelphi_IE.zip (7.07 Кбайт, скачиваний: 81)
                    1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                    0 пользователей:


                    Рейтинг@Mail.ru
                    [ Script execution time: 0,0770 ]   [ 15 queries used ]   [ Generated: 19.05.24, 20:04 GMT ]