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
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #3961  
Старый 27.07.2009, 10:02
[K4t]
Познающий
Регистрация: 15.02.2009
Сообщений: 54
Провел на форуме:
142825

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

Здравствуйте, есть вопрос про указатель ввода. Необходимо, чтобы, например, при событии onChange в TEdit указатель устанавливался на самый последний символ. От этого нужно, чтоб при Edit1.SetFocus; но при СэтФокус, естественно, он становится вначало... Можно ли такое вообще организовать?
 

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

Репутация: 3349


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

procedure TForm1.Edit1Change(Sender: TObject);
begin
Edit1.SelStart := Length(Edit1.text);
end;
 

  #3963  
Старый 27.07.2009, 11:49
[K4t]
Познающий
Регистрация: 15.02.2009
Сообщений: 54
Провел на форуме:
142825

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

Для slesh: вот спасибо, только сделал не на onChange, а на onKeyPress. Просто делаю, фильтр символов. Нужны только числа, ну и с минусом проблемы начались. Вот, и мне показалось, что так будет намного легче... +++
 

  #3964  
Старый 27.07.2009, 18:51
НTL
Постоянный
Регистрация: 26.01.2008
Сообщений: 796
Провел на форуме:
5209663

Репутация: 357


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

Нужно сделать примерно так:

(Код на руском языке)

Цитата:
Делать пока в мемо есть строчки
---
эдит1.текст = 1 строчка мемо
удалить первую строчку мемо
---
То что между --- надо делать пока в мемо есть строчки...
 

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

Репутация: 3349


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

фильтрация тут простая:
Код:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 if not (key in ['0'..'9','-',#8]) then key := #0;
end;
#8 - это код бекспейса. Это для того чтобы можно было бы стереть символ.
Ну и можно еще добавить туда символ точки или зяпятой чтобы можно былобы вводить еще и дробные числа
 

  #3966  
Старый 28.07.2009, 01:32
Nightmarе
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме:
5749763

Репутация: 1680


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

В общем такой вопрос, надо скрипту отправить файл на WinInet (именно через WinInet)
Я использую функцию:
Код:
procedure SendPOSTData(const szHost, szPath, szData,header: PChar);
var
szHeaders: PChar;
hOpenHandle,
hConnectHandle,
hResourceHandle: Pointer;
ListBox1:tListBox;
begin
hOpenHandle := InternetOpen(nil, 0, nil, nil, 0);
if hOpenHandle <> nil then
begin
hConnectHandle := InternetConnect(hOpenHandle, szHost,80,nil,nil,3,0,0);
if hConnectHandle <> nil then
begin
hResourceHandle := HttpOpenRequest(hConnectHandle,'POST',szPath,nil,nil,nil,INTERNET_FLAG_KEEP_CONNECTION,0);
if hResourceHandle <> nil then
begin
HttpSendRequest(hResourceHandle,header,47,szData,lstrlen(szData));
end;
InternetCloseHandle(hResourceHandle);
end;
InternetCloseHandle(hConnectHandle);
end;
InternetCloseHandle(hOpenHandle);
end;
То есть первый параметр это хост, второй это путь до скрипта, третий это POST дата, а четвёртый это заголовок.
Вызываю функцию так:
SendPOSTData('site.fr','/index.php',PChar(memo1.text),PChar(memo2.text));

А теперь самое интересное, в memo2 я вставляю заголовок:
Код:
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Proxy-Connection: keep-alive
Content-Type: multipart/form-data; boundary=---------------------------235351862919679
Ну а в POST (memo1) я вставляю это:
Код:
-----------------------------235351862919679
Content-Disposition: form-data; name="userfile"; filename="test.txt"
Content-Type: text/plain

LOL
-----------------------------235351862919679--
В итоге файл не заливается.
name="userfile"; указанно правильно (на скрипте так приём файла обозначен).
Вроде бы в коде всё правильно, заголовки и POST дату я указал так как нужно, величину контента функция потсчитывает автоматом.
Подскажите плиз где тут ошибка? Может я что то забыл указать в заголовке или POST запросе?
 

  #3967  
Старый 28.07.2009, 05:03
Joker-jar
Постоянный
Регистрация: 11.03.2007
Сообщений: 581
Провел на форуме:
4172659

Репутация: 646


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

Хидер host нужно указать, может достаточно будет
 

  #3968  
Старый 28.07.2009, 05:11
Nightmarе
Познавший АНТИЧАТ
Регистрация: 29.04.2007
Сообщений: 1,189
Провел на форуме:
5749763

Репутация: 1680


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

Цитата:
Сообщение от Joker-jar  
Хидер host нужно указать, может достаточно будет
Так он уже указан в функции.
Обычные POST запросы вида:
lol1=1&lol2=2
нормально работают, а вот передать файл никак не удаётся.
 

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

Репутация: 3349


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

так файлы кидаются через мультипарт форму где всё оформляется по другому.
 

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

Репутация: 3349


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

Еще были ошибки в коде - не в том месте закрывались хендлы.

Проводим простой следственный эксперимент.
Берем PHP файл через который будем грузить чтонить
PHP код:
<form action="?act=upload" method="POST"  enctype="multipart/form-data">
<input type="text" name="info">
<input type="file" name="myfile">
<input type="submit" value="UPLOAD">
</form>
<?
 
if ($_GET['act'] == 'upload')
 {
    
$name $_FILES['myfile']['name'];
    
$myfile=$_FILES['myfile']['tmp_name'];
    if (!
file_exists($myfile)) 
    {
        echo 
'<h3>Error</h3>';
    }
    else
    {
        
Copy($myfile$name);
        echo 
"<h3>OK</h3><br>{$_POST['info']}";    
    }
 }
?>
Через снифер получаем данные:
Цитата:
POST /1.php?act=upload HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9) Gecko/2008052906 Firefox/3.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://127.0.0.1/1.php
Content-Type: multipart/form-data; boundary=---------------------------41184676334
Content-Length: 769

-----------------------------41184676334
Content-Disposition: form-data; name="info"

infodata
-----------------------------41184676334
Content-Disposition: form-data; name="myfile"; filename="test.txt"
Content-Type: text/plain

this is test file this is test file this is test file this is test file this is test file this is test file this is test file this is test file this is test file this is test file this is test file this is test file this is test file this is test file this is test file this is test file this is test file this is test file this is test file this is test file this is test file this is test file this is test file this is test file this is test file this is test file this is test file
-----------------------------41184676334--
Теперь на основании этих данных очень просто построить запрос.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  hOpenHandle, hConnectHandle, hResourceHandle: Pointer;
  boundary:string;
  header, data:string;
begin
  hOpenHandle := InternetOpen(nil, 0, nil, nil, 0);
  if hOpenHandle <> nil then
  begin
    hConnectHandle := InternetConnect(hOpenHandle, '127.0.0.1', 80, nil, nil, 3, 0, 0);
    if hConnectHandle <> nil then
    begin
      hResourceHandle := HttpOpenRequest(hConnectHandle, 'POST', '/1.php?act=upload', nil, nil, nil, INTERNET_FLAG_KEEP_CONNECTION, 0);
      if hResourceHandle <> nil then
      begin
        boundary := inttostr(random(65355))+inttostr(random(65355))+inttostr(random(65355));
        header := 'Content-Type: multipart/form-data; boundary='+boundary;
        data := '--'+boundary+#13#10+
                'Content-Disposition: form-data; name="info"'#13#10#13#10+edit1.Text+#13#10+
                '--'+boundary+#13#10+
                'Content-Disposition: form-data; name="myfile"; filename="test.txt"'#13#10+
                'Content-Type: text/plain'#13#10#13#10+memo1.Text+#13#10+
                '--'+boundary+'--';

        HttpSendRequest(hResourceHandle, @header[1], length(header), @data[1], length(data));
        InternetCloseHandle(hResourceHandle);
      end;
      InternetCloseHandle(hConnectHandle);
    end;
    InternetCloseHandle(hOpenHandle);
  end;
end;
 
 





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


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




ANTICHAT.XYZ