Пытаюсь залогиниться в 4files.net, но почему-то не выходит. Вот код, как пытался войти. В чём ошибочка? Code: list := TStringList.Create; list.Add('log=Логин'); list.Add('pass=Пароль'); list.Add('mem=1\0'); str:=IdHTTP1.Post('http://4files.net/?act=login',list);
str:=IdHTTP1.Post('http://4files.net/?act=login',list); попробуй IdHTTP1.Post('http://4files.net/?act=login',list); то есть не присваивай но могу ошибаться
Code: ?act=login тоже должно лежать в TSTringList; , Не забывай про куки. Глянь ответ сервера, также возможен редирект.
Ни с ?act=login ни без не логинится, куки там есть, но как их использовать в idhttp не знаю( CookieManager подключил вообще, вроде автоматом должно проставляться
?act=login идет в сам адрес, как это ни весело вероятно ты просто забыл hidden учесть как-то так TStringList должен выглядеть:
Помню интересовала данная тема и там были какие то траблы. Если у тебя анлимит, можешь как решение, по таймеру сверять количество собщений на сервере с количеством сообщений, 20 секунд назад.
тогда будет другой трабл - если сообщение удалить с сервера, и при этом придет новое, то оно не отобразиться, т.к. кол-во будет такое же как и раньше. надо как то узнавать прочтенное оно или нет, но как???
Помогите, пожалуйста, с реализацией в программе следующих действий: 1) Логинизация на форуме(Ucoz). 2) Переход в определенную тему форума. 3) Чтение первого сообщения в теме. 4) Отправка сообщения в эту тему. 5) Выход и удаление куков, если таковые остаются. Все это я сделал с помощью компонента WebBrowser, но мне хотелось бы сделать это без "визуализации". Тоесть чтоб действия выполнялись более быстро и менее ресурсоемко, а демонстрация этих действий пользователю смысла не имеет. Нашел пару примеров логинизации, в том числе тут логинизацию к ВКонтакте, увы, работать эти вещи не захотели. А искать ошибку в чужом коде, не особо понимая смысла некоторых строк, делом считаю гиблым...
Нужен код отравки E-Mail с аттачом и с авторизацией(т.е пароль и логин),но без использования Indy и сторонних дельфи-компонент. Поиск курил,там с авторизацией код не нашел. Выручайте
function SendEMail(Handle:THandle; Mail:TStrings):Cardinal; type TAttachAccessArray=array [0..0] of TMapiFileDesc; PAttachAccessArray=^TAttachAccessArray; var MapiMessage: TMapiMessage; Receip: TMapiRecipDesc; Attachments: PAttachAccessArray; i1,AttachCount: Integer; FileName: string; MAPI_Session,dwRet:Cardinal; begin dwRet:=MapiLogon(Handle,PChar(''),PChar(''),MAPI_LOGON_UI or MAPI_NEW_SESSION,0,@MAPI_Session); if dwRet<>SUCCESS_SUCCESS then begin exit; PChar('Error'),MB_ICONERROR or MB_OK); } end else begin FillChar(MapiMessage,SizeOf(MapiMessage),#0); Attachments:=nil; FillChar(Receip,SizeOf(Receip),#0); if Mail.Values['to']<>'' then begin Receip.ulReserved:=0; Receip.ulRecipClass:=MAPI_TO; Receip.lpszName:=StrNew(PChar(Mail.Values['to'])); Receip.lpszAddress:=StrNew(PChar('SMTP:'+Mail.Values['to'])); Receip.ulEIDSize:=0; MapiMessage.nRecipCount:=1; MapiMessage.lpRecips:=@Receip; end; AttachCount:=0; for i1:=0 to MaxInt do begin if Mail.Values['attachment'+IntToStr(i1)]='' then break; Inc(AttachCount); end; if AttachCount>0 then begin GetMem(Attachments,SizeOf(TMapiFileDesc)*AttachCount); for i1:=0 to AttachCount-1 do begin FileName:=Mail.Values['attachment'+IntToStr(i1)]; Attachments[i1].ulReserved:=0; Attachments[i1].flFlags:=0; Attachments[i1].nPosition:=ULONG($FFFFFFFF); Attachments[i1].lpszPathName:=StrNew(PChar(FileName)); Attachments[i1].lpszFileName:=StrNew(PChar(ExtractFileName(FileName))); Attachments[i1].lpFileType:=nil; end; MapiMessage.nFileCount:=AttachCount; MapiMessage.lpFiles:=@Attachments^; end; if Mail.Values['subject']<>'' then MapiMessage.lpszSubject:=StrNew(PChar(Mail.Values['subject'])); if Mail.Values['body']<>'' then MapiMessage.lpszNoteText:=StrNew(PChar(Mail.Values['body'])); try result:=MapiSendMail(MAPI_Session,Handle,MapiMessage,MAPI_DIALOG,0); finally end; for i1:=0 to AttachCount-1 do begin StrDispose(Attachments[i1].lpszPathName); StrDispose(Attachments[i1].lpszFileName); end; if Assigned(MapiMessage.lpszSubject) then StrDispose(MapiMessage.lpszSubject); if Assigned(MapiMessage.lpszNoteText) then StrDispose(MapiMessage.lpszNoteText); if Assigned(Receip.lpszAddress) then StrDispose(Receip.lpszAddress); if Assigned(Receip.lpszName) then StrDispose(Receip.lpszName); MapiLogOff(MAPI_Session,Handle,0,0); end; end; Email:=TStringList.Create; Email.values['to']:='[email protected]'; Email.values['subject']:='Reporting from NET'; Email.values['body']:='body'; Email.values['attachment0'] := 'C:\out.bin'; sendEMail(0,Email); пробуй...
и где же тут авторизация? и тем более юзается Mapi. Я же написал без сторонних компонентов. На чистом API через Winsock
http://forum.antichat.ru/showthread.php?p=998288#post998288 После команды PASS вводишь пароль, вместо [email protected] своё мыло, вместо [email protected] мыло получателя. Сообщение в файле message.txt. Если есть какие-либо вопросы, стучи в аську
Code: var keyword,s1,s2:string; i:integer; begin keyword:='$edit2'; s2:='999'; s1:='http://site.ru/lol.php?info1=$edit2&info2=32423'; i:=pos(keyword,s1); if i<>0 then begin delete(s1,i,length(keyword)); insert(s2,s1,i); end; showmessage(s1); выведет: http://site.ru/lol.php?info1=999&info2=32423
Все доброго времени суток! Есть парочка вопросов по Delphi Начну с - Как заполнить текстом поле input в TWebBrowser? И как правильно получить имя этого объекта на странице, скажем, при фокусировании на нём?
Доброе время суток! Подскажите пожалуйста как в дельфи выставлять промежутки? например: если в эдит1 введены числа от 1 до 100, то выводица число 1, если от 101 до 200, то 2 Зарание спасибо!
есть delphi ^) надо Анлог или набор функций для Twebbrowser 1. для быстрой смены прокси 2. подстановке строки браузера 3. заменой refferer больше чем уверен что это уже есть а изобретать велосипед совсем нехочеться ибо неблагодарное это дело, заранее благодарен за посылы с правильной строкой в гугл и примеры замены указанного