Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.02.2012, 21:24
scroyler scroyler вне форума
Активный
 
Регистрация: 01.08.2011
Адрес: ЧЕбоксары
Сообщения: 248
Версия Delphi: XE
Репутация: -615
По умолчанию Помогите переделать код

Всем привет есть код

Код:
uses
  ExtCtrls, mshtml, OleCtrls, ClipBrd, SHDocVw, WinInet, shellapi, URLMon,
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,JPEG;

type
  TForm1 = class(TForm)
    WebBrowser1: TWebBrowser;
    Memo1: TMemo;
    Button1: TButton;
    Button2: TButton;
    Image1: TImage;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button2Click(Sender: TObject);

     type
  IHTMLElementRender = interface(IUnknown)
    ['{3050F669-98B5-11CF-BB82-00AA00BDCE0B}']
    function DrawToDC
      ( _hDC:                      HDC
      ): HResult; stdcall;
  end;





  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
function DownloadFile(SourceFile, DestFile: string): Boolean;
begin
  try
    Result := UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0, nil) = 0;
  except
    Result := False;
  end;
end;




procedure TForm1.Button1Click(Sender: TObject);
const
  // URL Location
  SourceFile = 'ссылка на нужную картинку';
  // Where to save the file
  DestFile = 'c:\temp\капча.gif';
begin
  if DownloadFile(SourceFile, DestFile) then
  begin
    ShowMessage('Download succesful!');
  end
  else
    ShowMessage('Error while downloading ' + SourceFile)
end;


он выдерает капчу с ссылки,а как сделать так что бы он выдерал эту картинку сразу с браузера, а то капча меняется и картинки не соответствуют друг другу(
__________________
Ставь спасибо за спасибо!
Помог?Ставь спасибо!Увидел пост? Поставь спасибо!
Ответить с цитированием
  #2  
Старый 08.02.2012, 22:33
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Лезть в DOM в браузере и выуживать оттуда загруженную картинку.
Ответить с цитированием
  #3  
Старый 09.02.2012, 08:51
scroyler scroyler вне форума
Активный
 
Регистрация: 01.08.2011
Адрес: ЧЕбоксары
Сообщения: 248
Версия Delphi: XE
Репутация: -615
По умолчанию

а можно на примере?
__________________
Ставь спасибо за спасибо!
Помог?Ставь спасибо!Увидел пост? Поставь спасибо!
Ответить с цитированием
  #4  
Старый 09.02.2012, 09:11
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

поищи в моих сообщениях - недавно писал как сохранить картинки из браузера.
вот: http://www.delphisources.ru/forum/sh...6&postcount=25
кстати тема твоя)))
__________________
Пишу программы за еду.
__________________

Последний раз редактировалось NumLock, 09.02.2012 в 09:13.
Ответить с цитированием
  #5  
Старый 09.02.2012, 15:24
scroyler scroyler вне форума
Активный
 
Регистрация: 01.08.2011
Адрес: ЧЕбоксары
Сообщения: 248
Версия Delphi: XE
Репутация: -615
По умолчанию

так,то оно так,но мне надо что бы только 1 картинку сохраняло а тут все, и к тому же в ХЕ почему то не пашет(
__________________
Ставь спасибо за спасибо!
Помог?Ставь спасибо!Увидел пост? Поставь спасибо!
Ответить с цитированием
  #6  
Старый 09.02.2012, 15:28
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Цитата:
Сообщение от scroyler
мне надо что бы только 1 картинку сохраняло а тут все
Свободен! Ибо нефиг.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #7  
Старый 09.02.2012, 15:43
scroyler scroyler вне форума
Активный
 
Регистрация: 01.08.2011
Адрес: ЧЕбоксары
Сообщения: 248
Версия Delphi: XE
Репутация: -615
По умолчанию

=)
но я вообще без понятий как выдрать каптчу прям с браузера) поэтому и спрашиваю)
__________________
Ставь спасибо за спасибо!
Помог?Ставь спасибо!Увидел пост? Поставь спасибо!
Ответить с цитированием
  #8  
Старый 09.02.2012, 15:49
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

У тебя есть код, который выдирает все изображения. Разберись, как он работает, и напиши свой, который выдирает только необходимое. Не можешь? Кругом-марш в раздел "Работа".
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #9  
Старый 10.02.2012, 21:49
scroyler scroyler вне форума
Активный
 
Регистрация: 01.08.2011
Адрес: ЧЕбоксары
Сообщения: 248
Версия Delphi: XE
Репутация: -615
По умолчанию

Кто нибудь подскажитеее плззз
__________________
Ставь спасибо за спасибо!
Помог?Ставь спасибо!Увидел пост? Поставь спасибо!
Ответить с цитированием
  #10  
Старый 12.02.2012, 10:13
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
function SaveBitmaps(AWebBrowser: TWebBrowser; APath: String; AStrings: TStrings = nil): Integer;
var
  AHTMLDocument2: IHTMLDocument2;
  i: Integer;
  AHTMLImgElement: IHTMLImgElement;
  AHTMLElementRender: IHTMLElementRender;
  ABitmap: TBitmap;
  j: Integer;
begin
  APath:=IncludeTrailingPathDelimiter(APath);
  AHTMLDocument2:=AWebBrowser.Document as IHTMLDocument2;
  Result:=AHTMLDocument2.images.length;
  j:=0;
  for i:=0 to Result-1 do
  begin
    AHTMLImgElement:=AHTMLDocument2.images.item(i, '') as IHTMLImgElement;
    if (AHTMLImgElement.width>0) and (AHTMLImgElement.height>0) then
    begin
      AHTMLElementRender:=AHTMLImgElement as IHTMLElementRender;
      ABitmap:=TBitmap.Create;
      try
        ABitmap.Width:=AHTMLImgElement.width;
        ABitmap.Height:=AHTMLImgElement.height;
        AHTMLElementRender.DrawToDC(ABitmap.Canvas.Handle);
        ABitmap.SaveToFile(APath+Format('%.8d.bmp', [j]));
        if AStrings<>nil then AStrings.Add(AHTMLImgElement.src);
        Inc(j);
      finally
        ABitmap.Free;
      end;
    end;
  end;
  Result:=j;
end;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:28.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025