С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi: Сети
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
leejack
190 / 177 / 37
Регистрация: 19.01.2010
Сообщений: 610
Записей в блоге: 1
1

Получение капчи

27.12.2010, 18:04. Просмотров 2704. Ответов 14
Метки нет (Все метки)

Ребят помогите кто-нибудь, столкнулся с проблемой получения капчи!...
Мне надо получить каптчу с контакта - соц сети!....
Есть пример, но по-моему он для indy 10((
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure TidVKClient.ShowCaptchaDialog(const captcha_sid: string);
var
  MS  : TMemoryStream;
  Jpg : TJpegImage;
begin
   Ms  := TMemoryStream.Create;
   Jpg := TJpegImage.Create;
  try
   HTTP.Get('http://vkontakte.ru/captcha.php?s=1&sid=' + captcha_sid, Ms);
   Ms.Position := 0;
   Jpg.LoadFromStream(ms);
   DlgForm.imgKey.Picture.Graphic := Jpg; // Вот здесь вылезает ошибочка((...
  finally
   Jpg.Free;
   Ms.Free;
  end;
   DlgForm.Caption := 'Enter Code';
   DlgForm.ShowModal;
end;
Ошибка:
Код
 Project Project1.exe raised exception class EAccessViolation with message 
'Access vioaltion at address 004863A2 in module 'Project1.exe'. 
Read of address 000002F8'. Process stopped. Use Step or Run to continue
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2010, 18:04
Ответы с готовыми решениями:

Получение капчи
Возможно как то вывести в Image капчу? http://www.diamondrp.ru/secpic.php Она...

Получение капчи
Итак, занялся вопросом получения капчи, для теста решил взять сайт rubserf.ru,...

Получение ссылки на картинку капчи
Добрый день столкнулся с небольшой проблемой при создании программы для...

Вывод капчи
Ребята, искал на форуме и вообще в интернете, вывод в Images reCaptha, вообще...

Отображение капчи в программе
Столкнулся с такой проблемой, при первом запросе капча одна, а при попытке...

14
smw1975
54 / 54 / 4
Регистрация: 15.12.2010
Сообщений: 258
28.12.2010, 11:11 2
Варианты:
1. сохранять предваарительно капчу в файлик, а уж потом загружать ее на форму
2. а случайно из Stream, инфа на TImage загружается не через LoadFromStream (или как там ее) ?
1
leejack
190 / 177 / 37
Регистрация: 19.01.2010
Сообщений: 610
Записей в блоге: 1
28.12.2010, 13:29  [ТС] 3
smw1975, Через LoadFromStream ...
0
smw1975
54 / 54 / 4
Регистрация: 15.12.2010
Сообщений: 258
28.12.2010, 13:57 4
попробуйте сохранить предварительно картинку, может не то получаете*
1
leejack
190 / 177 / 37
Регистрация: 19.01.2010
Сообщений: 610
Записей в блоге: 1
28.12.2010, 14:14  [ТС] 5
smw1975, Картинка то, что надо!) Предварительно сохраняю ее и потом из файла загружаю...такая же фигня(
0
smw1975
54 / 54 / 4
Регистрация: 15.12.2010
Сообщений: 258
28.12.2010, 14:23 6
и всеж что-то не то с картинкой
Delphi
1
2
3
jpg := TJPEGImage.Create;
jpg.LoadFromFile('c:\1\captcha.jpg');
Image1.Picture.Graphic := jpg;
работает на ура
1
leejack
190 / 177 / 37
Регистрация: 19.01.2010
Сообщений: 610
Записей в блоге: 1
28.12.2010, 14:34  [ТС] 7
Блин бред какой-то...Я уже просто тупо свою картинку пытаюсь отобразить и ничего не получается...Все таже ошибка((
0
Voland_
1671 / 1016 / 97
Регистрация: 04.01.2010
Сообщений: 3,402
28.12.2010, 14:49 8
по всей видимости у вас не инициирован DlgForm.imgKey.Picture.Graphic.
Попробуйте в него засадить маленькую картинку в дезигне. Команда
"DlgForm.imgKey.Picture.Graphic := Jpg;" делает
DlgForm.imgKey.Picture.Assign(Jpg), то есть перенос свойств объекта, предполагая, что объект уже создан. А ошибка свидетельствует, похоже, что ругается одна из внутренних DLL (Read of address 000002F8)
1
leejack
190 / 177 / 37
Регистрация: 19.01.2010
Сообщений: 610
Записей в блоге: 1
12.01.2011, 20:06  [ТС] 9
Цитата Сообщение от Voland_ Посмотреть сообщение
по всей видимости у вас не инициирован DlgForm.imgKey.Picture.Graphic.
Попробуйте в него засадить маленькую картинку в дезигне. Команда
"DlgForm.imgKey.Picture.Graphic := Jpg;" делает
DlgForm.imgKey.Picture.Assign(Jpg), то есть перенос свойств объекта, предполагая, что объект уже создан. А ошибка свидетельствует, похоже, что ругается одна из внутренних DLL (Read of address 000002F8)
Что значит в дезигне?...Непонял...,Я просто с такой сложностью программы впервые)) Вот еще всего не знаю))...

Добавлено через 46 секунд
Если ты про то, что объект не создан, то я пытался создать его..результат тот же(...
0
Voland_
1671 / 1016 / 97
Регистрация: 04.01.2010
Сообщений: 3,402
12.01.2011, 23:31 10
leejack, ну в картинку DlgForm.imgKey в самом проекте можно заранее загрузить какую-нибудь картинку BMP, можно маленькую, чтобы в ней что-то уже было инициировано. Ну, и собственно, может быть сам jpeg запакован в какой-нибудь хитрый формат, который не поддерживается классом TJPEG. Попробуйте еще другую картинку.
1
anonimus
2154 / 1244 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
13.01.2011, 13:50 11
leejack, а что такое у тебя DlgForm?
попробуй вместо этого
Delphi
1
DlgForm.imgKey.Picture.Graphic := Jpg;
это
Delphi
1
Image1.Picture.Assign(Jpg);
загрузить картинку в TImage
1
Voland_
1671 / 1016 / 97
Регистрация: 04.01.2010
Сообщений: 3,402
13.01.2011, 14:10 12
anonimus, это тоже самое. Дельфя сама выполняет Assign вместо просто присваивания.
1
leejack
190 / 177 / 37
Регистрация: 19.01.2010
Сообщений: 610
Записей в блоге: 1
13.01.2011, 21:21  [ТС] 13
anonimus, DlgForm - это объект формы, точнее наследник формы...Т.е. как только приходит запрос с контакта о вводе каптчи, то создается маленькая форма со строчным редактором и кнопкой Ок...Попзже могу прислать модуль этого класса!!...

И все равно, А куда получается будет выводится картинка? Если опустить DlgForm просто это ссылка на форму, где будет выводиться эта картинка....А так она получается в память просто запишется?....

А это никак не может быть связано вообще с самим Indy?


И Кстати....Я даже пробовал просто тупо свою картинку в *.bmp, *.jpg форматах засунуть, та же фигня(((

Реально такое ощущение, что просто объект DlgFrm не создается....((.....
0
smw1975
54 / 54 / 4
Регистрация: 15.12.2010
Сообщений: 258
13.01.2011, 22:51 14
Реально такое ощущение, что просто объект DlgFrm не создается....((.....
Вот вот, у меня тоже такое впечатление сложилось , либо косяк с индей (может Вы чего намудрили)
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  IdHTTP, ExtCtrls, StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    Image1: TImage;
    HTTP: TIdHTTP;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
uses
  Jpeg;
 
procedure TForm1.Button1Click(Sender: TObject);
var
  MS  : TMemoryStream;
  Jpg : TJpegImage;
  captcha_sid : string;
begin
captcha_sid := '507880197754';
   Ms  := TMemoryStream.Create;
   Jpg := TJpegImage.Create;
  try
   HTTP.Get('http://vkontakte.ru/captcha.php?s=1&sid=' + captcha_sid, Ms);
   Ms.Position := 0;
   Jpg.LoadFromStream(ms);
   Image1.Picture.Graphic := Jpg; // Âîò çäåñü âûëåçГ*ГҐГІ îøèáî÷êГ*((...
  finally
   Jpg.Free;
   Ms.Free;
  end;
   Form1.Caption := 'Enter Code';
end;
 
end.
Этот код реально работает у меня, на фомре TImage + TIdHTTP + TButton и все.
Код - чуть переделанный Ваш (подставляется sid и отображается на этой-же форма капча)

Так что ищите у себя косячек, вполне возможно Вы действительно форму не создаете. Но без кода - могу только рекомендовать потоптать пошаговую отладку

UPD: да, и инди у меня точно не 10, а которая идетс Delphi 7, это точно, т.к. я ими не пользуюсь и никогда не обновляю
1
leejack
190 / 177 / 37
Регистрация: 19.01.2010
Сообщений: 610
Записей в блоге: 1
19.01.2011, 01:53  [ТС] 15
Уу...Братцы...Спасибо ОГРОМНОЕ всем!!!)) Короче реально форма не создавалась!)) Все сделал!!! И теперь все норм!)....
0
19.01.2011, 01:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.01.2011, 01:53

Автоматический ввод капчи
Имеется программа Мультикликер для разных сайтов, благодаря которой...

Synapse: подгрузка капчи с сайта
как с сайта...

Распознание графической капчи на Delphi 7
Здравствуйте ребят, подскажите- каким образом на Delphi 7 можно организовать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru