странно, у мя все работает. ну ладно, вот накидал на Indy (хреново что с https не работает, сцук) : Code: uses ...IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP; ---------------------------------------------------- function CheckURL_Indy(url:string):boolean; var http:TIdHTTP; begin try http:=TIdHTTP.Create(nil); http.Get(url); if http.ResponseCode=200 then result:=true else result:=false; http.Free; except result:=false; end; end; примитивно, но вроде работает))
вот так у меня написана авторизация на сайте Code: procedure TForm1.Button1Click(Sender: TObject); var http:thttpsend; res,data:string; begin //создаём обьект http:=thttpsend.Create; //формируем заголовок для отправления http.Headers.Append('Connection: close'); http.UserAgent:='Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7'; http.MimeType:='application/x-www-form-urlencoded'; //формируем данные для ПОСТ запроса data:='name='+edit1.Text+'&password='+edit2.text+'&x=0&y=0'; http.Document.Write(Pointer(data)^, Length(data)); //посылаем запрос if http.HTTPMethod('POST','http://www.proplay.ru') then begin //обрабатываем ответ SetLength(res,http.Document.Size); http.Document.Read(pointer(res)^,http.Document.Size); if pos('301',http.Headers.Text)<>0 then begin label3.Caption:='Авторизация прошла успешно'; end else label3.Caption:='Авторизация не удалась'; end else showmessage('Ошибка подключения'); //чистимся http.Free; end; end. вроде работает, выдает редирект в сниффере на ссылку пользователя, а как мне создать такой пост запрос чтобы он отправлял сообщение на форум. страница допустим http://www.proplay.ru/forums/cs/64457/ или http://www.proplay.ru/forums/cs/64457/reply я не знаю. Переменная там используется только одна body в ней передается сообщение. Когда я на сайте пишу сообщение то потом перекидывает в тему, а из программы в сниффере показывает, что перекидывает опять на эту страницу reply то есть сообщение не пропускает выходит что-то иначе был бы редирект в тему
patcher, спасибо, что надо. проблема была в том что надо было проект запускать не из под компилятора, тогда бы не вылетало))
Все еще надо отправить HEX "FF FF FF FF 54 53 6F 75 72 63 65 20 45 6E 67 69 6E 65 20 51 75 65 72 79 00". https://forum.antichat.ru/showpost.php?p=2151426&postcount=6569 не помогло
что нужно сделать чтобы прога сама себя скопировал куда-нибудь и от туда себя запустила? p.s. CopyFile в автозапуск не предлагать))
CopyFile + WinExec/ShellExecute/CreateProcess CreateFile + ReadFile/WriteFile + CloseHandle + WinExec/ShellExecute/CreateProcess
Пробую так: Code: procedure TForm4.Button1Click(Sender: TObject); var buf:string; addr:sockaddr_in; sock:integer; data:WSAData; begin WSAStartup($101,data); sock:=Socket(AF_INET,SOCK_STREAM,IPPROTO_IP); buf :=#$FF#$FF#$FF#$FF#$54#$53#$6F#$75#$72#$63#$65#$20#$45#$6E#$67#$69#$6E#$65#$20#$51#$75#$65#$72#$79#$00; addr.sin_family:=AF_INET; addr.sin_port:=htons(22003); addr.sin_addr.S_addr:=inet_addr('127.0.0.1'); sendto(sock,buf,sizeof(buf),0,addr,sizeof(addr)); end; Но сниффер ничего не видет
и ещё вопрос, что будет если диска или папки куда копируется файл не будит существовать? и как можно с помощью функции CopyFile скопировать файл во временную папку, если не знаешь название диска?
Если ты про wireshark, то он не видит отправку типа "127.0.0.1 --> 127.0.0.1" (/me в шоке) Code: WSAStartup($101,data); sock:=Socket(AF_INET,[COLOR=Red]SOCK_DGRAM,IPPROTO_UDP[/COLOR]); buf :=#$FF#$FF#$FF#$FF#$54#$53#$6F#$75#$72#$63#$65#$20#$45#$6E#$67#$69#$6E#$65#$20#$51#$75#$65#$72#$79#$00; addr.sin_family:=AF_INET; addr.sin_port:=htons(123); addr.sin_addr.S_addr:=inet_addr('188.40.76.205'); sendto(sock,buf[COLOR=Red][1][/COLOR],[COLOR=Red]length(buf)[/COLOR],0,addr,sizeof(addr));
господа! я в этой теме задала уже второй вопрос, и опять мне на него не отвечают! также заметила, что не мне одной так везет.
занятно. это второе сообщение на форуме. значит видимо первый вопрос по паскалю, а второй имеется ввиду прямо этот вопрос?
2 вопроса 1 как сделать что бы грузилось изображение на форму (в данном случие капча) и по ее клику.. либо кнопке она обновлялась.. (было бы не плохо если бы подсказали с двойной капчей которая по разным ссылка.. но что бы обновлялись одновременно) 2 как заставить программу автоматом выключать или включать инет? (ну или в ручную хотябы по отключению сетки и обратно)
SNAIPER ShoT, загружаешь сначала капчу себе на комп, а потом с компа выводишь в Image, а на событие onClick (для картинки) делаешь повторную загрузку изображения.
я сам задавался раньше таким вопросом, да и не только я. в ответ всегда одно и тоже. конечно можешь попробовать загружать её в WebBrowser, но не знаю что у тебя там получиться.
SNAIPER ShoT, С вконтакта я капчу так грузил : В uses > Jpeg В var > MemoryStream : TMemoryStream; link : string(ссылка на капчу) Captcha : TJPEGImage; PHP: IdHTTP1.Get(link,MemoryStream); MemoryStream.Position := 0; Captcha.LoadFromStream(MemoryStream); Image1.Picture.Graphic := captcha;
пример объединения 3х картинок PHP: TJPEGImage* BufPic = new TJPEGImage; TImage* cap_image = new TImage(NULL); cap_image->Width = 210; // ширина cap_image->Height = 50; // высота for(int i = 0; i < 3; ++i) { // тут должен быть код, которым поочереди получаем нужные картинки BufPic->LoadFromStream(msCaptcha); /// msCaptcha - объект класса TMemoryStream cap_image->Canvas->Draw(i * 70, 0, BufPic); // переносим рисунок в Image } BufPic->Assign(cap_image->Picture->Bitmap); // загружаем рисунок в буфер jpeg BufPic->SaveToFile(sCapFile); // сохраняем в файл синтаксис только поменяй под делфи
Вот пример объеденения 3х картинок на дельфи(в своё время юзал для соединения капч маил ру) Code: var BufPic: TJpegImage; // буфер для загрузки рисунков i: byte; begin BufPic := TJpegImage.Create; // создаем объект BufPic.LoadFromFile('1.jpg'); // загружаем в него 1-й рисунок Form1.Image1.Canvas.Draw(0, 0, BufPic); // переносим 1-й рисунок в Image BufPic.LoadFromFile('2.jpg'); // загружаем в него 2-й рисунок Form1.Image1.Canvas.Draw(75, 0, BufPic); // переносим 2-й рисунок в Image BufPic.LoadFromFile('3.jpg'); // загружаем в него 3-й рисунок Form1.Image1.Canvas.Draw(150, 0, BufPic); // переносим 3-й рисунок в Image Image1.Picture.SaveToFile('cap.jpg'); end;