HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

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

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

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

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

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

  #3962  
Старый 27.07.2009, 11:19
slesh
Познавший АНТИЧАТ
Регистрация: 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
Познавший АНТИЧАТ
Регистрация: 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
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


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

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

  #3970  
Старый 28.07.2009, 10:36
slesh
Познавший АНТИЧАТ
Регистрация: 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;
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Wi-Fi, BT] Задай вопрос - получи ответ! Alexsize Беспроводные технологии/Wi-Fi/Wardriving 2568 25.04.2026 12:58
[jQuery] - Задай вопрос, получи ответ Isis PHP 62 25.12.2009 03:25



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


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




ANTICHAT.XYZ