Просмотр полной версии : [Delphi]/[Pascal] Задай вопрос, получи ответ
cylaaaan
26.10.2008, 17:40
недавно прогу писал. Я лично не делал create(nil);
просто бросил IdHTTP1 на форму
и передаю параметры
IdHTTP1.Post('',data,Adata);
Joker-jar
26.10.2008, 17:51
Как в потоки передавать параметры?
Через глобальные переменные. Либо, если на API, то можно через указатель (параметр callback-функции)
cylaaaan а мне надо создать!!1 то есть create а не хз как!
Вообще кто не в курсе о чем я то не пишите и не засоряйте форум и мои мозги
cremator (c)
26.10.2008, 18:37
Сделал программу которая решает анаграммы по словарю, т.е. ищет все слова с таким же набором букв. Теперь встала проблема, где найти словарь чтобы там было много слов ? То есть текстовый файл : одна строчка - одно слово. Если у кого есть скиньте плиз.
посмотри в разделе форумы- расшифровка хэшей, там найдёшь словарь
cylaaaan
26.10.2008, 21:50
>> Через глобальные переменные. Либо, если на API, то можно через указатель (параметр callback-функции)
Я видел, что делали constructor для процедуры
2diznt - код вообще не верный. много багов.
Чтобы данные передавать сделай вот так к примеру:
unit threadHTTP;
interface
uses
Classes, SysUtils, IdHTTP, Dialogs,HTTPApp;
type
TGrabThread = class(TThread)
private
protected
procedure Execute; override;
public
http: TIdHTTP;
url: string;
html: string;
count : Integer;
ResponseCode : Integer;
procedure Sync;
constructor Create(Suspended: boolean);
end;
implementation
Uses main;
constructor TGrabThread.Create(Suspended: boolean);
begin
inherited Create(Suspended);
end;
procedure TGrabThread.Execute;
begin
http := TIdHTTP.Create(nil);
http.ConnectTimeout := 30000;
http.ReadTimeout := 30000;
html := '';
try // в треде делаем запрос к нашему урлу
html:=http.Get(url);
finally
http.Free;
end;
Synchronize(Sync); // возвращаем результат в главный тред
end;
procedure TGrabThread.Sync;
begin
// Здесь у нас есть переменные url и html
// делаем с ними что хотим
// если html = '' then не удалось получить страницу
end;
end.
Ну и это в основном потоке:
with TGrabThread.Create(true) do // создаём тред
begin
url:='http://www.google.ru';
FreeOnTerminate := true;
Count := 13;
Resume; // запускаем тред
end;
Да и на блоге у меня много примеров многопоточного кода на дельфях. ;)
cremator (c)
27.10.2008, 05:30
Как полностью вывести значение текстовой переменной типа PChar например в Memo?
Joker-jar
27.10.2008, 08:05
Memo1.Text := pch;
интересует следующий вопрос как скомпилировать сорец дельфи не имея среды
используя dcc32.exe
учитывая что сорец использует следующие модули
windows, sysutils, wininet;
что писать в батнике какие ключи использовать в ту же дирикторию поместил Windows.pas sysinit.pas WinInet.pas
порога все равно не компилиться что посоветуете.
cremator (c)
27.10.2008, 17:15
Memo1.Text := pch;
улыбнул
Если бы это было переменная string то это бы выглядело так : Memo1.Lines.Add(str)
а у меня pchar
если не знаешь не подсказывай
Joker-jar
27.10.2008, 18:22
А ты попробуй
З.Ы. Ну, если тебе мой первый вариант чем-то не угодил, сделай так
Memo1.Lines.Add(string(pch))
Есть ли в делфи такая функция, которая выводит содержимое указанной папки, если есть то подскажите пожайлусто.
Есть ли в делфи такая функция, которая выводит содержимое указанной папки, если есть то подскажите пожайлусто.
program test1;
{$APPTYPE CONSOLE}
uses windows;
procedure ListDir(const sPath:string);
var fdata:WIN32_FIND_DATA;
hfind:cardinal;
begin
hfind:= FindFirstFile(pChar(sPath+'\*'),fdata);
if hfind = INVALID_HANDLE_VALUE then exit;
while true do begin
writeln(pChar(@fdata.cFileName));
if not FindNextFile(hFind,fdata) then
if GetLastError() = ERROR_NO_MORE_FILES then break;
end;
end;
begin
ListDir('c:\windows');
end.
Я хочу изучать делфи, подскажите плиз хорошие книги, чтобы всё было понятно описанно
De-visible
02.11.2008, 15:40
Я хочу изучать делфи, подскажите плиз хорошие книги, чтобы всё было понятно описанно
Думаю было бы не плохо заглянуть в карту раздела.
http://forum.antichat.ru/thread85032.html
http://forum.antichat.ru/thread82657.html
De-visible , спс
ЗЫ В карте раздела я был, эту тему видел http://forum.antichat.ru/thread85032.html Но там про делфи ни чего нету...
А ссылка на тему Books DELPHI/PASCAL битая
Можно ли на Delphi написать форк-бомбу? Если да - то киньте код...
Есть ли в делфи такая функция, которая выводит содержимое указанной папки, если есть то подскажите пожайлусто.
ListBox1.Perform(LB_DIR, 0, LParam(PChar('*.*')));
Я хочу изучать делфи, подскажите плиз хорошие книги, чтобы всё было понятно описанно
Советую начать с книги "Библия для программиста в среде DELPHI" Автор: Horrific aka Фленов Михаил.
Скачать можно здесь (http://programmersclub.ru/bookbibliya)
dibilius
05.11.2008, 01:15
Где найти сорц уде готового DDoS'ера и BackDoor'а ?
De-visible
05.11.2008, 01:16
Где найти сорц уде готового DDoS'ера и BackDoor'а ?
Здесь: google.com
cremator (c)
05.11.2008, 07:04
как можно привязать прогу к определённому компу например по ид проца или материнки.. или какие ещё есть способы защиты?
>>как можно привязать прогу к определённому компу например по ид проца или материнки.. или какие ещё есть способы защиты?
1. привязка к процу - cpuid (команда процессора)
или в принципе ту же инфу можно получить из ветки реестра
HKLM\HARDWARE\DESCRIPTION\System\CentralProcessor
2. юзать GetVolumeInformation - привязка к конкретному тому
3. серийный номер винта - открываем CreateFile - "\\.\Scsi0:" (1), а дальше юзаем DeviceIoControl для получения инфы о харде.
4. В принципе можно еще привязать к какому-либо съемному носителю, который есть только у легального юзера, скажем флешка или CD
...
Подскажите как сделать чтобы при нажатии на кнопку, произошло добавление строчки в файл hosts??
De-visible
08.11.2008, 18:11
procedure TForm1.Button1Click(Sender: TObject);
var
FFILE:TstringList;
begin
FFILE:=TstringList.Create;
FFILE.LoadFromFile('C:\hosts');
FFILE.Add('Добавляем строку');
FFILE.SaveToFile('C:\hosts');
end;
Способов много.
Добрый вечер, хотелось пояснить, ну никак понять не могу, если функция/процедура без параметров, то вызываеться очень просто, пишеться название, а если с параметрами, вот как эта программа например:
Код:
program test;
var M, N : Word;
procedure Exchenge(var X,Y : Word);
var z : Word;
begin
z := X;
X :=Y;
Y := Z;
end;
begin
M := 5; N := 6;
Exchenge(M, N); {оператор вызова процедуры}
writeln(M,N);
end.
Подпрограмма, эт же отдельное "тело" программы? Тогда почему при вызове данной процедуры используються переменные основной программы, а не подпрограммы? Ну ничего не понимаю, поясните пожалуйста, выходит, что процедура вообще не выполняеться? Или как...
Добрый вечер, хотелось пояснить, ну никак понять не могу, если функция/процедура без параметров, то вызываеться очень просто, пишеться название, а если с параметрами, вот как эта программа например:
Код:
program test;
var M, N : Word;
procedure Exchenge(var X,Y : Word);
var z : Word;
begin
z := X;
X :=Y;
Y := Z;
end;
begin
M := 5; N := 6;
Exchenge(M, N); {оператор вызова процедуры}
writeln(M,N);
end.
Подпрограмма, эт же отдельное "тело" программы? Тогда почему при вызове данной процедуры используються переменные основной программы, а не подпрограммы? Ну ничего не понимаю, поясните пожалуйста, выходит, что процедура вообще не выполняеться? Или как...
cremator (c)
08.11.2008, 21:49
Есть понятия глобальные и локальные переменные. Если ты объявишь переменную как глобальную то в подпрограмме будет она использоваться как глобальная, а если в подпрограмме ты ее снова определишь то она станет локальной и не повлияет на глобальную
Думаю понятно объяснил..
Еще вопрос, вот исходник из учебника, не пойму, причем тут a и b? read(a,b);
Line(a,b);
program editor;
var x : integer;
procedure Line (ch:char; ln:integer);
var symbol : integer;
begin
write('{');
for symbol:=1 to ln do
write('ch');
writeln('}');
end;
begin
read(a,b);
Line(a,b);
end.
Еще вопрос, вот исходник из учебника, не пойму, причем тут a и b? read(a,b);
Line(a,b);
ну да, в коде явно не хватает объявления var a:char; b: integer;
add - да и, видимо, тут вместо write('ch'); должно быть write(ch); чтобы что-то полезное было.
cremator (c)
09.11.2008, 00:17
Выложи весь код. Эти переменные наверно глобальные
ну да, в коде явно не хватает объявления var a:char; b: integer;
Объявления переменных этих в программе или подпрограмме?
Выложи весь код. Эти переменные наверно глобальные
Та я тоже думаю, что глобальные, в учебникe нет, там просто:
program editor;
{Раздел описания меток, констант, и тд}
procedure Line (ch:char; ln:integer);
var symbol : integer;
begin
write('{');
for symbol:=1 to ln do
write('ch');
writeln('}');
end;
begin
read(a,b);
Line(a,b);
end.
Все..сделал, да это глобальные переменные, вот:
program editor;
var a : char;
var b : integer;
procedure Line (ch:char; ln:integer);
var symbol : integer;
begin
write('{');
for symbol:=1 to ln do
write('ch');
writeln('}');
end;
begin
read(a,b);
Line(a,b);
end.
Народ как сделать брутфорс http форм???
То есть я знаю как отправлять пакеты серверу а вот как узнать есть ли авторизация или нет вот в чем вопрос
De-visible
10.11.2008, 20:42
Народ как сделать брутфорс http форм???
То есть я знаю как отправлять пакеты серверу а вот как узнать есть ли авторизация или нет вот в чем вопрос
по ответу сервера.
можно пример как обрабатываеться ответ от сервера??? или где можно об этом почитать на русском???
TheJahte
10.11.2008, 22:01
Нюбский вопрос по Pascal... допустим мне надо чтобы прога запускала приложение с особыми параметрами... плюс чтобы между запусками приложений была пауза.... И при том как сделат чтобы он считывал параметры из .txt файла... Например ...
start C:/server/1.exe -n -d -1
pause 5000
start C:/server/2.exe -a -a -d
В таком роде.... но чтобы он считывал это из текстового файла.... и как вообще запускать приложения через pascal и ставить паузу...
для запуска приложений используй WinAPI функции ShellExecute, также можно WinExec ну или даже CreateProcess. Для паузы здесь проще всего Sleep
TheJahte
10.11.2008, 23:59
для запуска приложений используй WinAPI функции ShellExecute, также можно WinExec ну или даже CreateProcess. Для паузы здесь проще всего Sleep
ну... а пример ?
ну... а пример ?
program executer;
{$APPTYPE CONSOLE}
uses windows;
var f:textfile;
cmd:string;
begin
assignfile(f,'file.txt');
reset(f);
while not eof(f) do begin
readln(f,cmd);
WinExec(pChar(cmd),SW_SHOW);
Sleep(5000);
end;
closefile(f);
end.
пример файла file.txt
ping ya.ru
ping forum.antichat.ru
TheJahte
11.11.2008, 01:00
Хммм... т.е. прописывать в .txt файле не ping а start ?
TheJahte
11.11.2008, 01:15
Куда этот гребаный windows.tpu ему засунуть )) чтоб он заткнулся ? :D
AHTOLLlKA
11.11.2008, 09:46
люди ))) помогите сделать баллон тип только не юзая форму...
тоесть как вот этот трай икон без формы..
http://d.lsass.us/126
помогиииииите оч надо =)
Как определить динамичный IP ? А то при попытке определить выдает не верный айпи.
вот используемая функция
function GetLocalIP: String;
const WSVer = $101;
var
wsaData: TWSAData;
P: PHostEnt;
Buf: array [0..127] of Char;
begin
Result := '';
if WSAStartup(WSVer, wsaData) = 0 then begin
if GetHostName(@Buf, 128) = 0 then begin
P := GetHostByName(@Buf);
if P <> nil then Result := iNet_ntoa(PInAddr(p^.h_addr_list^)^);
end;
WSACleanup;
end;
end;
Как определить динамичный IP ?
А какой айпи он выдает? )))
Дело в том что для компьютера может существовать несколько адресов: локальный, сетевой, внешний, виртуальный и т.д.
Короче тебе надо получать не один айпишник, а их список, и из них поттом выбирать внешний.
А какой айпи он выдает? )))
Дело в том что для компьютера может существовать несколько адресов: локальный, сетевой, внешний, виртуальный и т.д.
Короче тебе надо получать не один айпишник, а их список, и из них поттом выбирать внешний.
А как это сделать? Выдает что-то типа 192.168.0.2
Ну так кто-нибудь поможет или нет?
Как определить динамичный IP ? А то при попытке определить выдает не верный айпи.
program getip;
{$APPTYPE CONSOLE}
uses windows,wininet;
{-----------------------------------}
function DownloadURL(const aUrl: string; pBuf: pChar; dwSize: cardinal): Boolean;
var
hSession: HINTERNET;
hService: HINTERNET;
dwBytesRead: DWORD;
begin
Result := False;
hSession := InternetOpen('MyApp', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
if hSession<>nil then begin
hService := InternetOpenUrl(hSession, PChar(aUrl), nil, 0, 0, 0);
if hService<>nil then begin
if not InternetReadFile(hService, pBuf, dwSize, dwBytesRead) then begin
InternetCloseHandle(hService);
InternetCloseHandle(hSession);
exit;
end;
InternetCloseHandle(hService);
end else begin
InternetCloseHandle(hSession);
exit
end;
InternetCloseHandle(hSession);
end else exit;
result:=true;
end;
{-----------------------------------}
function GetRealIp():string;
var buf:array[0..4096]of char;
s,ip:string;
i1,i2:integer;
begin
result:='';
if not DownloadURL('http://www.cmyip.com/',@buf,sizeof(buf)) then exit;
s := string(pChar(@buf));
i1:= pos('My IP is ',s) + 10;
i2:= pos(' - Quick and Easy way to SEE my IP address - CmyIP.com',s);
result:=copy(s,i1,i2-i1);
end;
BEGIN
writeln(GetRealIp());
END.
вот это должно сработать.
Куда этот гребаный windows.tpu ему засунуть )) чтоб он заткнулся ?
Турбо паскалем ты это точно не откомпилишь))
бери делфи или фри паскаль http://freepascal.org/download.var
ап! Как принять ответ от сервера?
ап! Как принять ответ от сервера?
смотри мой пост на предыдущей странице https://forum.antichat.ru/showpost.php?p=938023&postcount=2310
там функция DownloadURL закачивает страничку с сайта. Я догадываюсь что тебе как бы нужен метод POST, для этого вместо InternetOpenUrl используй HttpOpenRequest пример которого есть тут: https://forum.antichat.ru/showpost.php?p=937359&postcount=2
!
Тебе не кажется,
что твой код - это забивание гвоздей КУВАЛДОЙ )))
А что делать, если сайты с которых вы пытаетесь получить IP недоступны в данное время )
Думаю этот код намного юзабельней и лучше:
http://delphi-faq.zoxt.net/z3.htm
Тебе не кажется,
что твой код - это забивание гвоздей КУВАЛДОЙ )))
А что делать, если сайты с которых вы пытаетесь получить IP недоступны в данное время )
Думаю этот код намного юзабельней и лучше:
http://delphi-faq.zoxt.net/z3.htm
не кажется.
так вы узнаете IP-адреса всех сетевых интерфейсов, которые могут не иметь никакого отношения к твоему IP в интернете.
в большинстве случаев IP пользовательского компа можно узнать только вот так забивая гвозди кувалдой...
Погугли по теме Network Address Translation
Погугли по теме Network Address Translation
:D
Я за работу с сетью и сетевыми протоколами деньги получаю ) Не учи плиз.
Все локальные IP сразу можно отбросить:
127.*, 192.*, 10.*, 172.*
Оставшийся адрес и есть внешний.
:D
Я за работу с сетью и сетевыми протоколами деньги получаю ) Не учи плиз.
Все локальные IP сразу можно отбросить:
127.*, 192.*, 10.*, 172.*
Оставшийся адрес и есть внешний.
внешнего там может и не быть.
Ведь суть NAT как раз в том, что вместо IP твоего компа подставляется IP шлюза. Причем где этот шлюз твой компьютер может не знать в принципе.
И внешний адрес этого шлюза достоверно можно узнать ТОЛЬКО тем способом, код к которому я выложил.
P.S. а все-таки у меня длиннее))
внешнего там может и не быть.
Если нет внешнего IP, значит компьютер не имеет прямого подключения к интернету (т.е. подключен через другой компьютер). И значит найденнный по вашей технологии IP будет не IP адресом конечного компьютера в сети, а лишь IP его роутера. А нафиг нужен IP роутера, если через него связаться с компьютером все равно нельзя (можно, если прокинуть порты, но все равно в итоге программе при таком способе прокидывания внешний IP знать уже не надо)?
Оффтоп у нас получается )
В общем какой итог:
Если нужен внешний IP вашего компа - юзайте мой способ.
Если нужен внешний IP вашей внутренней сети, то способ bons'a
De-visible
12.11.2008, 18:29
ап! Как принять ответ от сервера?
Для кого писал?
http://forum.antichat.ru/showpost.php?p=788789&postcount=12
здесь показано на сокетах.
De-visible не знаю точно для кого писал
и еще посоветуйте книгу по сокетам (чтобы было не трудно разжевывать)
De-visible
12.11.2008, 18:47
De-visible не знаю точно для кого писал
и еще посоветуйте книгу по сокетам (чтобы было не трудно разжевывать)
MSDN???GOOGLE???Delphi World???
но если сложно поискать то вот: http://www.sockets.com/winsock.htm
De-visible я говорю чтобы было легко читать и разжевывать а не то что тебе попало в поиске (читай внимательнее)
De-visible
12.11.2008, 19:01
De-visible я говорю чтобы было легко читать и разжевывать а не то что тебе попало в поиске (читай внимательнее)
Я дал то, что читал сам, что для тебя легче я не знаю, и прежде чем ТАК спрашивать(попрашайничать) мог сам поискать.
Я тебе дал пример дал мануал, так, что вперед и с песней.
-m0rgan-
13.11.2008, 11:24
Подскажите плиз дельфи-код фейка квипа инфиниума,с неня + !
Подскажите плиз дельфи-код фейка квипа инфиниума,с неня + !
http://forum.inattack.ru/index.php?showtopic=10798&st=0&gopid=97474&
http://forum.antichat.ru/threadnav79518-1-10.html
глаза опусти и увидишь,поиск по сайту еще советаю,много таких тем было
Всем привет, помогите плиз....
нужен код на делфи что бы при нажатии на клавишу программа выводила на печать через принтер из текстового окна, в нете искал ниче похожего не нашел((
MCSnake, вот глянь: http://www.realcoding.net/article/view/3666
Нужен хелп. Как можно отключить звук в системе программно,чтобы спикеры молчали? Проверял функцию auxSetVolume,не сработало. Как сделать. Надо
-nEx-, если ты про PC speaker'ы, то:
SyStemParametersInfo(SPI_SETBEEP,0,nil,SPIF_UPDATE INIFILE);
а если нет, то вот что-то есть:
http://www.delphisources.ru/pages/faq/base/sound_off.html
:)
0verbreaK
14.11.2008, 14:23
MCSnake компонент диалог принт на вкладке диалоги
Хочу чтобы каждый уин из списка подкл и послал сообщение как мне это сделать примерно???
Это не помогает
procedure TForm1.Button1Click(Sender: TObject);
var
n,i,k:integer;
begin
repeat
begin
N:=strtoint(edit2.Text);
for i:=0 to N do
begin
k:=pos(';',memo1.Lines[i]); //Ищем ';' и записываем где оно расположено
ICQClient1.UIN:=strtoint(copy(memo1.Lines[i],0,k-1)); //Выдергиваем уин и вставляем
ICQClient1.Password:=copy(memo1.Lines[i],k+1,length(memo1.Lines[i])-k); //Выдергиваем пасс и вставляем
ICQClient1.Login();
end;
end;
until (N=10);
end;
procedure TForm1.ICQClient1Login(Sender: TObject);
begin
ICQClient1.SendMessage(strtoint(edit1.text), '1111');
end;
diznt используй потоки. А объекты ТICQClient создавай ручками в коде...
Короче есть браузер на делфи(самый примитивный) подскажите как засобачить чтоб он работал через проксю? хотя бы 1)))
если можно обясните по подробней
зарание СПС=)
Player_1
15.11.2008, 18:47
Вот простая задача по вычислению наименьшего общего кратного
program NOK;
var a,b,s,x: real;
begin
read (a,b);
if a>b then x:=a else x:=b;
begin
for s:=x to a*b do
begin
if s/a = s/a and s/b = s/b then write (s);
end
end
end
Выполнить программу не удаётся, выскакивает ошибка "Invalid FOR control variable". Я всё не могу понять, в чём я ошибся? Просьба помочь.
Player_1, либо begin перед for'ом лишний, либо ты его не туда засунул
Выполнить программу не удаётся, выскакивает ошибка "Invalid FOR control variable". Я всё не могу понять, в чём я ошибся? Просьба помочь.
в for нельзя пихать переменную типа real.
здесь так как надо: http://labs.raraavis.ru/3/delphi/
Player_1
15.11.2008, 19:30
А что решение такое большое?
Просто у меня есть эта задача в qbasic (я её переделываю для pascal), и там намнооого меньше кода.
Вот решение на qbasic'е:
input a,b
if a>b then x=a else x=b
for s=x to a*b step 1
if s/a = s/a and s/b = s/b then print s: end
next s
program for3;
var m,n,k, NOK: integer;
begin
write(' m = '); readln(m);
write(' n = '); readln(n);
for k:=m*n downto n do
if (k mod m = 0) and (k mod n = 0) then NOK:=k;
writeln(' NOK = ',NOK);
end.
dos999 не подскажешь как??? в инете не нашол
Поставлю 10 плюсов
Player_1
15.11.2008, 21:00
2Sinay
Решение хорошее, но только почему после введения значений m и n, меня выкидывает в окно редактирования кода? Приходится cнова запускать программу, чтобы увидеть результат.
Короче есть браузер на делфи(самый примитивный) подскажите как засобачить чтоб он работал через проксю? хотя бы 1)))
если можно обясните по подробней
зарание СПС=)
http://forum.ixbt.com/topic.cgi?id=40:3062
2Sinay
Решение хорошее, но только почему после введения значений m и n, меня выкидывает в окно редактирования кода? Приходится cнова запускать программу, чтобы увидеть результат.
шел бы ты основы поучил, не стыдно?
program for3;
var m,n,k, NOK: integer;
begin
write(' m = '); readln(m);
write(' n = '); readln(n);
for k:=m*n downto n do
if (k mod m = 0) and (k mod n = 0) then NOK:=k;
writeln(' NOK = ',NOK);
Readln;
end.
De-visible
15.11.2008, 21:30
2Sinay
Решение хорошее, но только почему после введения значений m и n, меня выкидывает в окно редактирования кода? Приходится cнова запускать программу, чтобы увидеть результат.
допиши readln;
Archangelus
16.11.2008, 06:24
Здравствуйте. У меня такой вот вопрос. Постараюсь написать понятнее.. :)
Хочу сделать что-то типа накрутчика для сайтов... получается загружаю сайт.ru в webbrowser .
Webbrowser1.Navigate(сайт.ru);
Выискиваю все ссылки, которые есть на нём и записываю их в memo или ListBox.
for i := 0 to Webbrowser1.OleObject.Document.links.Length - 1 do // Listbox1.Items.Add(Webbrowser1.OleObject.Document. Links.Item(i)); memo1.Lines.Add(Webbrowser1.OleObject.Document.Lin ks.Item(i));
Дальше не знаю что мне делать, что б при загрузке любой ссылки из списка считалось, что я перешёл по ней с сайт.ru а не просто ввёл её в строку. Вот никак не получается это сделать.
Подсказывал мне кто-то что б использовал WebBrowser1.Navigate2(URL, Flags, TargetFrameName, PostData, Headers); не помогает. Всё равно показывает, что вводил новую строку, а не перешёл с сайта :(
Напишите пожалуйста что нужно сделать :confused:
это смотря где накручивать. Навен на воей партнёрке проверяется реферер...
Не знаю как с этим коспонентом веббраузером... Но посоветую те просто отправлять на 80 порт запросы с хидрами, которые ты пожелаешь
Reffer проверяется, отснифай запрос с твоей проги и запрос с браузера.
Archangelus
16.11.2008, 16:38
А можно небольшой пример? Реально я просто сейчас не понимаю что имели ввиду под снифай и хидры...
В примере бы я разобрался.
Для меня главное, что б после ввода ссылки она считалась, как буд-то я перешёл по ней с сайта.
тут посмотри:
http://www.google.com/search?hl=ru&q=описание+http+протокола&btnG=Поиск+в+Google&meta=
а поом ещё и тут
http://www.google.com.by/search?hl=ru&sa=X&oi=spell&resnum=0&ct=result&cd=1&q=delphi%2Bwinsock&spell=1
vikseriq
16.11.2008, 19:38
WebBrowser1.Navigate2(URL, Flags, TargetFrameName, PostData, Headers);
В хеадер напиши "Refferer: сайт.ru" и всех делов )
Archangelus
16.11.2008, 19:55
URL:='сайт1.ru';
Flags:=navNoWriteToCache;
TargetFrameName:=EmptyParam;
Headers:='Refferer: сайт2.ru';
WebBrowser1.Navigate2(URL, Flags, TargetFrameName, PostData, Headers);
и всё равно не заполняется в открывшемся окне ref=
может я не правильно выразился... просто если с сайта переходишь, то в открывшемся окне ссылки, которые появляются имеют вид http://сайт2.ru/go.php?id=00000&base=1&ref=сайт1.ru&id=
А если просто вбивать адрес, то поле ref пустое
Headers:='Referer: http://сайт2.ru';
Archangelus
16.11.2008, 23:12
Headers:='Referer: http://сайт2.ru'; - заработало!!!
Спасибо большое
cremator (c)
17.11.2008, 17:52
Подскажите как можно реализовать программу, которая работала бы через прокси?
Подскажите как можно реализовать программу, которая работала бы через прокси?
HTTP прокси?
socks??
вообщем ничего сложно рассказываю подробно:
Идешь в гугл там читаешь rfc.
потом думаешь, потом делаешь вообщем все.
Ппц свою лень затолкайте себе в анус.
Двигайтесь немного заипали уже.
Для тех кто в танке:
addr.sin_family:=AF_Inet;
addr.sin_port:=htons(PORT);
addr.sin_addr.S_addr:=inet_addr(IP)
Остальное все не трогаем оставляем все как есть.
А вообще совет учи С++ и питон. прикинь кульно.
cremator (c)
17.11.2008, 21:58
Мне не лень, мне конкретно надо сделать чтобы со списком сокс прокси работала. Нашел только по компонентам инди..
Что за виноград?:D
Подскажите как можно реализовать программу, которая работала бы через прокси?
http://www.xakep.ru/post/19989/default.asp
Сам только в начале пути познания делфи, поэтому идея есть а вот реализацию пока представляю плохо поэтому надеюсь поможете. Идея:
на рабочем столе хочется иметь как можно больше ярлыков нужных и частозапускаемых программ так как заходить в папку с прогарммой каждый раз что бы её запустить - меня лично напрягает, то же самое и с меню ПУСК, но при этом не хочется загромождать стол ярлыками вообще. Вот и родилась такая идея: На рабочем столе находится наша программа-форма без заголовка с одной лишь TEdit. В папке с нашей программой есть файл config.ini который содержит примерно следующее:
icq c:\icq\icq.exe
mozilla c:\Program Files\Mozilla Firefox\firefox.exe
word c:\winword\winword.exe
итд.
т.е. техника такая: мы в водим в нашу программу (TEdit) какое либо слово, программа ищет его в нашем config.ini и если находит запускает приложение идущее после введенного слова. Если нет такого слова-выводим сообщение об ошибке и ни чего не делаем. Так же хотелось бы что бы при вводе "!exit" наша программа закрывалась.Вот и все. Буду очень благодарен за подсказку реализации. С меня почет и уважение...
Twiddle, берешь строку из TEdit'а, узнаешь длину(N). Потом открываешь файл и читаешь в каждой строке N-символов. Если твое, то считываешь остальное и выполняешь :)
вот такой вот геммор)))
есть такое, уже давно... го на sourceforge.net, есть опенсурс проект... юзай поиск.
аналоги функций gzcompress, gzdeflate.... какие будут для Delphi?
Twiddle, берешь строку из TEdit'а, узнаешь длину(N). Потом открываешь файл и читаешь в каждой строке N-символов. Если твое, то считываешь остальное и выполняешь
вот такой вот геммор)))
Спасибо, это не геморой а идиотизм, без обид.
есть такое, уже давно... го на sourceforge.net, есть опенсурс проект... юзай поиск. и тебе спасибо.
Сам только в начале пути познания делфи, поэтому идея есть а вот реализацию пока представляю плохо поэтому надеюсь поможете. Идея:
на рабочем столе хочется иметь как можно больше ярлыков нужных и частозапускаемых программ так как заходить в папку с прогарммой каждый раз что бы её запустить - меня лично напрягает, то же самое и с меню ПУСК, но при этом не хочется загромождать стол ярлыками вообще. Вот и родилась такая идея: На рабочем столе находится наша программа-форма без заголовка с одной лишь TEdit. В папке с нашей программой есть файл config.ini который содержит примерно следующее:
icq c:\icq\icq.exe
mozilla c:\Program Files\Mozilla Firefox\firefox.exe
word c:\winword\winword.exe
итд.
т.е. техника такая: мы в водим в нашу программу (TEdit) какое либо слово, программа ищет его в нашем config.ini и если находит запускает приложение идущее после введенного слова. Если нет такого слова-выводим сообщение об ошибке и ни чего не делаем. Так же хотелось бы что бы при вводе "!exit" наша программа закрывалась.Вот и все. Буду очень благодарен за подсказку реализации. С меня почет и уважение...
очередной велосипед...
добавляешь ярлык в windir и все..
function GetSysDir: string;
var
buf: array [0..MAX_PATH] of Char;
begin
GetSystemDirectory(buf, MAX_PATH);
Result:=buf;
end;
function Install(_file: string): Boolean;
var
LnkName : string;
MyObject : IUnknown;
MyIcon : IShellLink;
MyPFile : IPersistFile;
WFileName : WideString;
begin
try
CoInitialize(nil);
MyObject:=CreateComObject(CLSID_ShellLink);
MyIcon:=MyObject as IShellLink;
MyPFile:=MyObject as IPersistFile;
with MyIcon do
begin
SetArguments(PChar(''));
SetPath(PChar(_file));
SetWorkingDirectory(PChar(ExtractFilePath(_file))) ;
end;
LnkName:=Copy(ExtractFileName(_file), 1, Length(ExtractFileName(_file)) - Length(ExtractFileExt(_file)));
WFileName:=GetSysDir + '\' + LnkName + '.lnk';
MyPFile.Save(PWChar(WFileName), False);
except
Result:=False;
Exit;
end;
Result:=True;
end;
ссылка на исходник. Прога добавляющую ярлык в %windir%, писал давно, работает, полнотью на WinAPI
http://www.sendspace.com/file/1366et
Archangelus
22.11.2008, 03:31
Снова здравствуйте. Не мог раньше написать - нет отрубало. Я тут недавно задавал вопрос:
"Хочу сделать что-то типа накрутчика для сайтов... получается загружаю сайт.ru в webbrowser .
Webbrowser1.Navigate(сайт.ru);
Выискиваю все ссылки, которые есть на нём и записываю их в memo или ListBox.
for i := 0 to Webbrowser1.OleObject.Document.links.Length - 1 do // Listbox1.Items.Add(Webbrowser1.OleObject.Document. Links.Item(i)); memo1.Lines.Add(Webbrowser1.OleObject.Document.Lin ks.Item(i));
Дальше не знаю что мне делать, что б при загрузке любой ссылки из списка считалось, что я перешёл по ней с сайт.ru а не просто ввёл её в строку. Вот никак не получается это сделать.
Подсказывал мне кто-то что б использовал WebBrowser1.Navigate2(URL, Flags, TargetFrameName, PostData, Headers); не помогает. Всё равно показывает, что вводил новую строку, а не перешёл с сайта :(
Напишите пожалуйста что нужно сделать :confused:"
В итоге пришли к выводу, что если импользовать WebBrowser1.Navigate2 и в Headers прописывать Headers:='Referer: http://сайт2.ru'; заработало.. действительно ref ссылка передаётся и в одной партнёрке засчитывается нормально.
Другие же партнёрки не считают, что я перешёл по ссылке с сайта, а просто загрузил её как с закладки и переход по этой причине засчитан не был. Допустим просто убрать реф. программы и всё остальное.
Просто смотреть по счётчику liveinternet. Там как раз есть источники. Вот нужно сделать так, что б по переходе по ссылке в источниках появлялся сайт1.ru
Сейчас записывается в переходы без ссылки и адрес реф
А нужно, что б записывалось переходы с сайтов
И второе: как можно избавить от ошибки :"ошибка выполнения сценария" - переодически выскакивает при загрузке разных сайтов
NeXArmAor
22.11.2008, 14:27
Как правильно удалить ключ из реестра? RegDeleteKey проверял.не сработало хз.
RegDeleteKey(HKEY_CURRENT_USER,'\Software\Microsof t\Windows\CurrentVersion\Run\prog');
верно ли использована функция?
попробуй так
RegDeleteKey(HKEY_CURRENT_USER,'Software\Microsoft \Windows\CurrentVersion\Run\prog');
если в нем есть подразделы то удалять надо по-другому
http://w32api.narod.ru/functions/RegDeleteKey.html
Как на делфи програмно включать и выключать микрофон?)) нашол тему в гугле:
// Enable/disable "Mute" for several mixer line sources. uses MMSystem; type TMixerLineSourceType = (lsDigital, lsLine, lsMicrophone, lsCompactDisk, lsTelephone, lsWaveOut, lsAuxiliary, lsAnalog, lsLast); function SetMixerLineSourceMute(AMixerLineSourceType: TMixerLineSourceType; bMute: Boolean): Boolean; var hMix: HMIXER; mxlc: MIXERLINECONTROLS; mxcd: TMIXERCONTROLDETAILS; vol: TMIXERCONTROLDETAILS_UNSIGNED; mxc: MIXERCONTROL; mxl: TMixerLine; intRet: Integer; nMixerDevs: Integer; mcdMute: MIXERCONTROLDETAILS_BOOLEAN; begin Result := False; // Check if Mixer is available // Uberprufen, ob ein Mixer vorhanden ist nMixerDevs := mixerGetNumDevs(); if (nMixerDevs < 1) then begin Exit; end; // open the mixer // Mixer offnen intRet := mixerOpen(@hMix, 0, 0, 0, 0); if intRet = MMSYSERR_NOERROR then begin ZeroMemory(@mxl, SizeOf(mxl)); case AMixerLineSourceType of lsDigital: mxl.dwComponentType := MIXERLINE_COMPONENTTYPE_SRC_DIGITAL; lsLine: mxl.dwComponentType := MIXERLINE_COMPONENTTYPE_SRC_LINE; lsMicrophone: mxl.dwComponentType := MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE; lsCompactDisk: mxl.dwComponentType := MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC; lsTelephone: mxl.dwComponentType := MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE; lsWaveOut: mxl.dwComponentType := MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT; lsAuxiliary: mxl.dwComponentType := MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY; lsAnalog: mxl.dwComponentType := MIXERLINE_COMPONENTTYPE_SRC_ANALOG; lsLast: mxl.dwComponentType := MIXERLINE_COMPONENTTYPE_SRC_LAST; end; // mixerline info mxl.cbStruct := SizeOf(mxl); intRet := mixerGetLineInfo(hMix, @mxl, MIXER_GETLINEINFOF_COMPONENTTYPE); if intRet = MMSYSERR_NOERROR then begin ZeroMemory(@mxlc, SizeOf(mxlc)); mxlc.cbStruct := SizeOf(mxlc); mxlc.dwLineID := mxl.dwLineID; mxlc.dwControlType := MIXERCONTROL_CONTROLTYPE_MUTE; mxlc.cControls := 1; mxlc.cbmxctrl := SizeOf(mxc); mxlc.pamxctrl := @mxc; // Get the mute control // Mute control ermitteln intRet := mixerGetLineControls(hMix, @mxlc, MIXER_GETLINECONTROLSF_ONEBYTYPE); if intRet = MMSYSERR_NOERROR then begin ZeroMemory(@mxcd, SizeOf(mxcd)); mxcd.cbStruct := SizeOf(TMIXERCONTROLDETAILS); mxcd.dwControlID := mxc.dwControlID; mxcd.cChannels := 1; mxcd.cbDetails := SizeOf(MIXERCONTROLDETAILS_BOOLEAN); mxcd.paDetails := @mcdMute; mcdMute.fValue := Ord(bMute); // set, unset mute // Stumsschalten ein/aus intRet := mixerSetControlDetails(hMix, @mxcd, MIXER_SETCONTROLDETAILSF_VALUE); { mixerGetControlDetails(hMix, @mxcd, IXER_GETCONTROLDETAILSF_VALUE); Result := Boolean(mcdMute.fValue); } Result := intRet = MMSYSERR_NOERROR; if intRet <> MMSYSERR_NOERROR then ShowMessage('SetControlDetails Error'); end else ShowMessage('GetLineInfo Error'); end; intRet := mixerClose(hMix); end; end; // Example Call; Beispielaufruf: procedure TForm1.Button1Click(Sender: TObject); begin // Ton ausschalten SetMixerLineSourceMute(lsLine, True); end;
выбивает ошибку в "TMixerLineSourceType=(lsDigital, lsLine, lsMicrophone, lsCompactDisk,
lsTelephone, lsWaveOut, lsAuxiliary, lsAnalog, lsLast);" подскажыте в чем дело?=)))
ссылки по теме:
http://programmersforum.ru/archive/index.php/t-6517.html
http://www.delphisources.ru/pages/faq/base/chg_mic_volume_level.html
Как сделать logOff из аси???
Пробывал писать
ICQClient1.LogOff;
Не помогает!
Archangelus
24.11.2008, 14:59
Как сделать так, что WebBrowser загрузка сайта шла без анимации, картинок, флешек и музыки и т.п. ?
имхо WebBrowser юзает настройки IE
Archangelus
25.11.2008, 01:36
Ладно, разобрался немного и понял, что WebBrowser в топку на некоторое время и скачал себе EmbeddedWebBrowser - вот в нём можно делать всё то, что я написал :)
Ура - я доволен :)
_GlaD1aT(OR)_
25.11.2008, 17:02
Какой процедурой можно сделать, что-бы при подключении, список контактов отображался на ListBox1.
Заранее большое спс
procedure TMainForm.ICQClient1ServerListRecv(Sender: TObject;
SrvContactList: TList);
var
i: Word;
UserInfo: TUINEntry;
ListItem: TListItem;
begin
if SrvContactList.Count > 0 then
for i := 0 to SrvContactList.Count - 1 do
begin
UserInfo := PUINEntry(SrvContactList.Items[i])^;
if UserInfo.CType = U_VISIBLE_LIST then
ICQClient1.VisibleList.Add(IntToStr(UserInfo.UIN))
else if UserInfo.CType = U_INVISIBLE_LIST then
ICQClient1.InvisibleList.Add(IntToStr(UserInfo.UIN ))
else if UserInfo.CType = U_NORMAL then
begin
if ICQClient1.AddContact(UserInfo.UIN) then
begin
ListItem := ListView1.Items.Add;
ListItem.ImageIndex := ICON_OFFLINE;
ListItem.Caption := IntToStr(UserInfo.UIN);
end;
end;
end;
ICQClient1.DestroyUINList(SrvContactList);
end;
Взято из примера компонента
люди! подскажите плз алгоритм поиска 2 одинаковых чисел в массиве одномерном. если можно то и код на делфе :-)
люди! подскажите плз алгоритм поиска 2 одинаковых чисел в массиве одномерном. если можно то и код на делфе :-)
for i:=1 to N do
for j:=1 to i-1 do
if (a[j]=a[i]) then..
спасиб :D может ещё есть способы? ато этот ресурсоёмкий очень
А так?
program pr0gr4m;
var
a : array [1..10] of integer;
i, j : byte;
begin
for i := 1 to 10 do begin
a [i] := Random (20);
write (a [i], ' ');
end;
writeln;
for i := 1 to 9 do
for j := i + 1 to 10 do
if a [i] = a [j] then
writeln (a [i]);
end.
Вобщем, чот эти алгоритмы плохо работают с моей задачей (( Уже чёрт знает скока голову над ней ломаю, все сделал, а эту нет...
Люди, плз, помогите написать такое:
составить массив из stringgrid1
выбрать числа, повторяющиеся более одного раза
загнать их в stringgrid2...
спасиб заранее
как это перевести на паскаль (написанно на С#)
AdaptersInfo[] aiTemp = new AdaptersInfo[10];
AdaptersInfo: array of aiTemp[10];
если не ошибаюсь
jecka3000
29.11.2008, 21:05
скажите плиз, где можно скачать задачник для начинающих по Делфи(ИМЕННО ДЛЯ НАЧИНАЮЩИХ), а также учебник, тоже для начинающих))
jecka3000 я бы тебе посоветовал "Библия делфи" (автор: М. Фленов) почитать
Сам с нее начинал.Тру книга. А дальше к примеру чтобы набить руку то в гугле вбивай "задачки на массивы" (если ты прошол тему про массивы) и пытайся их решить!
Ну я думаю ты понял про задачки
0verbreaK
30.11.2008, 00:44
jecka3000 сначала надо логику развивать, алгоритмы/структуры/данные уметь строить, а потом хвататься за программирование, если пробовал блок-схемы рисать то попробуй оч. помогает начинающим (самым начинающим), к тому же есть книги в которых описано решение олимпиадных и прочих задач, лучше взять и начать свое обучение с Паскаля, так как на него опираются книги по алгоритмам, ну например у меня есть книга "Основы программирования - Семакин, Шестаков" там дается решение задач, на языках Паскаль и Си и описывается много чего полезного, советую подобную приоберсти. Самое главное практика + терпени. Удачи.
Рекомендую книгу "Основы программирования - Семакин, Шестаков"
http://kadets.ru/books/2007/06/25/semakin_osnovyi/
Archangelus
30.11.2008, 03:08
я в WebBrowser обычным navigate загружаю сайт1
на сайте1 есть ссылка (тупо баннер 88 на 31) на сайт2 или просто текстовая ссылка на сайт2
как мне сделать так, что б автоматически был переход с сайт1 на сайт2 по любой из этих ссылок, которые заранее известны и так, что б считалось, что я перешёл с сайт1, нажав на ссылку(баннер), ведь иначе считается, как с закладки пришёл
я в WebBrowser обычным navigate загружаю сайт1
на сайте1 есть ссылка (тупо баннер 88 на 31) на сайт2 или просто текстовая ссылка на сайт2
как мне сделать так, что б автоматически был переход с сайт1 на сайт2 по любой из этих ссылок, которые заранее известны и так, что б считалось, что я перешёл с сайт1, нажав на ссылку(баннер), ведь иначе считается, как с закладки пришёл
используй реферер
Archangelus
30.11.2008, 10:20
ты имеешь ввиду header:= 'referer: сайт2' ?
Пробовал - всё-равно не считает, что перешёл с сайта.
Уже забыл что он там показывает, но liveinternet не выдаёт желаемый результат
всем привет. Блин покажите на примере плиз многопоточную программу
на примере.
типа
поток 1
idpop31.Connect
idpop31.Disconnect
поток 2
idpop31.Connect
idpop31.Disconnect
поток 3
idpop31.Connect
idpop31.Disconnect
TThread class юзай
{
http://forum.vingrad.ru/forum/topic-60076.html - отличная статья
}
либо CreateThread()
{
http://msdn.microsoft.com/en-us/library/ms682453(VS.85).aspx
http://www.vsokovikov.narod.ru/New_MSDN_API/Process_thread/fn_createthread.htm
}
толку от многопоточности если они у тебя юзают 1 объект
так нельзя делать, либо его лочить, либо создавать объекты налету.
Парни, над написать программу и запустить ее на выполнение. Вычислить площадь круга, если известна его длина.
Очень прошу, нужна на завтра! Помогите плизззззз
Парни, над написать программу и запустить ее на выполнение. Вычислить площадь круга, если известна его длина.
Очень прошу, нужна на завтра! Помогите плизззззз
Формула доболе простая - L=2PR
Отсюда следует: R=L/2P
А дальше: S:=PR^2
Какой язык?
De-visible
01.12.2008, 22:36
всем привет. Блин покажите на примере плиз многопоточную программу
на примере.
типа
поток 1
idpop31.Connect
idpop31.Disconnect
поток 2
idpop31.Connect
idpop31.Disconnect
поток 3
idpop31.Connect
idpop31.Disconnect
Хм, не совсем правильно спрашиваешь помоему)...
Переформулируй.
МОжно сделать массив компонентов и юзать CreateThread, можно же через Класс TThread, можно через BeginThread(не советую...)
Длинна окружности=Pi*диаметр => диаметр=длина/Pi=>площадь=Pi*r^2
На делфе примерно (FloatToStr(Pi*(diam/2)*(diam/2)))) так...
Godfather Bulan
01.12.2008, 22:44
Площадь круга=pi*r^2
Длина окружности=2*pi*r
Скачать файл KRUG.exe (http://dump.ru/file/1270452)
Паскаль:
PROGRAM Ce;
CONST
p1 = 3.14159;
VAR
dlina : Real;
Square, Len : Real;
BEGIN
WriteLn('dlina');
Read (dlina);
Len :=dlina /(2 * p1);
Square := p1 * sqr(Len);
WriteLn('s= ', Square :6:2);
readln;
END.
уже отпостил в болталке
Впринцыпе тоже самое только покороче - написал на коленке:
program Ploschadj;
{$APPTYPE CONSOLE}
uses SysUtils, Math, System;
var i:integer; a:real;
begin
write('Naberi dlinu okruzhnosti : ');
readln(i);
a:=(i/2*pi);
writeln('Radius:', a);
a:=pi*a*a;
writeln('Ploschadj:', a);
writeln('Dla zaversinia nazhmi Enter!');
readln;
end.
Godfather Bulan
01.12.2008, 23:07
Впринцыпе тоже самое только покороче - написал на коленке:
program Ploschadj;
{$APPTYPE CONSOLE}
uses SysUtils, Math, System;
var i:integer; a:real;
begin
write('Naberi dlinu okruzhnosti : ');
readln(i);
a:=(i/2*pi);
writeln('Radius:', a);
a:=pi*a*a;
writeln('Ploschadj:', a);
writeln('Dla zaversinia nazhmi Enter!');
readln;
end.
лишнее:
{$APPTYPE CONSOLE}
uses SysUtils, Math, System;
Andrej1928
03.12.2008, 02:58
сможит ли кто написать программку кпторая бы отпровляла IP на маил или сайт?
Программа должна отправлять IP посли каждой перезагрузки ПК.
Пинч не нужен.
De-visible
03.12.2008, 03:22
сможит ли кто написать программку кпторая бы отпровляла IP на маил или сайт?
Программа должна отправлять IP посли каждой перезагрузки ПК.
Пинч не нужен.
А что если сделать на гейт???
Пример:
твоя страница sait.com/myscript.php
содержание:
myscript.php:
(тут пример, допишешь скрипт сам.)
if ($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"] != ""){
$IP = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
$proxyip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
}else{
$IP = $HTTP_SERVER_VARS["REMOTE_ADDR"];
}
или же проще:
$userIP = $_SERVER["REMOTE_ADDR"];
И просто get'ом набрать адрес: "sait.com/myscript.php"
усе:)
uses winsock;
var
get:string;
s:TSOCKET;
addr:sockaddr_in;
Begin
get:='';// здесь гет запрос:)
s:=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
FillChar(addr, SizeOf(sockaddr_in), 0);
addr.sin_family:=AF_Inet;
addr.sin_port:=htons(80);
addr.sin_addr.S_addr:=inet_addr(IP хоста) ;
Connect(S,addr,SizeOf(TSockAddr));
Send(...) ;//GET запрос.
application.processmessage;
Shutdown(S,SD_Send);
closesocket(s);
End;
Все на скорую руку, я просто показал как работать)
Andrej1928
03.12.2008, 13:56
Так выходит жертву будет постояна выкидевать на мой сайт со скриптом да? а если она поменяет домашнию страницу то тю тю нет мне IP или я не так понил?
Если не так то раскожите пошагово если возмошна буду очень блогодарин спосиба все зарание.
[Dezzter]
03.12.2008, 21:46
Плиз подкинте инфу по созданию билдера
De-visible
03.12.2008, 21:55
']Плиз подкинте инфу по созданию билдера
а что тут сложного???
[Dezzter]
03.12.2008, 21:59
а что тут сложного???
смешно смешно
я разве говорил что это сложно? я просто не знаю как это сделать, поэтому и спросил...
Andrej1928
03.12.2008, 22:56
De-visible
обясни пожалуста что делать со вторым кодом? myscript.php я создал и закинул на хост
а вот что совторым ума нимножка неприкладу в каком формати его сохранять? PAS?
De-visible
03.12.2008, 23:04
']смешно смешно
я разве говорил что это сложно? я просто не знаю как это сделать, поэтому и спросил...
понимаешь очень много инфы в инете, а вот твою проблему я толком не понял, то есть в билде что тебе надо будет изменять?
(email?icq?или еще что нить)
Или там очень много чего надо будет заменить?
[Dezzter]
03.12.2008, 23:50
Есть файл он парсит одни скрипт, в этом файле прописан адрес, путь до скрипта, вот я хочу создать билд для этого файла, чтобы можно было заменить адрес, путь и т д
']Есть файл он парсит одни скрипт, в этом файле прописан адрес, путь до скрипта, вот я хочу создать билд для этого файла, чтобы можно было заменить адрес, путь и т д
ммм... если я не втыкаю по ходу такой прикол видел в фейке одного билда пинча, когда заменялась строка пути к гейту.... реализация была не делфи.
завтра пошарюсь. точно помню что там использовалась REPLACESTR
ты это имел в виду? если нет - уточни, а то мне тож интерестно.
[Dezzter]
04.12.2008, 17:23
Вот что я ищу http://forum.antichat.ru/showpost.php?p=846654&postcount=1 только там консольный вариант, а мне надо не консольный
De-visible
04.12.2008, 21:34
']Сделай отдолжение, по тихому съебни с этой темы
дэзтер что за оффтоп, угомонись, визард лучше коменть в репу), я конечно понимаю тебя, но все же давай нее будем засорять тему.
Archangelus
05.12.2008, 00:10
у меня есть ссылка
http://сайт.ru/gogobunga.php?banner=10000&&user=100000&ref=http://сайт2.ru/index.php
Как мне правильно указать ссылку в WebBrowser.navigate?
Как прописать referer
Вот пишу
URL:='http://сайт.ru';
Flags:=navNoWriteToCache;
TargetFrameName:=EmptyParam;
Headers:='Referer: http://сайт2.ru/';
webbrowser.Navigate2(URL, Flags, TargetFrameName, PostData, Headers);
А как мне указывать остальные параметры? (banner=10000&&user=100000)
URL:='http://сайт.ru/gogobunga.php?banner=10000&&user=100000';
Такой вопрос. Имеется ответ сервера вида header \r\n\r\n body. Как получить в отдельных переменных header и body ?
[dei], http://www.delphisources.ru/pages/faq/base/strtok.html
Archangelus
05.12.2008, 14:55
Спасибо.
А как нажать программно на ссылку?
Я нашёл пример:
procedure LinkClick(LinkName:String);
var
HtmlDocument: IHtmlDocument2;
HtmlCollection: IHtmlElementCollection;
HtmlElement: IHtmlElement;
I: Integer;
begin
HtmlDocument := form1.WebBrowser1.Document as IHtmlDocument2;
HtmlCollection := HtmlDocument.All;
HtmlCollection := HtmlCollection.Tags('A') as IHTMLElementCollection;
for I := 0 to HtmlCollection.Length - 1 do begin
HtmlElement := HtmlCollection.Item(i, 0) as IHtmlElement;
if HtmlElement.InnerText = LinkName then
begin
HtmlElement.click;
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
HtmlElement: IHtmlElement;
begin
LinkClick(edit3.Text); {в edit нужно пихать название ссылки, а не саму ссылку}
end;
Помогите сделать так, что б в edit можно было совать не название, а саму ссылку типа (http://сайт.ru) и нажималось на это ссылку программно.
что мешает пихнуть ссылку в компонент TWebBrowser?
в принципе должно сработать, имхо
Archangelus
05.12.2008, 17:35
Ладно, получилось у меня всё )
Помогите плих сделать так, что б открывалась в том же окне
Объяснитие плиз, что значит вот этот код:
Tthread = class(ThreadProgress)
protected
procedure Finish; override;
end;
Такой вот вопрос назрел - использую winapi, пишу программу для автоматизации конкретных действий. Функцией FindWindow нашёл окно программы. FindWindowEx - нашёл панель и в конце концов интересующий обьект. Теперь камень преткновения - имеется объект класса SysListView32 который в себе, содержит определённое количество строк. Требуется выполнить двойной щелчок по каждой из строк.
Пробовал что то вроде:
SendMessage(Wnd, WM_LBUTTONDBLCLK, 2,0);
...но почему то не срабатывает. Может кто имел дело?
Как скомпилировать все delphi файлы в один .exe?
Как скомпилировать все delphi файлы в один .exe?
А в чём суть? Если ты просто хочешь собрать всё воедино, то создай отдельный проект кинь на форму для каждого по кнопке и запускай всё через ShellExecute. Если для своих нужд, то я бы пошёл по пути наименьшего сопротивления - тупо воспользовался джойнером. Почему бы в конце концов все файлы не объеденить в один?
Да вот нашел статейку.
Но спасибо, щас попробую.
Да вот нашел статейку.
Но спасибо, щас попробую.
joiner...
Или же проще Ctrl+F9
Такой вот вопрос назрел - использую winapi, пишу программу для автоматизации конкретных действий. Функцией FindWindow нашёл окно программы. FindWindowEx - нашёл панель и в конце концов интересующий обьект. Теперь камень преткновения - имеется объект класса SysListView32 который в себе, содержит определённое количество строк. Требуется выполнить двойной щелчок по каждой из строк.
Пробовал что то вроде:
SendMessage(Wnd, WM_LBUTTONDBLCLK, 2,0);
...но почему то не срабатывает. Может кто имел дело?
А ГетЛастЕррор что говорит?
А ГетЛастЕррор что говорит?
GetLastError возвращает 0 - ошибок нет. Ещё вся фишка в том что всякие ListView_DeleteItem,
ListView_GetItemCount и прочее команды работают. А вот выделит строку ну никак не получается, пробовал через:
ListView_SetItemState(Wnd, 2, LVIS_SELECTED, LVIS_SELECTED);
аддишн - в конце концов дошёл до такого варианта:
ListView_SetExtendedListViewStyle(Wnd,LVS_EX_FULLR OWSELECT);
ListView_SetItemState(Wnd, -1, 0, LVIS_SELECTED);
ListView_SetItemState(Wnd, 1, LVIS_SELECTED, LVIS_SELECTED);
ListView_Update(Wnd,1);
Ну и тут не всё слава богу, теперь выделяется категорически всё - и что нужно и что не нужно. :confused:
Вывод капчи на делфи!
Сабж! Но есть одно но! Если смотреть путь до картинки (капчи) то он меняеться всю время! Как реализовать с таким моментом???
Просьба еще с примером!!!!!!!
Функцией POS парсишь веб страницу на предмет ссылки на капчу. Ну а далее просто скачиваешь её как файл с изображением.
uses Wininet;
function GetInetFile(const fileURL, FileName: String): boolean;
const BufferSize = 1024;
var hSession, hURL: HInternet;
Buffer: array[1..BufferSize] of Byte;
BufferLen: DWORD;
f: File;
sAppName: string;
begin
Result:=False;
sAppName := ExtractFileName(Application.ExeName);
hSession := InternetOpen(PChar(sAppName), INTERNET_OPEN_TYPE_PRECONFIG,
nil, nil, 0);
try
hURL := InternetOpenURL(hSession,
PChar(fileURL),nil,0,0,0);
try
AssignFile(f, FileName);
Rewrite(f,1);
repeat
InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen);
BlockWrite(f, Buffer, BufferLen)
until BufferLen = 0;
CloseFile(f);
Result:=True;
finally
InternetCloseHandle(hURL)
end
finally
InternetCloseHandle(hSession)
end
end;
Использование:
var FileOnNet, LocalFileName: string
begin
FileOnNet:='http://www.pentagon.com/export/capcha.php?id=53834';
LocalFileName:='antichat.bmp';
if GetInetFile(FileOnNet,LocalFileName)=True then
ShowMessage('Download successful')
else
ShowMessage('Error in file download')
end;
После того как картинка оказалась у тебя в папке, загружаешь её в программу через компонент TImage.
1) считываешь страницу в буфер
2) капчу отпарсить лучше по тегам уникальным, т.е если
<img src="/folder/script.php?param=1122233">
то ищи /folder/script.php а затем копируй всё до "
3) для отображения капчи лучше юзай компонент WebBrowser потому как капчи могут быть и bmp и gif (анимационные) и jpeg и png и даже flash
cigaretteburn
11.12.2008, 08:12
Привет народ! Кто знает есть у компонента IdPOP3 функция - как узнать кол-во новых сообщений на сервере? (не всех а именно новых, которые не прочтены). Или может быть посоветуете другой компонент???
Пытаюсь залогиниться в 4files.net, но почему-то не выходит. Вот код, как пытался войти. В чём ошибочка?
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);
то есть не присваивай
но могу ошибаться
De-visible
11.12.2008, 22:38
Пытаюсь залогиниться в 4files.net, но почему-то не выходит. Вот код, как пытался войти. В чём ошибочка?
list := TStringList.Create;
list.Add('log=Логин');
list.Add('pass=Пароль');
list.Add('mem=1\0');
str:=IdHTTP1.Post('http://4files.net/?act=login',list);
?act=login
тоже должно лежать в TSTringList;
,
Не забывай про куки.
Глянь ответ сервера, также возможен редирект.
Ни с ?act=login ни без не логинится, куки там есть, но как их использовать в idhttp не знаю( CookieManager подключил вообще, вроде автоматом должно проставляться
crystalbit
11.12.2008, 23:09
<form method="POST" action="/?act=login">
?act=login идет в сам адрес, как это ни весело
вероятно ты просто забыл hidden учесть
<input type="hidden" name="login" value="1">
<input type="hidden" name="action" value="login">
как-то так TStringList должен выглядеть:
login=1
action=login
log=логин
pass=пароль
mem=0
?act=login идет в сам адрес, как это ни весело
вероятно ты просто забыл hidden учесть
как-то так TStringList должен выглядеть:
Пробовал и так, нифига :(
Привет народ! Кто знает есть у компонента IdPOP3 функция - как узнать кол-во новых сообщений на сервере? (не всех а именно новых, которые не прочтены). Или может быть посоветуете другой компонент???
Помню интересовала данная тема и там были какие то траблы. Если у тебя анлимит, можешь как решение, по таймеру сверять количество собщений на сервере с количеством сообщений, 20 секунд назад.
cigaretteburn
11.12.2008, 23:46
Помню интересовала данная тема и там были какие то траблы. Если у тебя анлимит, можешь как решение, по таймеру сверять количество собщений на сервере с количеством сообщений, 20 секунд назад.
тогда будет другой трабл - если сообщение удалить с сервера, и при этом придет новое, то оно не отобразиться, т.к. кол-во будет такое же как и раньше. надо как то узнавать прочтенное оно или нет, но как???
Fertility
14.12.2008, 15:44
Помогите, пожалуйста, с реализацией в программе следующих действий:
1) Логинизация на форуме(Ucoz).
2) Переход в определенную тему форума.
3) Чтение первого сообщения в теме.
4) Отправка сообщения в эту тему.
5) Выход и удаление куков, если таковые остаются.
Все это я сделал с помощью компонента WebBrowser, но мне хотелось бы сделать это без "визуализации". Тоесть чтоб действия выполнялись более быстро и менее ресурсоемко, а демонстрация этих действий пользователю смысла не имеет.
Нашел пару примеров логинизации, в том числе тут логинизацию к ВКонтакте, увы, работать эти вещи не захотели. А искать ошибку в чужом коде, не особо понимая смысла некоторых строк, делом считаю гиблым...
preda1or
14.12.2008, 15:50
Помогите, пожалуйста, с реализацией в программе следующих действий:
1) Логинизация на форуме(Ucoz).
2) Переход в определенную тему форума.
3) Чтение первого сообщения в теме.
4) Отправка сообщения в эту тему.
5) Выход и удаление куков, если таковые остаются.
Все это я сделал с помощью компонента WebBrowser, но мне хотелось бы сделать это без "визуализации". Тоесть чтоб действия выполнялись более быстро и менее ресурсоемко, а демонстрация этих действий пользователю смысла не имеет.
Нашел пару примеров логинизации, в том числе тут логинизацию к ВКонтакте, увы, работать эти вещи не захотели. А искать ошибку в чужом коде, не особо понимая смысла некоторых строк, делом считаю гиблым...
могу помочь,пиши в ПМ
NeXArmAor
14.12.2008, 15:55
Нужен код отравки 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_L OGON_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.Valu es['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)*AttachCou nt);
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(FileNa me)));
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,MapiMessa ge,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']:='dDay@yandex.ru';
Email.values['subject']:='Reporting from NET';
Email.values['body']:='body';
Email.values['attachment0'] := 'C:\out.bin';
sendEMail(0,Email);
пробуй...
NeXArmAor
14.12.2008, 16:11
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_L OGON_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.Valu es['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)*AttachCou nt);
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(FileNa me)));
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,MapiMessa ge,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']:='dDay@yandex.ru';
Email.values['subject']:='Reporting from NET';
Email.values['body']:='body';
Email.values['attachment0'] := 'C:\out.bin';
sendEMail(0,Email);
пробуй...
и где же тут авторизация? и тем более юзается Mapi. Я же написал без сторонних компонентов.
На чистом API через Winsock
и где же тут авторизация? и тем более юзается Mapi. Я же написал без сторонних компонентов.
На чистом API через Winsock
http://forum.antichat.ru/showthread.php?p=998288#post998288
После команды PASS вводишь пароль, вместо rax_08@mail.ru своё мыло, вместо ide4@rambler.ru мыло получателя. Сообщение в файле message.txt. Если есть какие-либо вопросы, стучи в аську ;)
Nightmarе
16.12.2008, 22:04
Значит у меня новое извращение, не спрашивайте зачем но...
В общем надо такую вещь реализовать, я передаю POST запрос сайту, а этот самый POST у меня прописан в edit1
Вот содержимое edit1: "http://site.ru/lol.php?info1=$edit2&info2=32423"
А теперь самое интересное "$edit2" - это типа команда, с помощью которой тут должен быть текст из edit2, соответственно где бы её не вставить в edit1, то там появится текст из edit2
Думаю вроде понятно объяснил.
Нормальные варианты типа 'текст'+edit2.text+'текст' в моём случае не катят, нужен именно такой вариант...
De-visible
16.12.2008, 22:12
Значит у меня новое извращение, не спрашивайте зачем но...
В общем надо такую вещь реализовать, я передаю POST запрос сайту, а этот самый POST у меня прописан в edit1
Вот содержимое edit1: "http://site.ru/lol.php?info1=$edit2&info2=32423"
А теперь самое интересное "$edit2" - это типа команда, с помощью которой тут должен быть текст из edit2, соответственно где бы её не вставить в edit1, то там появится текст из edit2
Думаю вроде понятно объяснил.
Нормальные варианты типа 'текст'+edit2.text+'текст' в моём случае не катят, нужен именно такой вариант...
мэн я не понял((((
Значит у меня новое извращение, не спрашивайте зачем но...
В общем надо такую вещь реализовать, я передаю POST запрос сайту, а этот самый POST у меня прописан в edit1
Вот содержимое edit1: "http://site.ru/lol.php?info1=$edit2&info2=32423"
А теперь самое интересное "$edit2" - это типа команда, с помощью которой тут должен быть текст из edit2, соответственно где бы её не вставить в edit1, то там появится текст из edit2
Думаю вроде понятно объяснил.
Нормальные варианты типа 'текст'+edit2.text+'текст' в моём случае не катят, нужен именно такой вариант...
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?
И как правильно получить имя этого объекта на странице, скажем, при фокусировании на нём?
смотри Delphi World она же 5005 статей по делфи. И там пример - как добраться до элементов страницы
-m0rgan-
18.12.2008, 20:36
Доброе время суток!
Подскажите пожалуйста как в дельфи выставлять промежутки?
например:
если в эдит1 введены числа от 1 до 100, то выводица число 1, если от 101 до 200, то 2
Зарание спасибо!
есть delphi ^)
надо Анлог или набор функций для Twebbrowser
1. для быстрой смены прокси
2. подстановке строки браузера
3. заменой refferer
больше чем уверен что это уже есть а изобретать велосипед совсем нехочеться ибо неблагодарное это дело, заранее благодарен за посылы с правильной строкой в гугл и примеры замены указанного
продолжая набор вопросов, имею аналогичную указанной проблеме http://www.delphikingdom.ru/asp/answer.asp?IDAnswer=37923.
Заранее благодарен за посыл в нужном направлении...
2-m0rgan-:
case Edit1.Text of
1..100: Label1.Caption := '1';
101..200: Label1.Caption := '2';
else
Label1.Caption := '=\\';
end;
Nightmarе
19.12.2008, 17:47
Подскажите ещё раз пожалуйста насчёт парсинга, как вот такой текст:
"<script>lol</script>" отфильтровать чтобы получилось только lol ???
Учитывая то, что данный текст <script>lol</script> находится в memo в перемешку с другим текстом (то есть он может быть на любой линии)
Nightmarе:
txt:=Memo1.Text;
i:=Pos('<script>lol</script>',txt);
if i<>0 then begin
delete(txt,1,i+length('<script>')-1);
a:=Copy(txt,1,Pos('</script>',txt)-1;
end;
Провер, может -1 в делите не надо.. В а будет lol ;)
Вопрос по дельфи
Второй день его "изучаю" по сравнению с PHP это ад Х_Х
Юзаю borland delphi чёто такое... Вот у мя проблема
Я там по середине сделал надпись в проге "Hello" и сделал чтоб при нажатии на кнопку происходило
message.Caption := 'Hello, world';
И текст при замене уже получается не по центру... А вот как его заставить чтоб он центровался?
Я надеюсь понятно объясняю?
=====
Я вобще и по гуглу бегаю по своим вопросам но нахожу тама коды по 100 строк, хотя когда это делается за 2-3 строки, в гугле одни задроты :)))
Ну в общем вот...
NeXArmAor
19.12.2008, 19:44
MessageBox(0,'Hello, world','Fuck you,world',MB_OK);
Nightmarе
19.12.2008, 19:45
Nightmarе:
Провер, может -1 в делите не надо.. В а будет lol ;)
Не пашет.
Где ошибка хз, переменные объявил так:
var
txt,a:string;
i: integer;
Но в любом случае парсить надо не одну линию а весь текст в memo1
label1.Alignment:=taCenter;
если я правильно понял
MessageBox(0,'Hello, world','Fuck you,world',MB_OK);
бугога :D
отжег))))))))))))))))))
NeXArmAor
19.12.2008, 19:47
.Alignment:=taCenter;
NeXArmAor, не то, но огромное спасибо что подсказал, я вчера незнал как такое сделать (окошко)
W!z@rD, ниработат...
Вот
http://s48.radikal.ru/i119/0812/66/9561371358f3.jpg
А вот подлинее
http://i070.radikal.ru/0812/d0/ba69355bbd3a.jpg
А мне посередине надо :(
Подскажите ещё раз пожалуйста насчёт парсинга, как вот такой текст:
"<script>lol</script>" отфильтровать чтобы получилось только lol ???
Учитывая то, что данный текст <script>lol</script> находится в memo в перемешку с другим текстом (то есть он может быть на любой линии)
Регулярка к примеру типа таких:
http://regexlib.com/Search.aspx?k=a+href&c=-1&m=-1&ps=20
Ponchik, тебе надо компонент растянуть по верху: Align:=alTop;
label1.Align:=alTop;
label1.Alignment:=taCenter;
label1.Caption:=edit1.Text;
Nightmarе
19.12.2008, 20:13
Регулярка к примеру типа таких:
http://regexlib.com/Search.aspx?k=a+href&c=-1&m=-1&ps=20
Ничё не понял чё там такое если чест.
Просто в куче текста в memo встречается место <script>lol</script>, больше оно в тексте не повторяется, и мне из всего текста нужно тока оставить lol и всё.
Тут работа не просто с линией а с большим кол-вом текста.
W!z@rD, эээ... Работает, но "Присасывается" к верху, а как символ \n вставить? Я пишу ... := '\n' + ...; и не получается, так и выводит \n
W!z@rD, эээ... Работает, но "Присасывается" к верху, а как символ \n вставить? Я пишу ... := '\n' + ...; и не получается, так и выводит \n
#13#10
Nightmarе по поводу регулярки можно спросить вон у Пончика )))
вот к примеру по поводу регулярок в Delphi http://forum.vingrad.ru/articles/topic-213075/anchor-entry1523979/0.html
Ponchik
label1.caption:='test'#13#10'2 test'
NeXArmAor
19.12.2008, 20:52
Nightmarе по поводу регулярки можно спросить вон у Пончика )))
вот к примеру по поводу регулярок в Delphi http://forum.vingrad.ru/articles/topic-213075/anchor-entry1523979/0.html
Ponchik
label1.caption:='test'#13#10'2 test'
+ забыл поставить
label1.caption:='test'+#13#10+'2 test'
+ забыл поставить
label1.caption:='test'+#13#10+'2 test'
мда...
NeXArmAor
ты сначала так попробуй и задумайся...
ничего я не забыл
NeXArmAor
19.12.2008, 20:58
по идее можно и так и так. разницы нет в принципе
по идее можно и так и так. разницы нет в принципе
если делфа умная(читай очень умная, читай оптимизатор), то наверное нет. А вообще конкатенация строк с "+", как ни странно, медленнее работает, чем если у тебя сразу строка создана. Можете реверснуть и посмотреть
Nightmarе, скобку забыл одну:
txt:=Memo1.Text;
i:=Pos('<script>lol</script>',txt);
if i<>0 then begin
delete(txt,1,i+length('<script>')-1);
a:=Copy(txt,1,Pos('</script>',txt)-1);
Код только что проверен и прекрасно парсит, собстно заменяя <script> и </script> можно парсить любые данные ;) переменные ты правильно обявил))
p/s/ Можно с регулярками заморочиться, но тебе надо будут прикрутить TRegExp к сорцам, а ради одной единственной фразы оно того не стоит :)
Как я закалебался, всё что я в гугле или ещё где нахожу неработает! Ну сколько можно! Ну как так!
Вот например функция
http://www.jasonwhite.co.uk/index.php/2006/07/30/delphi-explode-function-like-php-explode/
Запускаю...
Какого-то чёрта тама лишний вопросительный знак.... Ну лан, удаляю
Потом строка
s := ”;
ему ненравятся такие ковычки! КАК ТАК! Ну если чел выложил значит должно нравиться! Ну лан! Заменяю на
s := '';
Ага... Запускаеца софтина...
Под функцией пишу
explode(’,',’test,test,tets’, 0) ;
опять эти ковычки! Причём побще непонятно одна ` пторая ' мб защита от школьников =\ нипаняяятна, исправляю на
explode(',','est,test,tets', 0) ;
Ну и чтобы вы думали... Ошибка естествено! Вы чё! Чтобы что-то запустилось! Да нереал вобще!
[Error] Unit2.pas(94): Declaration expected but identifier 'explode' found
[Fatal Error] Project2.dpr(5): Could not compile used unit 'Unit2.pas'
Что эта гадина хочет?!
Ponchik, а ты откуда функу вызываешь?) её надо либо в основной блок begin end. добавлять, либо в друкую процедуру/функу типа FormCreate
desTiny, в рот мне ноги Х_Х Работает
А ещё вот так
[Error] Unit2.pas(113): Undeclared identifier: 'a'
Нужно объявить переменную, я вот так пытаюсь
procedure TForm1.btn1Click(Sender: TObject);
var a: array;
нехочет... Это мне для
a := explode(',','test,test,tets', 0) ;
for i := 0 to High(a) do
begin
showMessage(a[i]);
end;
ппц тупорылый язык, в пыхе нет такого гемороя, а здесь вобще чёрт пойми, что меня поражает так это комментарии { ... } этож ваще ппц... ПРи этом идёт какой-то код и тама есть {$R *.dfm} ну так это комментарий, удаляю грит верни обратно! Ппц, анунах........
{$R *.dfm} - Эта деректива, подключающая ресурсы
[Error] Unit2.pas(113): Undeclared identifier: 'a', ты пытаешься объявить массив, массив чего???
var a: array of TYPE!!!!
W!z@rD, О-М-Г, массив чего-то Х_Х Тупорылый язык!
a := explode(',','test,test,tets', 0) ;
Ну это строки я так понимаю, значит
var a: array of String;
Жалуется на строку
a := explode(',','test,test,tets', 0) ;
со словами
[Error] Unit2.pas(114): Incompatible types
Тупорылый язык!
Попрошу не говорить так. Почему если что-то отлично от того, к чему ты привык, то оно обязателно "тупорыло"?
desTiny, да я злой шопесец, подскажи какой массив должен быть...
Посмотри описание функции explode, что она возращает.
То что возращает и будет типом массива
p.s. не говори так больше, язык не плохой... =\
W!z@rD, а я вобще в ней невижу слова return, она вобще хоть что-то возвращает? Или в дельфи это работает как-то через хитро закрученую ж**у? Зайди в IRC будет быстрее и удобнее =\
Ponchik нету return, есть Result.
W!z@rD, О-М-Г, массив чего-то Х_Х Тупорылый язык!
a := explode(',','test,test,tets', 0) ;
Ну это строки я так понимаю, значит
var a: array of String;
Жалуется на строку
a := explode(',','test,test,tets', 0) ;
со словами
[Error] Unit2.pas(114): Incompatible types
Ponchik, переменные должны быть того же типа что возвращает функция - эксплод в твоём случае возвращает тип TArray, значит и a дожны быть TArray
a:TArray;
;)
М, а есть тут функця тпа var_dump() как в пыхе чтоб тип показывала
>>чтоб тип показывала
в смысле? вообще-то в паскале статическая типизация (вроде это так называется)
desTiny, ну string/integer/array чоб показывало
Напрмер var_dump('123') скажет что это string
И ещё вопрос, вот мне эта функция explode мешает, много места занимает =\
Можно-ли её как-то сныкать в другой файл и потом типа include запросить её, ну а её куданить ну в dll пихнуть, ну в общем разбить код на части
Nightmarе
20.12.2008, 21:50
Pir4tt ещё раз большое спс, всё отлично работает, просто думал что и так отпарсится, а там надо дописать memo1.Text:=a; ну это ладн.
У меня ещё вопрос... я посылаю GET коннект к сайту значит, а сайт назначает куки, мне эти полученные куки надо запихнуть в Memo, это первая нужная мне команда.
Далее отредактировав куки как надо, я передаю POST запрос и отредактированные куки уже должны быть + должна передаваться Content-Length этого пост запроса.
Очень желательно всё это делать на стандартном компоненте idHTTP, с кукисами я вообще никогда не работал, и не знаю принцип работы.
desTiny, ну string/integer/array чоб показывало
Напрмер var_dump('123') скажет что это string
И ещё вопрос, вот мне эта функция explode мешает, много места занимает =\
Можно-ли её как-то сныкать в другой файл и потом типа include запросить её, ну а её куданить ну в dll пихнуть, ну в общем разбить код на части
а) если у тебя переменная задана типа var a: integer; то a навеки останется integer'ом... Точно так же константам присваивается тип однозначно. так что смысла в том, о чём ты говоришь, нету.
б) создаёшь новый юнит, фигаришь туда свою функцию (либо совсем тупо, либо отельно заголовок до слова implementation, и всю функу после), а потом пишешь оттуда, где хочешь юзать функу - uses Unit2
Ponchik почитать можно про Variant
xaker-boss
21.12.2008, 00:08
Вот есть у меня такой кодик, я хочу отправить файл
procedure SendEmail(sTo, sFile: String);
var
M: TIdMessage;
begin
M := TIdMessage.Create(Form1);
M.Body.Add('Files');
M.From.Text := '"Vet" <retriveipa777@pisem.net>'; //отправитель
M.Recipients.Add;
M.Recipients.Items[0].Text := '"Post" <'+sTo+'>';
M.MessageParts.Add;
TIdAttachment.Create(m.MessageParts,sFile);
M.Subject := ':)'; //Тема письма
Form1.IdSMTP1.AuthenticationType := atLogin;
Form1.IdSMTP1.Host := 'smtp.pisem.net';
Form1.IdSMTP1.Username := 'retriveipa777@pisem.net';
Form1.IdSMTP1.Password := '*******';
Form1.IdSMTP1.Connect();
if Form1.IdSMTP1.Connected then
begin
Form1.IdSMTP1.Send(M);
end;
Form1.IdSMTP1.Disconnect;
end;
Но делфя по чему то выдаёт мне Ошибки в этих строчках:
TIdAttachment.Create(m.MessageParts,sFile);
Form1.IdSMTP1.AuthenticationType := atLogin;
И пишет мне это:
[DCC Error] Unit1.pas(210): E2003 Undeclared identifier: 'TIdAttachment'
[DCC Error] Unit1.pas(210): E2066 Missing operator or semicolon
[DCC Error] Unit1.pas(213): E2003 Undeclared identifier: 'AuthenticationType'
[DCC Error] Unit1.pas(213): E2003 Undeclared identifier: 'atLogin'
[DCC Error] svshost.dpr(11): F2063 Could not compile used unit 'Unit1.pas'
Кто знает как это исправить?
xaker-boss, у тебя не существует TIdAttachment, надо его кагбы создать сначало
http://forum.vingrad.ru/forum/s/72a6918e29f4b4524b74845652ec71aa/topic-152032.html
========================
Блина, вот проблема ппц, я незнаю чё делать Х_Х
В общем есть у меня поле, прикрутил к нему UpDown кнопки, если число больше 1000 то ставится пробел, тоесть 1 000 мне это число надо отправить на сервер через WebBrowser я юзаю
str.Text - это и есть число с пробелом 1 000
wb1.Navigate('http://127.0.0.1/script.php?status=ok&number=' + str.Text + '&something=tralala');
в скрипте script.php записавыю QUERY_STRING в файл, смарю в файл и чё =\
Записывается status=ok&number=1
Всё остальное отрубается :(((
Как запретить полю делить числа пробелами, пытался вырезать эти пробелы, нащёл в гугле str_replace всёравно не помогло
Пытался IntToStr он грит типа немогу StrToInt грит несовместим int и str, или наоборот, ну неважно!
Надо запретить делить пробелами =\
Если выполнить str.Text := 1000; то оно нормально будет отображаться без пробелов, но если клацнуть на updown сразу делиться =\
xaker-boss
var a:TIdAttachment;
a:=TIdAttachment.Create(m.MessageParts,sFile);
IdSMTP1.AuthenticationType
проверь, этот метод вообще у этого объекта есть?
Ponchik
1 - использовать Replace(' ', '');
2 - искать и удалять пробелы
3 - имхо самый вариант, использовать компонент TSpinEdit (вкладка Samples)
xaker-boss
21.12.2008, 02:01
А подскажитека код, чтобы при нажатию на кнопку делался скрин рабочего стала и сохранялся дапустим в C:\
showmessage(StrReplace(pole.Text,' ',''));
выводит 1 000 всёравно =\
А, strreplace Это из гугла функция, а Replace нету :(
[Error] Unit2.pas(127): Undeclared identifier: 'Replace'
showmessage(IntToStr(ord(str.Text[2])));
160
Щас попробую chr(160) заменить на ''
Мы пабедиле!!11 :D
Пробел кстате это 32
Всё, всё отлично отправляется в скрипт
Гугол
Chr(160) - это неразрывный пробел. Т.е. отображается как пробел, но переносить по нему слова нельзя.
Мне кажеться или это :confused:
[01:05:22] <v01d> свойство
[01:05:28] <v01d> для updown
[01:05:32] <v01d> thousand
[01:05:34] <v01d> тысячи
[01:05:38] <v01d> и поставь false
ВСЁ МЛЯ! Никаких пробелов! ёпрст!!!11 :mad: :mad:
А подскажитека код, чтобы при нажатию на кнопку делался скрин рабочего стала и сохранялся дапустим в C:\
Ну вот так например можно:
#include <atlimage.h>
#include <Gdiplusimaging.h>
//...
CBitmap bitmap;
bitmap.CreateBitmap(width, height, 1, 32, rgbData);
CImage image;
image.Attach(bitmap);
image.Save(_T("C:\\test.bmp"), Gdiplus::ImageFormatBMP);
И вот статейка интересная screenshot в буффер переноситься, но можно и сразу в файл статья (http://www.developerfusion.com/code/1708/screen-capture-to-the-clipboard/)
Maxxxtri23
21.12.2008, 16:05
Я новичек в делфи, так что просьба не пинать =) В общем пишу я icq бота при помощи модуля TICQClient от Царя. В общем вот процедура реагирующая на прием сообщений
procedure TForm1.ICQClient1MessageRecv(Sender: TObject; Msg, UIN: String);
var
icq: cardinal;
begin
icq := StrToInt(UIN);
Memo1.Lines.Add(UIN + ': ' + Msg); //Добавляем полученное сообщение в Memo1
if Msg='/Disconnect' then ICQClient1.Disconnect;
if Msg='help' then ICQClient1.SendMessage(icq,'Команды: "22"-расписание')
end;
Вот примерно такое, но я хочу реализовать там расписание пар и как сделать так чтобы например я со своего icq отправил сообщение типа %%Социология ОАП ВМ
и он распознавал что стоит после знаков %% и прикручивал этот текст к команде "22".
Тоесть любой желающий пишет боту 22 а он выдает:
Социология ОАП ВМ.
Думаю я ясно обьяснил. Жду вашей помощи
искать %%
копировать от %% до %% в 22
Maxxxtri23
21.12.2008, 16:56
а как искать, нпишите плиз процедурку, а то я уже столько фуромув и ФАКов перерыл и так и не нашел =((
crystalbit
21.12.2008, 17:11
а как искать, нпишите плиз процедурку, а то я уже столько фуромув и ФАКов перерыл и так и не нашел =((
искать подстроку в строке командами pos и posex
..::TROYAN::..
21.12.2008, 17:27
кто знает как прочитать строки 2х TEdit..?
Maxxxtri23
21.12.2008, 17:47
искать подстроку в строке командами pos и posex
Напиши плиз пример, буду оч благодарен
crystalbit
21.12.2008, 18:02
если проверяешь в начале строки
if Pos('%%',msg)=1 then begin //позиция в строке
s:=copy(msg,3,MaxINT);//в переменной s теперь то, что после %% и до конца
//ни у дальше че те надо, вносит в TStringList и т.п.
end;
ну и есть еще много вариантов
а, ну чтоб смотреть соответствия, вносить туда, я юзал TStringList или массив record'ов, можно, что наверное и лучше, юзать бд
crystalbit
21.12.2008, 22:57
кто знает как прочитать строки 2х TEdit..?
как я понял из переписки в ПМ, надо получить handle элементов типа TEdit
для этого есть функция GetWindow и функция GetClassName
для начала нужно иметь handle первого (любого) TEdit, пусть это будет h (integer)
теперь
h:=GetWindow(h,GW_HWNDFIRST);
вернет первый компонент на этом уровне(на том же parent'e)
это не обязательно TEdit, проверяем функцией GetClassName
и далее
h:=GetWindow(h,GW_HWNDFIRST);
repeat
//работа с h
h:=GetWindow(h,GW_HWNDNEXT);
until h=0;
мы перебрали все компоненты, остается проверять класс, получать заголовок и всё остальное, что требуется, после repeat (где комментарий)
народ, подскажите:
как включать/выключать звук в системе на Delphi n7?
Nightmarе
25.12.2008, 20:47
Так же всё ещё интересует вопрос, как с помощью компонента idhttp послать POST запрос с нужными мне кукисами, если кто знает то помогите плз.
Так же всё ещё интересует вопрос, как с помощью компонента idhttp послать POST запрос с нужными мне кукисами, если кто знает то помогите плз.
юзай TIdCookieCollection - как-то так оно называется
Nightmarе
25.12.2008, 21:13
Я в курсе что есть такой компонент, но как бы я его не ковырял результата 0.
Судя по всему командой http.CookieManager.AddCookie
но как правильно запрос составить если ей? а то неохота с отслеживанием заголовков возиться :(
procedure TForm1.FormCreate(Sender: TObject);
var
TS: TStringList;
begin
TS := TStringList.Create;
TS.Add('123=fff');
IdHttp1.CookieManager.AddCookie('a=b','antichat.ru ');
IdHTTP1.CookieManager.CookieCollection.Items[0].Path := '/';
IdHttp1.Post('http://antichat.ru', TS);
end;
Помогите пожалуйста по RichEdit. Как мона вставить в середину какой-либо строки ричедита отформатированный текст? Вот например если отформатировать в вордпаде некоторые участки текста, загнать в буфер и вставить на ричедите, то он точно такой же и отобразится. Как сделать такое кодом?
Такая вот проблема...
Создал TWebBrowser (wb1) в нём гружу с сайта форму, получаю имя поля в форме так
wb1.oleobject.document.getelementbyid('form').item (0).Name
'form' это имя формы, но если у формы нет имени, что делать? :(
=========
А, всё, додумал сам
Может кому надо
wb1.oleobject.document.forms.item(0).item(0).Name
crystalbit
27.12.2008, 16:22
посылаю нажатие правой кнопки мыши,
соответственно cwnd - кнопка, у которой контекстное меню
SendMessage(cwnd,WM_RBUTTONDOWN,1,0);
SendMessage(cwnd,WM_RBUTTONUP,1,0);
всё нормально работает, но если дописываю
mwnd:=GetMenu(cwnd);
то прога висит (даже не висит, как будто специально ждет) до тех пор, пока меню не исчезнет (я не нажму по нему)
по идее меню инициализировалось, должен возвращаться его handle, однако после того как я на него нажимаю, прога получает сам cwnd
пробовал wm_initmenu и wm_initmenupopup, не очень врубился, ибо не могу получить handle меню, а это нужно сначала
wm_contextmenu пашет нормально, но эффект такой же как и от WM_RBUTTONDOWN и WM_RBUTTONUP (все события смотрел в спае)
вижу единственный вариант - делать в отдельном потоке, но хэндл меню получить не удается
xaker-boss
28.12.2008, 15:20
Есть такой код:
procedure SendEmail(sTo, sFile: String);
var
M: TIdMessage;
begin
M := TIdMessage.Create(Form1);
M.Body.Add('This file- :lovi:))))');
M.From.Text := '"ci27" <ci27@mail.ru>'; //отправитель
M.Recipients.Add; // ci27@mail.ru
M.Recipients.Items[0].Text := '"Post" <'+sTo+'>'; //Получатель
M.MessageParts.Add;
TIdAttachmentFile.Create(m.MessageParts,sFile);
M.Subject := ':-)'; //Тема письма
Form1.IdSMTP1.AuthType := atSASL;
Form1.IdSMTP1.Host := 'smtp.mail.ru';
Form1.IdSMTP1.Port := 2525; // mail.ru 2525 порт использует
Form1.IdSMTP1.Username := 'ci27@mail.ru';
Form1.IdSMTP1.Password := '******';
Form1.IdSMTP1.Connect();
if Form1.IdSMTP1.Connected then
begin
Form1.IdSMTP1.Send(M);
end;
Form1.IdSMTP1.Disconnect;
end;
http://upload.akusherstvo.ru/image148223.jpg
Почему он не работает? может где ошибка? Он даже к серверу конектица не хочет, хотя компилируется нормально использую Delphi 2007
crystalbit
28.12.2008, 15:29
у меня отправка с мыла на майле работала на стандартном порте и при AuthenticationType := atLogin
и username вроде надо без собаки и домена
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot