ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #3671  
Старый 31.05.2009, 16:37
intNet
Познающий
Регистрация: 31.05.2009
Сообщений: 68
Провел на форуме:
1271980

Репутация: 19
По умолчанию

JeDaSe, приведу пример :
Код:
var
  wData: WSAData;
  S: TSocket;
  addr: sockaddr_in;
  login, pass: string[30];
  n: integer;
  postdata, sendbuff: string;
const
  fact: shortstring= 'HTTP/1.1 302 Found';
begin
  Login := Edit1.Text;
  Pass:= Edit2.Text;
  If (login='') or (pass = '') then
  begin
    MessageDLG('No login & pass!',mtERROR,[mbOK],0);
    exit;
  end;
  If WSAStartUp($0101, wData) <> 0 then
  begin
    MessageDLG('can''t include winsock library',mtError,[mbOK],0);
    exit;
  end;
  s:= Socket(AF_INET, Sock_STREAM, ipPROTO_TCP);
  If S = Invalid_Socket then begin
    ShowMessage('socket error #'+IntToStr(WSAGetLastError));
    CloseSocket(s);
    Exit;
  end;
  FillChar(addr, sizeOF(sockaddr_in),0);
  Addr.sin_family:=af_INET;
  Addr.sin_port:=hTons(80);
  Addr.sin_addr.S_addr:=Inet_ADDR('95.168.160.213');  // ip нужного тебе сайта
  Check(Connect(s, addr, SizeOf(TSockAddr)));
  postdata:= 'username='+Login+'&password='+Pass;  // данные для отправки. Смотри     сниффером
  SendBuff := Snd+ // пакет. опять же смотри сниффером.
  IntToStr(Length(PostData))+#13#10#13#10+postdata;
  send(s, SendBuff[1],Length(sendBuff),0);
  recv(s, buff, ToRecieve, 0);
  Check(ShutDown(s, sd_Both));
  Check(CloseSocket(s));
  Memo1.Text:=Buff;
  Memo1.SetFocus;
  WSACleanUp;
  If pos(fact, memo1.text) > 0 then // good !
  else
     // bad!
...
Это лишь малая часть кода, насколько я знаю для логина вконтакте нужно ещё и get-запрос отправить, думаю сам дальше по аналогии размерёшься.
 

  #3672  
Старый 31.05.2009, 20:39
Flame of Soul
Участник форума
Регистрация: 25.05.2007
Сообщений: 290
Провел на форуме:
1740746

Репутация: 435
Отправить сообщение для Flame of Soul с помощью MSN
По умолчанию

Сохранение компонента в файл, происходит по ниже приведенному коду, но после этого даже сама программа не может к нему обраться так как он блокирован записью. Просьба написать код который сохранял бы компонент в файл и при этом не блокировал бы работу с ним.
PHP код:
procedure TForm1.StoreClick(SenderTObject);
var
  
WTWriter;
begin
  W 
:= TWriter.Create(
  
TFileStream.Create('путь до файла'fmCreate), 4096);
  
W.WriteSignature;
  
W.WriteComponent(Spin);
  
W.Free;
end
 

  #3673  
Старый 31.05.2009, 21:45
fatalo
Участник форума
Регистрация: 15.05.2008
Сообщений: 166
Провел на форуме:
2591223

Репутация: 128
Отправить сообщение для fatalo с помощью ICQ
По умолчанию

Появился вопрос.Как в Делфи в TWebBrowser'e ввести текст в определенную форму?
Тоесть открываю сайт,нахожу определенную форму и вставляю туда текст.
Я не прошу ничего писать за меня.Только подсказку действий.Заранее спасибо.
 

  #3674  
Старый 01.06.2009, 00:14
Flame of Soul
Участник форума
Регистрация: 25.05.2007
Сообщений: 290
Провел на форуме:
1740746

Репутация: 435
Отправить сообщение для Flame of Soul с помощью MSN
По умолчанию

Цитата:
Сообщение от fatalo  
Появился вопрос.Как в Делфи в TWebBrowser'e ввести текст в определенную форму?
Тоесть открываю сайт,нахожу определенную форму и вставляю туда текст.
Я не прошу ничего писать за меня.Только подсказку действий.Заранее спасибо.

1. Парсить полученный исходник, и вставлять текс непосредственно туда.

2ю Передача на сервер данных методом POST

PHP код:
procedure TForm1.PostWithWebBrowser(PostStringstringURLOleVariant);
var
  
DataPointer;
  
PostDataOleVariant;
  
FlagsTargetFrameHeadersOleVariant;
begin
  PostData 
:= VarArrayCreate([0Length(PostString) - 1], varByte);
  
Data := VarArrayLock(PostData);
  try
    
Move(PostString[1], Data^, Length(PostString));
  finally
    
VarArrayUnlock(PostData);
  
end;
  
Flags := EmptyParam;
  
TargetFrameName := EmptyParam;
  
Headers := EmptyParam;
  
WebBrowser1.Navigate2(URLFlagsTargetFramePostDataHeaders);
end

3. Заполнять форму


PHP код:
function FillForm(WebBrowserTWebBrowserFieldNamestringValuestring): Boolean;
  var
    
ijInteger;
    
FormItemVariant;
  
begin
    Result 
:= False;
  if 
WebBrowser.OleObject.Document.all.tags('FORM').Length 0 then
    begin
      
Exit;
    
end;  
  for 
:= 0 to WebBrowser.OleObject.Document.forms.Length do
    
begin
      FormItem 
:= WebBrowser.OleObject.Document.forms.Item(I);
      for 
:= 0 to FormItem.Length do
      
begin
        
try
        if 
FormItem.Item(j).Name FieldName then
          begin
            FormItem
.Item(j).Value := Value;
            
Result := True;
          
end;
        
except
          
Exit;
        
end;
      
end;
    
end;
  
end;

procedure TForm1.WebBrowser1DocumentComplete(SenderTObject;
    const 
pDispIDispatch; var URLOleVariant);
  
begin
    
if FillForm(WebBrowser1'homepage''http://www......) = False then
      ShowMessage('
ErrorField not available or no Form found.');
 end;

procedure TForm1.WebBrowser1ProgressChange(Sender: TObject; Progress, ProgressMax: Integer);
  begin
    if ProgressMax = 0 then
    begin
      label1.Caption := '';
      Exit;
    end;
    try
      if (Progress <> -1) and (Progress <= ProgressMax) then
        label1.Caption := IntToStr((Progress * 100) div ProgressMax) + '
loaded...'
      else
        label1.Caption := '';
    except
      on EDivByZero do Exit;
    end;
  end;

procedure TForm1.Button1Click(Sender: TObject);
  begin
    Webbrowser1.Navigate('
http://www.......');
  
Caption := Webbrowser1.OleObject.Document.Title;
  
end
 

  #3675  
Старый 01.06.2009, 00:24
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

5005 статей по Delphi. Статья "Как автоматически заполнить поля формы в IE "
Вбивай в поисковик и сразу найдешь.
"Как работать со всеми ячейками таблицы в WebBrowsere"
 

  #3676  
Старый 01.06.2009, 15:17
SeNaP
Участник форума
Регистрация: 07.08.2008
Сообщений: 281
Провел на форуме:
3300342

Репутация: 165
По умолчанию

Подскажите пожалуйсто, как с помощью delphi можно записать данные в файл
например есть файл svhosts
Туда надо записать
10.179.34.0 localhost
 

  #3677  
Старый 01.06.2009, 17:03
bons
Участник форума
Регистрация: 20.12.2007
Сообщений: 295
Провел на форуме:
1777055

Репутация: 347
По умолчанию

Цитата:
Сообщение от SeNaP  
Подскажите пожалуйсто, как с помощью delphi можно записать данные в файл
например есть файл svhosts
Туда надо записать
10.179.34.0 localhost
очень просто - запускаешь делфи, в меню File выбираешь Open. Там откроется диалоговое окно, где надо выбрать путь к файлу svhosts(или hosts смотря что нужно). Не забудь указать тип файла при выборе - any file. Ну а потом дописываешь эту свою строчку
Самое главное - нажми потом "Save" ато все старания будут напрасны

ну а вообще погугли примеры с:
assignfile, append, write, closefile

Последний раз редактировалось bons; 01.06.2009 в 17:09..
 

  #3678  
Старый 01.06.2009, 17:22
intNet
Познающий
Регистрация: 31.05.2009
Сообщений: 68
Провел на форуме:
1271980

Репутация: 19
По умолчанию

SeNaP,
Код:
var
  f: TextFile;
begin
  AssignFile(f, 'имя файла');
  try
    Append(f);
    writeln(f, 'текст для записи');
  finally
    CloseFile(f);
И да кстати, ты уверен, что тебе нужен файл svhosts(не hosts?).
Получение директории файла hosts:
Код:
  Buff: array[1..MAX_PATH] of char;
begin
  GetSystemDirectory(@buff, MAX_PATH);
  lstrcat(@buff, '\drivers\etc\hosts');
 

  #3679  
Старый 01.06.2009, 17:43
SeNaP
Участник форума
Регистрация: 07.08.2008
Сообщений: 281
Провел на форуме:
3300342

Репутация: 165
По умолчанию

Да ксте как раз он и нужен hosts
 

  #3680  
Старый 01.06.2009, 17:49
SeNaP
Участник форума
Регистрация: 07.08.2008
Сообщений: 281
Провел на форуме:
3300342

Репутация: 165
По умолчанию

intNet, можеш по подробние написать и обьяснить ?
а то я в delphi полный 0
 
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ