PDA

Просмотр полной версии : [Delphi]/[Pascal] Задай вопрос, получи ответ


Страницы : 1 2 3 4 5 6 7 8 9 10 [11] 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

phol1eadeux
28.12.2008, 15:29
Ну Username явно без '@mail.ru' должен быть ...

xaker-boss
28.12.2008, 15:38
да в логине я знаю, но если использовать как говорит crystalbit то делфя пишет:
[DCC Error] Unit1.pas(216): E2003 Undeclared identifier: 'AuthenticationType'
[DCC Error] Unit1.pas(216): E2003 Undeclared identifier: 'atLogin'

В этом компоненте вообще нет то кого, тут только вот что можно выбрать:
http://upload.akusherstvo.ru/image148227.jpg

De-visible
28.12.2008, 15:44
хакеры блин :-\\
===

xaker-boss, у тя какая версия Delphi?

crystalbit
28.12.2008, 15:48
xaker-boss, у нас видимо разные версии indy) у меня который по умолчанию в delphi 7) делай как было у тебя с authtype

xaker-boss
29.12.2008, 00:46
Есть ещё какие не будь предложения?

dinar_007
29.12.2008, 15:04
Помогите пожалуйста по RichEdit. Как мона вставить в середину какой-либо строки ричедита отформатированный текст? Вот например если отформатировать в вордпаде некоторые участки текста, загнать в буфер и вставить на ричедите, то он точно такой же и отобразится. Как сделать такое кодом?
Ya voprosa ne ponyal... Nu poluchit' stroku, otredaktirovat' i pomestit' obratno... V chjom prbolema?

noveek
30.12.2008, 00:47
Братцы подскажите пожалуйста как написать в дельфи чтобы при открытии программы воспроизводился wav или mp3 звук только один раз чтобы не повторялся

Ещё если не затруднит скиньте шаблон как сделать тренер для игры с кодом а значения я сам поменяю )!

dinar_007
30.12.2008, 14:47
Братцы подскажите пожалуйста как написать в дельфи чтобы при открытии программы воспроизводился wav или mp3 звук только один раз чтобы не повторялся
Если мозгов хватит копай в сторону DirectSound... Если мозги есть, но мало опыта - бери готовые решения FMOD, BASS, etc... А если мозгов вообще нет, то перегони mp3 в wav и играй через PlaySound
("some_file.wav", NULL, SND_FILENAME | SND_ASYNC);
Ещё если не затруднит скиньте шаблон как сделать трейнер для игры с кодом а значения я сам поменяю )!
Сириусу больше не наливать!!!
;)

noveek
30.12.2008, 15:27
Чёрт а как бы дельфи указать где этот файл брать wav ну насчёт трейнер все ошибки делают )
скинь нормальный исходник если не трудно (мозгов нет))))
А как бы его скрыть (файл wav) чтобы он прямо в самой программе будущей был чтобы рядом не лежал wav а прямо заделанный в прогу был ну чтобы его поменять никто не смог ))

groundhog
30.12.2008, 15:35
noveek, дружище, тебе всё написали... Ты ставишь задачи не для своего мозга, понизь планку...

dinar_007
30.12.2008, 16:10
Чёрт а как бы дельфи указать где этот файл брать wav ну насчёт трейнер все ошибки делают )
скинь нормальный исходник если не трудно (мозгов нет))))
А как бы его скрыть (файл wav) чтобы он прямо в самой программе будущей был чтобы рядом не лежал wav а прямо заделанный в прогу был ну чтобы его поменять никто не смог ))
Я тебе путь к файлу написал? Написал... А чтобы он был в экзешнике - это ресурс надо встраивать... Или ты хочешь, чтобы тебе тут написали, что и куда нажать, чтобы в проект добавить, как к этому назначить описатели и т.д.? :)

noveek
30.12.2008, 16:39
Я что то не пойму толи его под именем файла some_file.wav в папку с прогой поставить толи как чё то не выходит (
Больше склоняюсь у трейнеру помогите с ним как написать знаю что сначало адреса надо искать например артмони потом замораживать или изменить тока как это должно выглядить в дельфи не могу представить

noveek
30.12.2008, 20:58
Берёшь ручку и бумагу, и медленно, разборчивым почерком пишешь "ТРЕЙНЕР", это на всё что у тебя мозгов хватит...

Я вообще то не так уж без мозгов и вообще ты дельфи с рождения знаешь ?

http://dump.ru/file/1371983

_nic
31.12.2008, 02:49
Блин что за фигня такая.

var
s:string;
begin
s:='string:lalalalal';
delete(s,0,7);
ShowMessage(s);
end;

Строка выводится без изменений!Как такое понимать???

lll6
31.12.2008, 12:30
var s:string;
begin
s:='string:lalalalal';
delete(s,1,7);
ShowMessage(s);
end;

Так пробуй

_nic
02.01.2009, 01:44
Как с помощью инди через post загрузить файл(из памяти) на сервер?

ZET36
02.01.2009, 21:31
Не подскажите как организовать работу с ресурсами, что бы Программа 1 при нажатии на кнопку создавала в этой же папке Программу 2

W!z@rD
03.01.2009, 10:39
Не подскажите как организовать работу с ресурсами, что бы Программа 1 при нажатии на кнопку создавала в этой же папке Программу 2
https://forum.antichat.ru/showpost.php?p=1032334&postcount=20

ZET36
03.01.2009, 12:16
W!z@rD спасибо, разобрался

A_V
04.01.2009, 02:05
Как мне сохранить содержимое Image1 на жесткий диск в формате джпег

o3,14um
04.01.2009, 03:47
Image1.Picture.SaveToFile('c:\1.jpg');

WAR!9G
04.01.2009, 03:58
Image1.Picture.SaveToFile('c:\1.jpg'); Не прокатит ;) С таким же успехом можно сохранять:
Image1.Picture.SaveToFile('c:\1.exe');
В дельфе для этого есть спец-модуль JPEG, который неплохо бы прописать в Uses, а после добавить что то вроде:


procedure TForm1.Button1Click(Sender: TObject);
var
jpg: TJpegImage;
begin
jpg:=TJpegImage.Create;
jpg.Assign(image1.picture.graphic);
jpg.CompressionQuality:=значение от 1 до 100;
jpg.Compress;
jpg.SaveToFile('D:\first.jpg');
jpg.free;
end;

ZET36
04.01.2009, 14:05
Есть библиотека с которой работает моя программа, но Касперский её обнаруживает как HackTool.Win32.Hidd.b
как мне этого избежать?

исходник библиотеки
http://www.rapidshare.ru/877908

Jino
04.01.2009, 17:52
Как сделать проверку нескольких условий?
То есть

If StrToInt(Edit2.Text)<=16 and StrToInt(Edit2.Text)>1 then


Это, разумеется неправильно, но суть, думаю понятна :)

crystalbit
04.01.2009, 17:56
В скобки каждое условие

lll6
04.01.2009, 18:24
If (StrToInt(Edit2.Text)<=16) and (StrToInt(Edit2.Text)>1) then

W!z@rD
04.01.2009, 19:12
ZET36 ты конечно извини, но иметь в руках исходник и задавать такой вопрос, это как минимум глупо, а если по теме, пропусти через обфуксатор мб поможет

Ponchik
04.01.2009, 22:51
А у мя тута такая трабла...
Я в веббраузере гружу пагу, в ней фреймы, мне надо получить src одной из имаг...
wb1.OleObject.document.images.length возвращает 0, т.к. нет имаг, токо фреймы
wb1.OleObject.document.frames.length возвращает 8, значет 8 фреймов
wb1.OleObject.document.frames.item(0).name возвращает имя фрейма
wb1.OleObject.document.frames.item(0).images.lengt h вызывает шибку =\
Project n.exe raised exception class EOleError with message 'Method 'images' not supported by automation object'. Process stopped. Use Step or Run to continue.
Как получить имаги фрейма?
Всё, сам нащёл ...frames.item(0).document...

De-visible
06.01.2009, 02:46
Ддос и подобные темы запрещены у нас.

noveek
06.01.2009, 04:32
Ддос и подобные темы запрещены у нас.

Извините

cremator (c)
06.01.2009, 07:57
Мне надо придумать алгоритм защиты своей программы от копирования и распространения, т.е. привязать ее к одному компьютеру. Привязка к реестру не пойдет потому что ключи в реестре модифицируются и могут быть подстроены под нужное значение.. Какие есть еще способы защиты? И как еще защитить этот код, чтобы его не крэкнули? Спасибо заранее..

lll6
06.01.2009, 12:56
Привязывай к инфе о проце, материнке, винте или к чему ещё захочешь.

DiSi
06.01.2009, 14:50
помогите с таким вот вопросом:

Вот есть у меня webbrowser он открывает страничку

вот вопрос:как сделать поиск слов(ссылок) на страничке открытой браузером?

Зарание спс

cremator (c)
06.01.2009, 20:17
Где брать инфо о проце, материнки и т.д. Кроме как не из реестра? Чтобы ее нельзя было подделать. И что сделать чтобы код в дебаггере нельзя было разобрать?

Hellsp@wn
06.01.2009, 23:24
1) привязать к номеру жётского диска.
2) запаковать upx-ом :)

Phm.phx
07.01.2009, 00:22
Найди материал по TLS .(thread local storage) механизм локальной памяти потока предоставляющий в распоряжение потоков индивидуальные наборы глобальных - статических переменных. ТЛС поддерживается как на уровне явно вызымаемых АPI-функции , так и на уровне РЕ-формата,неявно обрабатываемого сис загрузчиком. РЕ-форма поддерживает функции обратного вызова(TLS-callback),автоматически вызываемые системой до передачи управления на точку входа. В частности это позволяет определить наличие отладчика или скрытно выполнить некоторые действия. Сис загрузчик,также, записывает TLS-индекс в заданную локацию-отличный способ неявной самомодификации проги. Дизассами она не отлавливается и заводит взломщика в тупик:) Tls используется в большом кол-ве протекторов,защит,вирусов, ряков.

W!z@rD
07.01.2009, 09:55
Мне надо придумать алгоритм защиты своей программы от копирования и распространения, т.е. привязать ее к одному компьютеру. Привязка к реестру не пойдет потому что ключи в реестре модифицируются и могут быть подстроены под нужное значение.. Какие есть еще способы защиты? И как еще защитить этот код, чтобы его не крэкнули? Спасибо заранее..

1. создавать файл - ключ
2. модифицировать время создания у определенных папок, файлов
3. создавать псевдо узел в реестре использовав парралельно вариант 1,2

привязка к железу это "плохой тон", а если у пользователя сгорит винт?

o3,14um
07.01.2009, 13:03
1) привязать к номеру жётского диска.
2) запаковать upx-ом :)
upx мегозащита)))))))))))))))

merax
07.01.2009, 13:15
привязка к железу это "плохой тон", а если у пользователя сгорит винт?

А зачем именно к винту? Можно привязаться к 4 устройствам. разрешив модифицировать только 2...
Кстати не забывайте, что есть еще защищенное хранилище в винде где можно хранить хэш ключа активации а ключь активации генерить как раз по номерам устройств. Например номер мамы, жесткого, оперативы. и смотреть, если сменились номер 1 устройства, а остальные прежние, то надо перегенерить ключ, если все или больше 2, то нас пытаются скопировать. А по поводу деббагерров... Читай литературу, способов много, начиная от написания своего криптора)))

Jino
07.01.2009, 18:08
res:=res+StrToInt(Copy(ch,i+1,1))*ss^i;
Не работает. При чем ему не нравиться возведение в степень, равную счетчику (в коде цикл, i - счетчик)
Пробывал даже так, из интереса.
i:=10;
ss:=5;
Showmessage(IntToStr(ss^i));

Тоже не работает.

Вопрос: как возвести в степень, равную счетчику?

criz
07.01.2009, 18:38
Вопрос: как возвести в степень, равную счетчику?
http://www.delphisources.ru/pages/faq/base/power.html

crystalbit
07.01.2009, 18:39
i:=10;
ss:=5;
Showmessage(RealToStr(IntPower(ss,i)));
и подключи модуль math

cremator (c)
07.01.2009, 18:43
procedure TForm1.FormCreate(Sender: TObject);
var i,a,ss,res,deg:integer;
begin
res:=1; //рез-ат
dig:=2; //число
deg:=10; //степень
for i:=1 to deg do
begin
res:=1;
for a:=1 to i do res:=res*dig;
showmessage(inttostr(res));
end;
end;

Hellsp@wn
07.01.2009, 20:22
1. создавать файл - ключ
2. модифицировать время создания у определенных папок, файлов
3. создавать псевдо узел в реестре использовав парралельно вариант 1,2

привязка к железу это "плохой тон", а если у пользователя сгорит винт?
что за бред? а если у пользователи сгорит видеокарта/материнка/системник/квартира, он переустановит систему, то все твои способы идут лесом.

з.ы. плохим тоном является навешивание говнозащит, на говнопрограммы.

W!z@rD
07.01.2009, 20:43
Hellsp@wn ну а где твой вариант? я хотя бы предложил.

Hellsp@wn
07.01.2009, 22:07
я предложил же, даже, целых 2 варианта :)

1-ый yandex.ru запрос: delphi получить номер жёсткого диска
2-ой yandex.ru запрос: скачать upx

SmaTR
08.01.2009, 03:05
Люди помогите!нужна программа на delphi,сниффер,который через каждые 15 минут переходил бы на определённый сайт.в delphi совсем ничего непонимаю,вся надежда на вас=(((
p/s забыл,кто может помоч постучите в аську 47877239 :(

Nightmarе
08.01.2009, 03:12
Люди помогите!нужна программа на delphi,сниффер,который через каждые 15 минут переходил бы на определённый сайт.в delphi совсем ничего непонимаю,вся надежда на вас=(((
p/s забыл,кто может помоч постучите в аську 47877239 :(
кидаешь таймер на форму, устанавливаешь в секундах... 900000 - 15 минут.
далее кидаешь стандартный компонент IdHTTP1 из закладки Indy Clients.
В таймере пишешь следующее:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
IdHTTP1.Get('http://lol.com');
end;

всё... каждые 15 минут стучит на сайт.

iffan
08.01.2009, 15:32
начал изучать с++, компилирую в Code:Bloks 8.02
в книге пример:

#include <iostream.h>
int main()
{
for (int i = 32; i<128; i++);
cout << (char) i;
return 0;
}

при компиляции выдает:


C:\Program Files\CodeBlocks\MinGW\bin\..\lib\gcc\mingw32\3.4. 5\..\..\..\..\include\c++\3.4.5\backward\backward_ warning.h|32|warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.|

.cpp||In function `int main()':|

.cpp|6|error: name lookup of `i' changed for new ISO `for' scoping|

.cpp|5|error: using obsolete binding at `i'|

||=== Build finished: 2 errors, 1 warnings ===|

я так понял что это связано с какимито новвоведениями в компиляторе, в вижуал с++ экспресс 2008 тож самое, по книге обучение на вижуал с++ 6.0

criz
08.01.2009, 15:56
iffan, разделом ошибся.
Убери в подключении хедера ".h", должен пропасть первый варнинг.
for (int i = 32; i<128; i++)
cout << (char) i;
пробуй так.
и добавь #include <cstdlib> на всякий случай :)

ZET36
08.01.2009, 16:22
немогу понять почему вылетает ошибка нажатии на элемент ListBox'a

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button2: TButton;
ListBox1: TListBox;
procedure Button2Click(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
a: integer;
putmas: array[1..5] of string;
implementation

{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);
begin
ListBox1.Items.Add('ererwe');
ListBox1.Items.Add('укукуцк');
a:=0;
end;

procedure TForm1.ListBox1Click(Sender: TObject);
begin
putmas[a]:= Listbox1.Items[ListBox1.ItemIndex];
showmessage(putmas[a]);
end;

end.

iffan
08.01.2009, 17:37
criz благодарю за направление, помогло.
...хмм действительно не втот раздел попал...

dinar_007
08.01.2009, 17:58
немогу понять почему вылетает ошибка нажатии на элемент ListBox'a

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button2: TButton;
ListBox1: TListBox;
procedure Button2Click(Sender: TObject);
procedure ListBox1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
a: integer;
putmas: array[1..5] of string;
implementation

{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);
begin
ListBox1.Items.Add('ererwe');
ListBox1.Items.Add('укукуцк');
a:=0;
end;

procedure TForm1.ListBox1Click(Sender: TObject);
begin
putmas[a]:= Listbox1.Items[ListBox1.ItemIndex];
showmessage(putmas[a]);
end;

end.

Что за ошибка? Компилить исходник сейчас возможности нет..

ZET36
08.01.2009, 18:05
Что за ошибка? Компилить исходник сейчас возможности нет..

Access violation at address 00455448 in module'Project1.exe'. Read of address 02A21D90

dinar_007
08.01.2009, 18:16
Access violation at address 00455448 in module'Project1.exe'. Read of address 02A21D90
Насколько я понял, ты пытаешься писать в нулевую ячейку массива, а массив ты описал с первой...

W!z@rD
08.01.2009, 18:21
переменную "а" объявить надо не глобально, а в теле функции.

procedure TForm1.ListBox1Click(Sender: TObject);
vaк a:integer;
begin
a:=0;
putmas[a]:= Listbox1.Items[ListBox1.ItemIndex];
showmessage(putmas[a]);
end;

ZET36
08.01.2009, 18:32
dinar_007, W!z@rD спасибо

dinar_007 АА точно, совсем запарился)
W!z@rD работает и с глобальной

DiSi
08.01.2009, 19:23
как сделать поиск по сайту через Делфи? интересует поиск текста на 1 странице

..::TROYAN::..
08.01.2009, 19:48
как сделать поиск по сайту через Делфи? интересует поиск текста на 1 странице
html парсер в delphi (http://www.google.com/search?client=opera&rls=ru&q=html+%D0%BF%D0%B0%D1%80%D1%81%D0%B5%D1%80+%D0%B2 +delphi&sourceid=opera&ie=utf-8&oe=utf-8)

noveek
08.01.2009, 23:50
Помогите сделать мешалку текста чтобы открыть блокнот с готовым текстом перемешать и сохранить ещё надо чтобы мешалось в случайном порядке например что то типо такого

имеем так

123456
123457
123458
123459

получаем так

123459
123457
123458
123456

желательно не исходник а саму программу (если исходник то плз на дельфи)

ZET36
09.01.2009, 01:19
Гуглил но всётаки не нашол как представить все значения массива одной строковой переменной, не подскажите эту функцию?

SmaTR
09.01.2009, 15:43
Подскажите пожалуйста,как с помощью таймера запустить функцию WebConnection,чтоб она выполнялась каждый определённый промежуток времени,указанный в таймере?=)

criz
09.01.2009, 15:54
Timer1.Interval = 1000;
Timer1.OnTimer := твоя_функция;
Timer1.Enabled := true;

KaZ@NoVa
09.01.2009, 16:11
Подскажите пожалуйста,как с помощью таймера запустить функцию WebConnection,чтоб она выполнялась каждый определённый промежуток времени,указанный в таймере?=)


Здесь есть, ищи!! ;) http://megalib.com/books/858/KDOffline_8.htm

SmaTR
09.01.2009, 16:41
Timer1.Interval = 1000;
Timer1.OnTimer := твоя_функция;
Timer1.Enabled := true;

вот какая ошибка появляется:
[Error] Unit1.pas(29): ':=' expected but '=' found
[Error] Unit1.pas(30): Undeclared identifier: 'WebConnection'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'

criz
09.01.2009, 16:59
Timer1.Interval := 1000;
Timer1.OnTimer := твоя_функция;
Timer1.Enabled := true;

noveek
09.01.2009, 17:19
Помогите сделать мешалку текста чтобы открыть блокнот с готовым текстом перемешать и сохранить ещё надо чтобы мешалось в случайном порядке например что то типо такого

имеем так

123456
123457
123458
123459

получаем так

123459
123457
123458
123456

желательно не исходник а саму программу (если исходник то плз на дельфи)

А я ?

MNX
10.01.2009, 01:11
Где можно найти шаблон для многопоточного приложения? Делал и на Индевском компоненте, и на TThread - после N операций поток тупо зависает! Причем происходит это самопроизвольно, может зависнуть через 2 минуты, может через час.
Делал в массиве - N штук Tthread (Индевских и Стандартных). Буду благодарен за шаблончик :)

Nightmarе
10.01.2009, 03:47
Народ, подскажите пожалуйста, как сделать такую фишку в программе.
Нажимаю Ctrl+A+S - программа исчезает, нажимаю опять эти 3 кнопки - появляется... То есть как в случае со скайп рекордером например, кто знает точный код как реализовывается напишите плииз!!!!!!!!!!!!!

De-visible
10.01.2009, 04:34
Где можно найти шаблон для многопоточного приложения? Делал и на Индевском компоненте, и на TThread - после N операций поток тупо зависает! Причем происходит это самопроизвольно, может зависнуть через 2 минуты, может через час.
Делал в массиве - N штук Tthread (Индевских и Стандартных). Буду благодарен за шаблончик :)
Шаблонов не мало в гугле, просто после того как поток отработал его желательно убить))).

De-visible
10.01.2009, 04:36
Народ, подскажите пожалуйста, как сделать такую фишку в программе.
Нажимаю Ctrl+A+S - программа исчезает, нажимаю опять эти 3 кнопки - появляется... То есть как в случае со скайп рекордером например, кто знает точный код как реализовывается напишите плииз!!!!!!!!!!!!!
ммм..., чья программа должна исчезать? Скайп или та в которой будет этот код?

--------\
forum.devisible.ru
Программисты, кодеры
--------\


http://articles.org.ru/docum/hotkey.php

Nightmarе
10.01.2009, 05:09
Не совсем работает:

private
{ Private declarations }
procedure WM_HotKeyHandler (var Message: TMessage);
message WM_HOTKEY;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WM_HotKeyHandler (var Message: TMessage);
var
idHotKey: integer; //идентификатор, но об этом - позже
fuModifiers: word; //модификатор MOD_XX
uVirtKey: word; //код виртуальной клавиши VK_XX
begin
//параметры сообщения получаем так:
idHotkey:= Message.wParam;
fuModifiers:= LOWORD(Message.lParam);
uVirtKey:= HIWORD(Message.lParam);
//теперь - небольшая проверочка:
if (fuModifiers = MOD_ALT) AND (uVirtKey = VK_F10) then
showmessage('yess');
inherited;
end;

Жму ALT+F10 и сообщение не выскакивает, где ошибка?

FindeR
10.01.2009, 05:33
Ой, как у тебя всё сложно..

В объявлениях формы кидаем (в private)
procedure WMHotkey( var msg: TWMHotkey ); message WM_HOTKEY;

В OnCreate формы

if not RegisterHotkey(Handle, 1, MOD_ALT or MOD_SHIFT, VK_F9) then
ShowMessage('Сочетание alt+shift+f9 занято');
if not RegisterHotkey(Handle, 2, MOD_ALT or MOD_SHIFT, VK_F10) then
ShowMessage('Сочетание alt+shift+f10 занято');

в OnClose формы удаляем наши хоткеи

UnRegisterHotkey(Handle, 1);
UnRegisterHotkey(Handle, 2);

ну и, собсно, сама процедурка

procedure TForm1.WMHotkey( var msg: TWMHotkey );
begin
if msg.hotkey = 1 then form1.Visible := false;
if msg.hotkey = 2 then form1.Visible := true;
end;

всё :)

Nightmarе
10.01.2009, 06:00
Ой, как у тебя всё сложно..

В объявлениях формы кидаем (в private)
procedure WMHotkey( var msg: TWMHotkey ); message WM_HOTKEY;

В OnCreate формы

if not RegisterHotkey(Handle, 1, MOD_ALT or MOD_SHIFT, VK_F9) then
ShowMessage('Сочетание alt+shift+f9 занято');
if not RegisterHotkey(Handle, 2, MOD_ALT or MOD_SHIFT, VK_F10) then
ShowMessage('Сочетание alt+shift+f10 занято');

в OnClose формы удаляем наши хоткеи

UnRegisterHotkey(Handle, 1);
UnRegisterHotkey(Handle, 2);

ну и, собсно, сама процедурка

procedure TForm1.WMHotkey( var msg: TWMHotkey );
begin
if msg.hotkey = 1 then form1.Visible := false;
if msg.hotkey = 2 then form1.Visible := true;
end;

всё :)

Насколько я понимаю из кода, alt+shift+f10 это и есть горячие клавиши, всё сделал, нажимаю на них и ничего не происходит... :confused:

Ponchik
10.01.2009, 06:02
такой вопрос: Как написать builder на дельфи, ну смысле как пинч например, выставил настройки и он билдит exeшный файл, это как так сделать... Это чтоли юзверь вводит данные, генерица сорс и компилица или как это сделать?

FindeR
10.01.2009, 06:04
Найт,
alt+shift+f9 - сделать форму невидимой
alt+shift+f10 - сделать видимой
накидал тебе сорсик http://ifolder.ru/9952704

FindeR
10.01.2009, 06:10
такой вопрос: Как написать builder на дельфи, ну смысле как пинч например, выставил настройки и он билдит exeшный файл, это как так сделать... Это чтоли юзверь вводит данные, генерица сорс и компилица или как это сделать?
Что-то я сомневаюсь, что будет "генерица сорс и компилица".
Думаю, достаточно нужные параметры передать :)
Почитай вот это (http://mark.shevchenko.name/articles/0008/)

Ponchik
10.01.2009, 06:18
FindeR, да мне не инсталлер нужен... Он копирует уже готовые файлы, и в них ничё не изменить, а мне надо чтобы в exe файле были мои настройки...
Мле... Ну например, в проге пишу "Hello, world" нажимаю Build, создаётся exe файл и при его запуске выводица "Hello, world" тоесть мне надо прописать текст в .exe файл, а как =\

W!z@rD
10.01.2009, 11:12
Пончик - https://forum.antichat.ru/showpost.php?p=1032334&postcount=20

alex777
10.01.2009, 11:32
можете помочь???????я купил прогу а она тупит......

alex777
10.01.2009, 11:35
можете помочь???????я купил прогу а она тупит......она пишет list index out of bounds (0).... это всё после того как я переустановил систему...... \cremator ответь....я у тя анаграмму купил...кто может помочь?????

Stil Free
10.01.2009, 12:09
Парни такое дело сделал программу: выключается комп через заданое пользователем время... Но когда комп выключается то данные не сохраняются ... И ещё хочу сделать чтобы через заданое пользователем время завершался процесс как это сделать?

W!z@rD
10.01.2009, 15:09
повесить таймер, в событие OnTimer описать функцию убивающая процесс

Stil Free
10.01.2009, 20:39
Да всё на таймере и висит в общем... Мне нужно само действие которое убивает процесс + как оформлять программу нормально то есть там фоном картинку поставить???

criz
10.01.2009, 23:37
Stil Free, OpenProccess'ом получаешь дескриптор. Первым параметром указываешь PROCESS_TERMINATE. Пото вызываешь TerminateProcess(). Должно сработать

W!z@rD
10.01.2009, 23:58
>> то есть там фоном картинку поставить???
Timage компонент

Stil Free
11.01.2009, 13:53
Stil Free, OpenProccess'ом получаешь дескриптор. Первым параметром указываешь PROCESS_TERMINATE. Пото вызываешь TerminateProcess(). Должно сработать
На примере можешь?

Stil Free
11.01.2009, 13:54
>> то есть там фоном картинку поставить???
Timage компонент
Ага поняно он только на фон или можно ещё чё нить сделать с ним?

criz
11.01.2009, 18:02
На примере можешь?

hProcess:=OpenProcess(PROCESS_TERMINATE, false, dwPID);
TerminateProcess(hProcess, 0);
P.S. не забудь про права на завершение процессов, для некоторых процессов нужны бОльшие/высокие права

Nightmarе
12.01.2009, 08:33
Подскажите плз, как отправить POST запрос сайту с помощью сокетов (ClientSocket), и при этом чтобы заголовок был:

Host: www.lol.ru
User-Agent: Mozilla/5.0
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Я с сокетами никогда не работал поэтому принципа незнаю.

Joker-jar
12.01.2009, 08:41
с помощью сокетов

ClientSocket или WinSock?

Nightmarе
12.01.2009, 08:45
ClientSocket или WinSock?
ClientSocket

Joker-jar
12.01.2009, 09:12
Nightmarе, у меня ТурбоДелфи, клиентсокета что-т не нашел, возможно нет его тут. Вот накалякал на винсоке на скорую руку. Смотри, может поможет :)
{$APPTYPE CONSOLE}

uses
Windows, SysUtils, WinSock;

var
WSA: TWSAData;
Sock: TSocket;
Server: TSockAddr;

function LookupName(host: string): TInAddr;
var
HostEnt: PHostEnt;
InAddr: TInAddr;
begin
HostEnt := gethostbyname(PChar(host));
FillChar(InAddr, SizeOf(InAddr), 0);
if HostEnt <> nil then
begin
with InAddr, HostEnt^ do
begin
S_un_b.s_b1 := h_addr^[0];
S_un_b.s_b2 := h_addr^[1];
S_un_b.s_b3 := h_addr^[2];
S_un_b.s_b4 := h_addr^[3];
end;
end;
Result := InAddr;
end;

procedure SendString(s: string);
var
Buffer: array[0..255] of char;
begin
StrPCopy(Buffer, s);
Send(Sock, Buffer, length(s), 0);
end;

var
Buffer: array[0..255] of char;
Bufflen, Recved: SmallInt;

begin
WSAStartup(MAKEWORD(1,0), WSA);
Sock := socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
ZeroMemory(@Server,SizeOf(Server));
Server.sin_family:=AF_INET;
Server.sin_port:=htons(80);
Server.sin_addr:=LookupName('www.lol.ru');
if Connect(Sock, Server, SizeOf(Server)) = 0 then
begin
SendString('GET / HTTP/1.1'#13#10);
SendString('Host: www.lol.ru'#13#10);
SendString('Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5'#13#10);
SendString('Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3'#13#10);
SendString('Accept-Encoding: gzip,deflate'#13#10);
SendString('Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7'#13#10);
SendString(#13#10);
end;
repeat
Bufflen := SizeOf(Buffer);
Recved := Recv(Sock, Buffer, Bufflen, 0);
write(Buffer);
until Recved = 0;
CloseSocket(Sock);
WSACleanup;
readln;
end.

Stil Free
12.01.2009, 15:49
hProcess:=OpenProcess(PROCESS_TERMINATE, false, dwPID);
TerminateProcess(hProcess, 0);
P.S. не забудь про права на завершение процессов, для некоторых процессов нужны бОльшие/высокие права
Хех ну для того чтобы завершить Explorer и поновой запустить нужны огромные права в общем я незнаю ничего кроме азов Delphi посоветуй что нить по этому поводу я пороюсь ну кроме googlя я его уже весь обшарил книжку каку нить или пример программы которая это делает? А вообще реально перезапустить Explorer? В диспетчее задач реально но я не думаю что прога сможет работать так как закроет сама себя.... И ещё как сделать безопасное выключение ,а то у меня комп гаснет и ничего не сохраняет?

Nightmarе
12.01.2009, 16:33
Есть ли в сети исходники программ клиент\сервер которые обмениваются данными через какой нибудь гейт на сайте?
Так-же как в квипе реализован обмен файлами.

criz
12.01.2009, 19:17
Stil Free, копай в сторону функции Enableprivilege()

Nightmarе
13.01.2009, 14:05
Вопрос по отправке POST запроса + заголовок через WinSock, я делаю запрос:
SendString('POST /lol.php HTTP/1.1'#13#10);
SendString('Host: www.shinobi.net.ru'#13#10);
SendString('User-Agent: pizda'#13#10);
SendString('Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5'#13#10);
SendString('Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3'#13#10);
SendString('Content-length: 23'#13#10);
SendString('Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7'#13#10);
SendString(#13#10);
SendString('param1=val1&param2=val2'#13#10);
Сайту успешно передаётся заголовок, но не передаётся сам POST запрос (param1=val1&param2=val2), где в запросе ошибка???

groundhog
13.01.2009, 14:50
А как ты определяешь что не передаётся? Какой HTTP код тебе возвращается в ответ на запрос?

Nightmarе
13.01.2009, 14:58
А как ты определяешь что не передаётся? Какой HTTP код тебе возвращается в ответ на запрос?
Скрипт записывает в файл заголовок + QUERY STRING, так вот заголовок есть, а запросы отсутствуют.
Сам скрипт работает без ошибок, другие программы передают и POST и заголовок нормально, а этот код ошибочный... POST не передаётся, возвращяется ответный зголовок:

HTTP/1.1 200 OK
Date: Tue, 13 Jan 2009 10:16:53 GMT
Server: Apache/2.2.9 (FreeBSD) DAV/2 PHP/5.2.6 mod_ssl/2.2.9 OpenSSL/0.9.8e
X-Powered-By: PHP/5.2.6
Content-Length: 0
Content-Type: text/html

groundhog
13.01.2009, 15:02
QUERY STRING инициализируется только при ГЕТ запросе

Nightmarе
13.01.2009, 15:13
QUERY STRING инициализируется только при ГЕТ запросе
По моему он отлавливает POST на сколько мне известно, но в любом случае в гейте заменил на $_POST['param1'], всё равно одно и тоже.
Не перадаётся инфа в любом случае. Ошибка в запросе на стороне Delphi

groundhog
13.01.2009, 15:17
QUERY_STRING инициализируется только при GET-запросе, при POST-запросе данные поступают на STDIN скрипта и другой ситуации быть не может.

Покажи принимающий скрипт.

Кстати ты передаёшь Content-length: 23, а реально передал в теле 25...

Stil Free
15.01.2009, 16:01
Парни у меня трабла с прогой сам сделал, но есть такой пунктик я полностью убрал стандартное окно Windows в ней и теперь программу можно выключить только нажав на крестик сделаный мною и прога выключится если ты правильно ввёл пароль. Самое обидное что прогу можно закрыть просто нажав ALT+F4[:@] Этот способ закрывает прогу без вода пароля как убить этот косяк?

herfleisch
15.01.2009, 16:21
Перехватывать события нажатия клавишь и будет тебе счастье

MongBa†
15.01.2009, 16:51
Парни у меня трабла с прогой сам сделал, но есть такой пунктик я полностью убрал стандартное окно Windows в ней и теперь программу можно выключить только нажав на крестик сделаный мною и прога выключится если ты правильно ввёл пароль. Самое обидное что прогу можно закрыть просто нажав ALT+F4[:@] Этот способ закрывает прогу без вода пароля как убить этот косяк?

Событие формы OnClose

if pass<>true then
begin
MessageDlg('Неверный пасс!',mtError,[mbOK],0);
Action:=caNone;
end;

Stil Free
15.01.2009, 16:57
Перехватывать события нажатия клавишь и будет тебе счастье
Ага это уже будет кейлогер а не безобидная програмка. Это реально но как осуществить?И где взять функцию чтобы свернуть программу в трей?

MongBa†
15.01.2009, 17:04
Для трея юзал библиотеку RxLib
Компонент думаю найдеш, вроде RxTray или типа того.. готовый, поддержка контекста, икон, анимации и т.п.

Stil Free
15.01.2009, 17:07
Событие формы OnClose

if pass<>true then
begin
MessageDlg('Неверный пасс!',mtError,[mbOK],0);
Action:=caNone;
end;
Нее такое не прокатит пробовал :)

MongBa†
15.01.2009, 17:28
Вреш :p или я недопонял...
оно? -> http://webfile.ru/2557518

cremator (c)
15.01.2009, 17:59
Помогите плз., как создать событие OnRead в run time для компонента ClientSocket? Я так понял что процедура должна быть типа notifyevent, а создать её не врублюсь как..

Stil Free
15.01.2009, 18:06
Всё нашёл что икал кому интересно пишите в личку:)

_nic
15.01.2009, 20:10
А в инди можно как то задать свой "юзер-агент" ?

KIR@PRO
15.01.2009, 20:28
Нее такое не прокатит пробовал :)


вот решение, просто не то событие вы брали
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if edit1.Text=pass then
canclose:=true
else
begin
canclose:=false;
MessageDlg('Пароль неверный!',mtError,[mbOK],0);
end;
end;



p.s. мне никто так и не поможет? по этому вопросу: http://forum.antichat.ru/showpost.php?p=1059432&postcount=2611

crystalbit
15.01.2009, 20:30
А в инди можно как то задать свой "юзер-агент" ?
idhttp1.request.useragent ;)

lll6
15.01.2009, 20:40
Ни у кого нет исходников аплоадера на какой-нибудь файлообменник или сайт?

noveek
16.01.2009, 11:29
Скомпилируйте плз кому не лень а то у меня библиотеки в дельфи старые буду примного благодарен

_http://dump.ru/file/1434665

KIR@PRO
17.01.2009, 11:22
Может кто помоч:
искал исходники канального снифера на делфях, нашел DumpDemo работает норм, но исходники не хатят компилится на дэлфе) компоненты говорит нужны. компоненты тоже искал но не нашол(

помогите плиз может у кого есть с компонентами етот же снифер или кто писал канальный снифер и остались исходники ... поделитесь плиз)


p.s. вот ссылка на архив с исходниками и скомпиленной прогой с сайта создателя http://rouse.drkb.ru/files/dumpdemo_delphi_vcl.zip

_nic
17.01.2009, 22:03
Подскажите кто с инди работал.Там нет никаких ограничений на мультипоточность?К примеру к в случае с wininet

De-visible
18.01.2009, 13:09
Подскажите кто с инди работал.Там нет никаких ограничений на мультипоточность?К примеру к в случае с wininet
Изложи свой вопрос более подробно.

ZET36
18.01.2009, 15:38
Как из одной формы вызывать процедуру другой формы. Например в Unit2 находятся переменные, которые я хочу передать в Unit1

пробывал так:


Unit2

procedure TForm2.Button1Click(Sender: TObject);
var
zz:string;
dd:string;
begin

zz:=Edit1.text;
dd:=Edit1.text;
TForm1.the(zz,dd);
end;


Unit1

procedure TForm1.the(zz:string; dd:string);
begin
showmessage(zz);
showmessage(dd);
end;


неполучается.

Может я забыл, что-то указать?

Joker-jar
18.01.2009, 15:46
Добавить в Unit1 в uses Unit2

W!z@rD
18.01.2009, 17:08
нe
TForm1.the(zz,dd); , а Form1.the(zz,dd);
при нажатии Ctrl+F9 будет вопрос, о том что вызываемый метод находится в "соседнем" юните, хотите-ли вы его добавить?
отвечаешь положительно и в секции uses появляется unit2

ZET36
18.01.2009, 18:04
Спасибо, но, что то я запутался как представлять процедуру в "type" в обоих формах, не подсажите?

_nic
18.01.2009, 19:05
Изложи свой вопрос более подробно.
Ну допустим из несколько десятков потоков будут одновременно слатся пост запросы .Небудет ли проблем с реализацией такого на инди?

Joker-jar
18.01.2009, 19:12
ZET36, в Unit1 находишь uses, который после interface, добавляешь туда "Unit2". В Unit2, в свою очередь, находишь implementation, после него дописываешь uses и "Unit1". Все, теперь из модулей доступны методы друг-друга. Если необходима функция из другого модуля, а не метод, то ее нужно объявить перед implementation (например, после раздела глобальных переменных)

ZET36
18.01.2009, 19:44
Joker-jar спасибо

Nightmarе
18.01.2009, 20:28
С помощью какого компонента на делфи можно послать POST запрос сайту работающего исключительно по протоколу HTTPS (SSL) ???

crystalbit
18.01.2009, 20:31
С помощью какого компонента на делфи можно послать POST запрос сайту работающего исключительно по протоколу HTTPS (SSL) ???
можно через idhttp, надо вот только подключить к нему idssliohandler с вкладки indy misc (св-во iohandler)
и в папке проги/системной папке должны лежать эти библиотеки (http://parsers.info/soft/ssl.rar)

Nightmarе
18.01.2009, 21:03
Большое спасибо, если не затруднит можно ли пример такого POST запроса с уже готовым кодом как это реализованно.

Ponchik
18.01.2009, 21:18
Эмм... В дельфе есть строка
str := "Hello <delete>fucking</delete> world";
Мне нужно удалить сами знаете чё :)
Тоесть регулярка получается такая
regular := "/(\<delete\>.*\<\/delete\>)/";
А вот функцию для удаления/замены так и не нагулил, везде какое-то задротство, либо в дельфе нет поддержки регулярок, либо я нето ишу... Подскажите функцию
в PHP это будет так
<?php
$string = "Hello <delete>fucking</delete> world";
$pattern = "/(\<delete\>.*\<\/delete\>)/";
$replacement = "";
echo preg_replace($pattern, $replacement, $string);
?>

crystalbit
18.01.2009, 21:37
Ponchik, есть замечательная функция StringReplace

_s:=StringReplace(_s,'%',_p,[rfReplaceAll]);


еще можно использовать pos и delete

Nightmarе, у себя не нахожу, стукни в асю, попробуем сделать)

W!z@rD
18.01.2009, 21:53
Ponchik ну ты ппц, в дельфи есть поддержка регуляркок... =\

TRegExpr - http://www.regexpstudio.com/RU/TRegExpr/Help/About.html
VBScripts - http://www.delphisources.ru/pages/faq/base/regular_expressions.html

Ponchik
18.01.2009, 22:24
crystalbit, а эта функция под регулярки разве?
W!z@rD, спс, завтра почитаю, сёдня спать

crystalbit
18.01.2009, 22:37
crystalbit, а эта функция под регулярки разве?
не) просто я так понял, что тебе нужно удалить теги,
это просто замена, сорри
тогда я б стал делать через Pos, PosEx и delete, если без регулярок

KIR@PRO
19.01.2009, 16:32
ктонибудь знает как сформировать сетевой пакет полностью из данных которые нужны мне и отправить его, т.е. чтобы драйвер не дописывал сам мак назначения, мак отправителя, номер протокола и тд и тп. а я полностью начиная с первого байта и до последнего сам сформировывал и отправлял пакет...



p.s. за сылки на соответствующие материалы тоже буду благодарен

herfleisch
19.01.2009, 17:04
На программном уровне доступны протоколы выше третьего. Мак добавляется на втором вроде-бы. Короче, никак ты это не сделаешь в домашних условиях. Почитай документацию по уровням повнимательнее.

herfleisch
19.01.2009, 17:06
Может быть я где-то ошибся. Приеду домой минут через 20 - напишу подробнее и точнее.

KIR@PRO
19.01.2009, 17:58
На программном уровне доступны протоколы выше третьего. Мак добавляется на втором вроде-бы. Короче, никак ты это не сделаешь в домашних условиях. Почитай документацию по уровням повнимательнее.


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



вот нашел инфу но тут на си... прочитай про ARP-spoofer =)

http://www.sklyaroff.ru/x15.php

criz
19.01.2009, 18:24
KIR@PRO, копай в сторону Raw-socket'ов.
З.Ы. на форуме куча постов на эту тему.

herfleisch
19.01.2009, 18:31
чет я сомневаюсь.. у меня помню был снифер дак в нем была функция изменения перехваченного пакета и отправка его в интерфейс, если мне не изменяет память то прога называлась Iris



вот нашел инфу но тут на си... прочитай про ARP-spoofer =)

http://www.sklyaroff.ru/x15.php
да... наверное я ступил...

KIR@PRO
19.01.2009, 21:44
2herfleisch
к чему такая самокритика.... с каждым случается)

2criz
надеюсь есть стоящие)

Ponchik
20.01.2009, 16:33
вопрос по дельфи...
Как создать глабальную переменную? Чтобы она была доступна во всех функциях?
Мне приходится юзать скрытые Edit'ы для хранения текста, но мне массив сейчас хранить надо, чё мне 1000 edit'ов создать? =\

slesh
20.01.2009, 16:40
unit name;
interface
.-.-.-.
var
s:string; // будет доступка из всех модулей куда подключен этот модуль
implementation
var
ss:string; // будет доступка тока внутри этого модуля

...
end.

Ponchik
20.01.2009, 16:52
slesh, у мя так
unit name;

interface

uses
Windows, Messages,...
Куда мне тут var вписать? Если между
interface
var s: string;
uses
То вылетает около 20-30 оштбок =\ и не компилица
=============
Всё, разобрался, не туда писал, спасибо :)

Hellsp@wn
20.01.2009, 17:17
после uses нада объявлять.
з.ы. ой не успел))

proton8489
20.01.2009, 18:01
Проблема такая. Сделал простейший icqclient , могу отправлять и получать сообщения, статус online, но я не видим для непросвящённых контактов! Возможно нада авторизация, но какую процедуру нужно писать для авторизации контактов ?

FindeR
20.01.2009, 18:30
http://www.delphisources.ru/pages/sources/internet/2_internet.html
глянь тут сорсы

proton8489
20.01.2009, 22:03
А кроме этого есть что? По этой ссылке смутная информация. Мне всего лишь надо, чтобы меня могли авторизовать без моего подтверждения.

De-visible
21.01.2009, 02:37
А кроме этого есть что? По этой ссылке смутная информация. Мне всего лишь надо, чтобы меня могли авторизовать без моего подтверждения.
rfc не выход?, документации различные которых в инете не мало...
Если что пиши в ПМ.

slesh
21.01.2009, 10:45
запускаешь CommView. Запускаешь Аську. И Авторизуй кого-нибудь. И там поглядишь что слалось. Проще некудо. И понятнее чем в RFC )

De-visible
21.01.2009, 20:41
запускаешь CommView. Запускаешь Аську. И Авторизуй кого-нибудь. И там поглядишь что слалось. Проще некудо. И понятнее чем в RFC )
Ах да Слеш у тя нет случайно ключа к этому снифферу...

proton8489
22.01.2009, 00:14
О па! А что нужно в 1.34' ом ICQClient' е подписать надо, чтобы в аську залезать?

bag
23.01.2009, 00:00
На странице в интернете есть форма отправки сообщения, Как из дельфи вбить текст и отправить его?

<td class="label">Сообщение:</td>
<td>
<textarea onkeypress="utils.submit(event, ge('postMessage'), this.value)" onkeyup="utils.checkTextLength(4096, this.value, ge('textWarn'))" name="message" rows="6" style="width: 250px;"></textarea><br/>
<div id="textWarn" style="text-align:left; color:#666666;margin:5px 0px;display:none;width:250px;"></div>
</td>
</tr>
<span class="ncc"><a href="javascript:this.disabled=true; document.getElementById('postMessage').submit();">Отправить</a></span>

De-visible
23.01.2009, 01:04
На странице в интернете есть форма отправки сообщения, Как из дельфи вбить текст и отправить его?

<td class="label">Сообщение:</td>
<td>
<textarea onkeypress="utils.submit(event, ge('postMessage'), this.value)" onkeyup="utils.checkTextLength(4096, this.value, ge('textWarn'))" name="message" rows="6" style="width: 250px;"></textarea><br/>
<div id="textWarn" style="text-align:left; color:#666666;margin:5px 0px;display:none;width:250px;"></div>
</td>
</tr>
<span class="ncc"><a href="javascript:this.disabled=true; document.getElementById('postMessage').submit();">Отправить</a></span>

TidHTTP TWEBBROWSER

bag
23.01.2009, 01:12
idhttp понятно для чего, а как быть с webbrowser?

bag
23.01.2009, 01:18
приведите пример пожалуйста)

proton8489
23.01.2009, 12:19
что в процедуру маскировки под qip в ticqclient надо вписать там где порт. Просто 8830?

MaTpOc
23.01.2009, 18:48
никак не могу понять че надо скачать чтоб исходный код преобразовать в программу
вбиваю в гугл Delphi и так вобщем уже скачал 6 книг и один видео урок, а самой проги не нашел(((
помогите плз

rushter
23.01.2009, 21:23
Сохраняешь проект в папку и нажимаешь f9 или кнопку компиляции

noveek
23.01.2009, 23:45
При компиляции пишет такую ошибку только одну:

Rlink:32 out of memory

можно как то такое исправить ?

Godfather Bulan
23.01.2009, 23:58
хм... если паскаль, то переменные в таком виде:
var

и еще один var

не помню как точно... короче способ называется Куча вроде

Godfather Bulan
24.01.2009, 00:00
var
a,b,c,d:integer;
var
w,x,y,z:integer;

так ккак то

Nightmarе
24.01.2009, 00:52
Народ, у кого нибудь есть исходник на делфи который открывает на компе SOCKS 5 порт???
У меня к сожалению нерабочий, нужна рабочая версия.

bons
24.01.2009, 01:10
https://forum.antichat.ru/showpost.php?p=571045&postcount=20
писал очень давно, он работает но есть пара недостатков

noveek
24.01.2009, 08:06
Что то при компиляции выдаёт ошибку
выделяет это крассным

IdUDPClient1,Host=Edit1;
IdUDPClient1,Port=Edit2;

W!z@rD
24.01.2009, 11:31
IdUDPClient1.Host:=Edit1.Text;
IdUDPClient1.Port=StrToInt(Edit2.Text);
иди основы учи

AHTOLLlKA
24.01.2009, 12:08
Что то при компиляции выдаёт ошибку
выделяет это крассным

IdUDPClient1,Host=Edit1;
IdUDPClient1,Port=Edit2;

в edit1.text лежит string
а в IdUDPClient1.Port просит integer
так что приходиться string преобразовывать в integer

Nightmarе
25.01.2009, 06:05
Ещё вопрос, существуют ли на паблике исходники бекдоров работающих чисто через php гейт на сайте??? То есть и клиент и сервер коннектятся к гейту и уже там происходит обмен информацией.

noveek
25.01.2009, 08:04
Можно поподробнее я что то непонял мне надо чтобы в idUDPClient где хост бралось из Edit1 а где порт из Edit2 как это реализовать ?

Ch3ck
25.01.2009, 12:07
Можно поподробнее я что то непонял мне надо чтобы в idUDPClient где хост бралось из Edit1 а где порт из Edit2 как это реализовать ?
Тебе же написали:

IdUDPClient1.Host:=Edit1.Text;
IdUDPClient1.Port=StrToInt(Edit2.Text);
иди основы учи

noveek
25.01.2009, 12:40
Ой спасибочки большое а то прямо всё дело на этом встало

ZirroCool
25.01.2009, 14:33
Всем привет!
У меня следующий вопрос!
Есть страничка на которой находиться таблица, она постоянно обновляется(каждые 2-3 секунды)!
Мне нужно с помошью webbrowser сохранить исходный код ВСЕЙ страницы вместе с таблицей! как это сделать!
Пробовал много вариантов из гугла, но все бестолку тк сохраняют сорс только той части страницы которая статическая! Да на всякий случай скажу что обновление страницы происходит с помошью ajax скрипта или java! Заранее спасибо!

slesh
25.01.2009, 15:02
Возьми сниффер. CommView подойдет. Открой эту страничку и погляди какие запросы шли к серверу. И там найдешь нужный тебе запрос который выполняется через ajax. Там скорее всего будет всё в xml или чисто код таблицы. И потом в wb грузи именно этот линк. А там уже легко будет отпарсить. Хотя для таких действий лучше юзай сокеты - намного проще всё делать и возможность в потоке запускать.

ZirroCool
25.01.2009, 17:29
То что вы говорите я пробовал уже, но суть не в этом, я пишу прогу которая будет каждые 3 секунды парсить оттуда нужные значения и по этому встает вопрос сделать это через webbrowser!К тому же доступ на эту страничку , только с авторизацией!

W!z@rD
25.01.2009, 18:00
То что вы говорите я пробовал уже, но суть не в этом, я пишу прогу которая будет каждые 3 секунды парсить оттуда нужные значения и по этому встает вопрос сделать это через webbrowser!К тому же доступ на эту страничку , только с авторизацией!

не надо нам тут заливать, что ты делал то что сказал slesh.

сознайся что я не хочу этого делать потому что это непонятно.

в сореце ты ничего не найдешь, я плохо знаю возможности компонента, но имхо будет проще делать так как shesh сказал

P.S. скорее не java (как ты сказал), а javascript.

DiSi
25.01.2009, 19:15
хелп с таким вот вопросом, есть чтото типо Форми с тестами, ну вот когда отвечаеш оно все пишет "ок", потом идеш шаришся по своей програме и когда возрашаешся к тестам опять они уже сделани и написано "ок", тоесть чтоб пройти тест заново надо ресать всю програму(

Вот сам вопрос: Как можно сделать чтоб при откритии форми тести били не выполненными?

Способ типо: онулить все значения по закритию форми не предлагать(и сам такойй знаю))

ZirroCool
25.01.2009, 19:44
не надо нам тут заливать, что ты делал то что сказал slesh.

сознайся что я не хочу этого делать потому что это непонятно.

в сореце ты ничего не найдешь, я плохо знаю возможности компонента, но имхо будет проще делать так как shesh сказал

P.S. скорее не java (как ты сказал), а javascript.

Если ты меня считаешь совсем за тупого, то я те вот что скажу в огненной лисе есть такой плагин как firebug и через него весь сорс я вижу, но вопрос не в этом: "как мне посмотреть исходник!"
Если ты внимательно прочел, то я собираюсь сделать прогу которая бы авторизировалаь на сервере, а потом уже пыталась вытасчить все то же что смог фаербаг, тобеж штмл странички полностью как она показана в браузере вне зависимости от того динамичная она или нет!И надо, как я уже писал мне не на один раз, тк прога которую я собираюсь написать должна будет каждые 3 секунды вытаскивать этот штмл и парсить оттуда нужные значения!И сделать это желательно с помошью twebbrowser!

К тому кто понял это все большая просьба помочь!

ZirroCool
25.01.2009, 20:08
Решил траблу сам, еле нашел пипец, кому интересно
http://www.realcoding.net/article/view/172

noveek
25.01.2009, 21:18
А подскажите ко мне как пакеты отправлять чтобы не по одному а при нажатии на кнопку он отправлял а пока не выйдешь из программы а то так получается что надо всё время на кнопку жать и ещё как после одного нажатия сделать кнопку больше неактивной

procedure TForm1.Button1Click(Sender: TObject);
begin
IdUDPClient1.Send('qwertyqwertyqwertyqwertyqwertq' ); //отправляем пакеты

end;

end.

crystalbit
25.01.2009, 21:50
А подскажите ко мне как пакеты отправлять чтобы не по одному а при нажатии на кнопку он отправлял а пока не выйдешь из программы а то так получается что надо всё время на кнопку жать и ещё как после одного нажатия сделать кнопку больше неактивной

procedure TForm1.Button1Click(Sender: TObject);
begin
IdUDPClient1.Send('qwertyqwertyqwertyqwertyqwertq' ); //отправляем пакеты

end;

end.

procedure TForm1.Button1Click(Sender: TObject);
begin
Button1.enabled:=false;
//или (sender as TButton).enabled:=false; если событие не только на этой кнопке
//а если много пакетов надо, просто ставить цикл
repeat
IdUDPClient1.Send('qwertyqwertyqwertyqwertyqwertq' ); //отправляем
пакеты
application.processmessages; // даем сообщениям доти до формы
until true; // бесконечно

end;

AHTOLLlKA
26.01.2009, 03:06
А подскажите ко мне как пакеты отправлять чтобы не по одному а при нажатии на кнопку он отправлял а пока не выйдешь из программы а то так получается что надо всё время на кнопку жать и ещё как после одного нажатия сделать кнопку больше неактивной

procedure TForm1.Button1Click(Sender: TObject);
begin
IdUDPClient1.Send('qwertyqwertyqwertyqwertyqwertq' ); //отправляем пакеты

end;

end.


тут уж извините логически подумать.... можно самому решение найти...
методом тыка... или хотябы озы бы выучл.. не так и много

Nightmarе
26.01.2009, 03:35
Кто нибудь может подсказать алгоритм и реализацию как .exe боту лучше всего получить команду с php гейта и выполнить её???
К примеру к php гейту стучатся 10 ботов за NAT, как лучше реализовать отправку нужной команды нужному IP ????

warlok
26.01.2009, 08:39
кто может подсказать как реализовать подобное :
http://img220.imageshack.us/img220/8990/838e6e9595f0oo7.th.jpg (http://img220.imageshack.us/my.php?image=838e6e9595f0oo7.jpg)
а именно окно которое небудет довать доступ к главному окну пока невведеш крпримеру логин и пасс как на картинке, это окно также должно появляться сразу при запуске программы.
Кто что скажет или пример покажет ?

slesh
26.01.2009, 10:41
form1 - основное окно
form2 - окро авторизации

в первой форме проверяешь авторизован или нет.
Если нет то
form2.show;
form1.enabled:=false;

в форме авторизации прописываешь в обработчике onCanClose результат false если неавторизован. Если авторизован то true. также в onClose ставишь form1.enabled:=true;

crystalbit
26.01.2009, 10:49
Form1 - наше окно
Form2 - окно авторизации

из первой - Form1.ShowModal;
и первая форма будет ждать, пока вторая не закроется
также на Form2 кнопкам можно присвоить ModalResult, тогда они будут закрывать форму (без всяких Close), а в первой форме мы будем знать какая кнопка была нажата во второй (Form2.ModalResult)

FindeR
26.01.2009, 11:29
Зачем 2 формы-то? Не проще посередине прям над объектами формы повесить либо фрейм с inputbox'ами, либо какой-нибудь groupbox с ними же. Ну а дальше, как и отписался народ выше, блочить всё, что нужно, пока не авторизуешься, а далее делать фрейму\групбоксу visible:=false...

winstrool
26.01.2009, 14:27
как можно передать какое либо значение пхп скрипту?

FindeR
26.01.2009, 14:31
К примеру, на форму idHTTP закинь (в инди клиентс ищи), в uses добавь IdMultipartFormData
далее
IdHTTP1.Post('http://bla-bla.ru/index.php', data)
где data: TIdMultiPartFormDataStream
в дату добавляем data.AddFormField('имя параметра','значение параметра')

winstrool
26.01.2009, 14:39
как это всё можно реализовать не используя формы?

FindeR
26.01.2009, 15:15
Ну, видимо, как-то так, если с инди...

program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils,
IdHTTP,
IdComponent,
classes;

var
IdHTTP1: TIdHTTP;
Data: TStringList;

begin
Data := TStringList.Create;
IdHTTP1:= TIdHTTP.Create(nil);
{$R *.res}
Data.add('bla-bla');
IdHTTP1.Post('http://sait.ru' ,Data);
end.


Хотя, в сторону сокетов тоже глянуть можно :)

DiSi
26.01.2009, 19:06
подскажите)

Как прописать путь к файлу лежашим в 1ной папке с Проджект1?
(полный путь вида С:......../.... не подходит)


кто не понял)
у мну есть флеш аниме, и когда я в нем пишу путь к файлу он создает полный путь(с именем диска и папок) при етом если я переименую диск или 1 из папок флеш не находиться(((

crystalbit
26.01.2009, 20:08
подскажите)

Как прописать путь к файлу лежашим в 1ной папке с Проджект1?
(полный путь вида С:......../.... не подходит)


кто не понял)
у мну есть флеш аниме, и когда я в нем пишу путь к файлу он создает полный путь(с именем диска и папок) при етом если я переименую диск или 1 из папок флеш не находиться(((
ExtractFilePath(ParamStr(0))+'anime.swf'

ZET36
27.01.2009, 16:08
Здравствуйте, как выполнить через делфи нужную Dos команду, например я хочу выполнить md c:\SSS как нее ковырялся с ShellExecute и WinExec не получается

LEE_ROY
27.01.2009, 16:14
ShellExecute(hInstance,"open","md.exe","c:\SSS", null,sw_sownormal);
шото в этом роде

ZET36
27.01.2009, 16:57
LEE_ROY увы непомогает

W!z@rD
27.01.2009, 17:33
Здравствуйте, как выполнить через делфи нужную Dos команду, например я хочу выполнить md c:\SSS как нее ковырялся с ShellExecute и WinExec не получается

ShellExecute(0, nil, 'mkdir', 'c:\111'. nil, sw_hide)

desTiny
27.01.2009, 18:02
http://www.delphirus.com/article32.html

A2GIL
27.01.2009, 19:43
WinExec и ShellExecute немного не то. С их помощью можно выполнять команды DOS (типа rundl32 xx.dl, бла бла ), вызывать процедуры запуска файлов с параметрами. Но для того, чтобы выполнить консольную команду можно создать поток, запускающий консольную программу. Подключаем только уже написанный для этого модуль.

//Подключаем модуль в Uses
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
StdCtrls, ExtCtrls, ComCtrls, CmdLine;

type
TForm1 = class(TForm)
btnRun: TButton;
btnWrite: TButton;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
procedure DoCommand(_lpcmd:string);
end;

var
Form1: TForm1;
CmdCom :TRedirectThread;

implementation
{$R *.dfm}


procedure TForm1.DoCommand(_lpcmd:string);
var
_data:string;
begin
if CmdCom<>nil then
begin
_data :=_lpcmd+#13#10;
CharToOem(@_data[1],@_data[1]);
CmdCom.WriteData(_data);
end;
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
CmdCom:= TRedirectThread.Create(true);
CmdCom.RunProgram :='cmd';
CmdCom.Params :='';
CmdCom.FreeOnTerminate := true;
CmdCom.Resume;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if CmdCom<>nil then
CmdCom.Terminate();
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
DoCommand('mkdir c:\121'); // задаем командную строку
end;

end.


Модуль CmdLine (http://depositfiles.com/files/7v2etlpia)

ZET36
27.01.2009, 20:44
Спасибо всем, решение с модулем больше мне подходит

noveek
28.01.2009, 01:13
Привет всем обьясните пожалуйсто как можно сделать в таком коде чтобы при выборе файла который отправлять работал Progressbar1 никак не пойму как нужно его сюда вставить да ещё чтобы по окончании передачи файла возникало окно типо Файл успешно передан !

procedure TForm1.Button4Click(Sender: TObject);
begin
if OpenDialog1.Execute then idUDPClient1.Send(OpenDialog1.FileName) //выбираем и отправляем файл

end;

end.

slesh
28.01.2009, 10:41
То, что ты делаешь - это не файл отправляет, а имя файла.
Для того чтобы отправить файл тебе нужно сделать примерно так:
progressbar1.max = размер файла
затем файл блоками читаешь и отправляешь. И в прогрессбар ставишь сколько уже отправил данных

Nightmarе
29.01.2009, 07:31
Есть php скрипт:
<?php
$uploaddir = '/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

print "<pre>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
print "File is valid, and was successfully uploaded. ";
print "Here's some more debugging info:\n";
print_r($_FILES);
} else {
print "Possible file upload attack! Here's some debugging info:\n";
print "Possible file upload attack! Дополнительная отладочная информация:\n";
print_r($_FILES);
}
print "</pre>";
?>
Он принимает файл POST параметром "userfile" и загружает на сервак.

Собственно вопрос, как в делфи реализовать передачу файла этому скрипту???
Пробовал через IdHttp, не катит. Тут явно что то ещё надо юзать...

slesh
29.01.2009, 11:27
Тебе нужно самому постоить HTTP запрос. Вид запроса для отсылки файла примерно такой:

POST /test.php? HTTP/1.1
Host: site.ru
Content-Length: 185
Content-Type: multipart/form-data; boundary=----------HRMPqBFF7FBJH4xJX2p87i

------------HRMPqBFF7FBJH4xJX2p87i
Content-Disposition: form-data; name="userfile"; filename="myfilename.txt"
Content-Type: text/plain

TEST TEST

------------HRMPqBFF7FBJH4xJX2p87i--



----------HRMPqBFF7FBJH4xJX2p87i - это уникальный разделитель который невстречается в передаваемых данных. ты модешь генерить его сам.
каждая строчка заканчивается на #13#10

В дельфе этот запрос будет строиться примерно так:
1) генери boundary типа ------------HRMPqBFF7FBJH4xJX2p87i
2) data:=boundary+#13#10+'Content-Disposition: form-data; name="userfile"; filename="'+filename+'"'+#13#10+'Content-Type: text/plain'+#13#10#13#10+filedata+#13#10#13#10+boundary +'--'+#13#10;
3) pack:='POST /'+script+' HTTP/1.1'#13#10+Host: '+host+#13#10+'Content-Length: '+inttostr(length(data))+#13#10+'Content-Type: multipart/form-data; boundary='+boundary+#13#10#13#10+data;
4) СОединяйся с сервером каких угодно способом и шли ему pack

Nightmarе
29.01.2009, 14:27
Пасиб, про формирование заголовков и POST запроса на сокэтах и т.д... Ну это понятно.
Хотелось бы через специальный компонент упростить всё это дело, должен же быть какой то компонент отвечающий за пердачу файлов.

slesh
29.01.2009, 14:48
Тогда копай тут:
в IdHttp есть модуль IdMultipartFormData
А нем есть класс TIdMultiPartFormDataStream;
в этом классе есть процедура AddFile которая добавляет файл
Через idHTTP1.Post можно послать как раз данные из TIdMultiPartFormDataStream
Надеюсь понял какая последовательность всего

Если быть точным то это выглядит примерно так:

uses IdMultipartFormData;

procedure TForm1.Button1Click(Sender: TObject);
var
d:TIdMultiPartFormDataStream;
begin
d:=TIdMultiPartFormDataStream.Create;
d.AddFile('userfile','c:\test.txt','text/plain');
idHTTP1.Post('/index.php?',d);
end;

Nightmarе
29.01.2009, 14:58
Большое спасибо, понял. Попробуем.

FindeR
29.01.2009, 15:28
Регистрирую хоткеи.
alt - MOD_ALT, ctrl - MOD_CONTROL...
а tab у нас как "называется"?:)

slesh
29.01.2009, 15:32
VK_TAB?

FindeR
29.01.2009, 15:35
Вот, блин...туплю очень сильно.
Спасиб))

RaX
29.01.2009, 18:30
Привет всем. У меня вопрос, как можно с помощью Delphi сделать так, чтобы никакой процесс на заданный процесс не смог сделать WriteProcessMemory, ну или ей подобные функции?

W!z@rD
29.01.2009, 18:36
global hook

RaX
29.01.2009, 19:20
А по точнее?)))

slesh
29.01.2009, 20:52
1) Или писать драйвер который хукает NtWriteVirtualMemory в SSDT
NtWriteVirtualMemory. Из дельфы ты такое легальными способами не зделаешь. А нелегальными - это гемор полный. Так делает аутпост и подобные твари для просекания инжекта.

2) hook - тут не всегда поможет.
т.е. ставя хук ты можешь подаатачить свою dll к запускаемым процесса и из этой dll хукать функцию записи в память. С одной стороны часто этого достаточно, но с другой стороны есть глюк. А именно - будет пахать только для оконных приложений.

3) прописать в реестре подгрузку dll к прогам. ключ HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs этот способ работает норм но не всегда.
палится сильно, и подгружается твоя dll тока в том случае если в адресном пространстве проге есть user32.dll
Ну а дельше просто хук функций. на WASM почитай статейку про API HOOK

Nightmarе
30.01.2009, 03:21
Ещё 2 вопроса.

1) Как мне в memo1 получить листинг файлов указанной директории, причём так, чтобы и скрытые файлы отобразились.
Чтобы можно было задать C:\ и все файлы и папки, в том числе и скрытые были в memo1, и тоже самое если задать скажем так: D:\windows и т.д...

2) Как скачать файл по прямой ссылке в указаную директорию???

slesh
30.01.2009, 10:36
1) функции findfirst findnext через них ты ищешь файлы по маске *.* и всё что находишь - там проверяешь тип. Папка это или файл. итд итп
типа того:

procedure TForm1.Button1Click(Sender: TObject);
var
Searchrec: Tsearchrec;
s:string;
begin
memo1.Clear;
FindFirst('c:\*.*', FaAnyfile, SearchRec);
if (SearchRec.Attr and faDirectory)<>0 then s:='ПАПКА ' else s:='ФАЙЛ ';
memo1.Lines.Add(s+SearchRec.Name);
while FindNext(SearchRec) = 0 do
begin
if (SearchRec.Attr and faDirectory)<>0 then s:='ПАПКА ' else s:='ФАЙЛ ';
memo1.Lines.Add(s+SearchRec.Name);
end;
end;


2) UrlDownloadToFile из модуля urlmon
типа

uses urlmon;
procedure TForm1.Button1Click(Sender: TObject);
begin
urlmon.URLDownloadToFile(nil,'http://ya.ru/','c:\1.html',0,nil);
end;

cremator (c)
30.01.2009, 13:07
Возник вопрос с созданием на форме что-то вроде полосы, на которой бы стояли фигурки(пнг изображения) и которые могли бы перемещаться по горизонтали. Не знаю какие элементы для создания выбрать.. У кого может были какие наработки или статьи какие почитать? Все изображения не 3д и не 2д, просто плоские картинки. Причем еще нюанс, надо чтобы если ширина этой полосы на которой стоят эти фигурки больше чем ширина экрана, то появилась бы полоса прокрутки, для того чтобы можно было бы просмотреть всех кто стоит на этой полосе. Даже не знаю с чего начать..

slesh
30.01.2009, 13:15
как вариант смотри каопонент - тулбар

cremator (c)
30.01.2009, 16:58
Причем тут тулбар вообще???..Пц. Мне не кнопки надо рисовать, а картинки, чтобы они двигались

slesh
30.01.2009, 17:47
тулбар тут притом, что эти твои картинки можно как раз размещать на его кнопках, и предварительно настроить стиль оботражения кнопок чтобы были плоские.

Вообще как я понял тебе нужна система типа как в делфи вкладка компонентов сделана. Там есть и рисунки(тока маленькие) и полосы прокрутки если не вмещается.

РУчная реализация этого - много заморочек будет с перемещением

noveek
01.02.2009, 04:22
Привет всем возник вопрос как отправлять пакет через idUDPClient1 с разных портов тоесть каждый пакет с другого порта например 3000 3001 3002 3003 и тд до бесконечности

Nightmarе
01.02.2009, 04:41
Существует ли способ чтобы программа вообще никаких ошибок не выводила?

noveek
01.02.2009, 05:34
Наверняка только тебе не скажут мне где то из 100% сообщений отвечаются 40% ты непереживай может это сообщение входит в 40%

A2GIL
01.02.2009, 06:08
Существует ли способ чтобы программа вообще никаких ошибок не выводила?

Конечно :) Способ называется "минимум кода". Здесь прямопропорциональная зависимость: чем меньше кода, тем меньше ошибок. Ну ты понимаешь о чем я :)

Привет всем возник вопрос как отправлять пакет через idUDPClient1 с разных портов тоесть каждый пакет с другого порта например 3000 3001 3002 3003 и тд до бесконечности


А что не пробовал разве после каждого предыдущего отосланного пакета менять свойство Port для idUDPClient? И отсылать тот же пакет вновь?

noveek
01.02.2009, 10:50
этот порт на который отправлять! ; а мне надо с которого !!!!

crystalbit
01.02.2009, 11:13
Nightmare,

try
Код, где может произойти ошибка
except
Мы окажемся тут, если она произойдет, нам надо её обработать, можно ничего не писать, тогда и вывода ошибок не будет
end;

Uname-A
01.02.2009, 12:39
У меня такой вопрос:
На форме: Tbutton; Tmemo
Нужно чтобы про нажатии на Тбутон выполнялись команды введённые в Тмемо
Например если в Тмемо введён следующий текст:
@echo off
echo 123
echo 321
pause
При нажатии на Тбутон появлялась командная строка с
123
321
Нажмите клавижу для продолжения...
Тобиш результат работы команд...
Заранее спасибо...

crystalbit
01.02.2009, 12:57
Uname-A,
Uses shellapi;
...
Memo1.Lines.SaveToFile('tmp.bat');
ShellExecute(0,'tmp.bat',nil,nil,SW_SHOWNORMAL);

Uname-A
01.02.2009, 13:24
ооо Как все просто!=)
Тогда ещё один вопрос :

procedure TForm1.Button1Click(Sender: TObject);
begin
********(PChar('ping ' + Edit1.Text),*****)
end;

При выполнеении пингуется хост введённый в Тедит

но как перед выполнением этой команды добавить @echo off?

Гдето в инете видел как ставится разделитель между командами но страничку потерял и больше найти немогу((( Там был какойто специальный символ типа
********(PChar('@echo off | ping ' + Edit1.Text),*****)


_________________________________________
хм .... Чет твой способ непашед(
ShellExecute(0,'tmp.bat',nil,nil,SW_SHOWNORMAL);
Немного подправив сделал так:
ShellExecute(handle,'open','tmp.bat',nil,nil,SW_SH OWNORMAL);
Все заработало.... но всеравно спс

crystalbit
01.02.2009, 13:55
Да, вертикальная палка, но это в бат файле

Uname-A
01.02.2009, 14:00
Да, вертикальная палка, но это в бат файле
Мне нужно именно в Делпи @ехо оф задать Чтоб каждый раз неписать....
ЗЫ палку наугад написал =)

slesh
01.02.2009, 14:15
s:='cmd.exe /c "@echo off&&ping '+edit1.text+'";
и выполняй эту команду )

Uname-A
01.02.2009, 14:28
s:='cmd.exe /c "@echo off&&ping '+edit1.text+'";
и выполняй эту команду )
&& вот этот символ был!
Респект!

ЗЫ Сделал так:
begin
WinExec(PChar('cmd.exe /c "@echo off&&ping '+edit1.text+'"&&pause'),SW_SHOW);
end;
=)

noveek
01.02.2009, 14:46
Привет всем возник вопрос как отправлять пакет через idUDPClient1 с разных портов тоесть каждый пакет с другого порта например 3000 3001 3002 3003 и тд до бесконечности

Спасибо что прямо все и сразу ответили !

herfleisch
01.02.2009, 14:53
Спасибо что прямо все и сразу ответили !
До бесконечности... что у тебя за компьютер такой?

noveek
01.02.2009, 17:04
Как отправлять пакеты через idUDPClient с разных портов

не с тех портов на которые отправлять а на те ЧЕРЕЗ которые отправлять !

точнее надо сделать случайный порт при каждой отправке пакета

ASM16d
01.02.2009, 17:32
idUDPClient1.Port - устанавливаешь ее значение какое тебе надо (номер порта). Если надо случайно - Random (X) - вернет случайное число в диапазоне от 0 до X-1.

noveek
01.02.2009, 17:48
Да млять ! Ещё один Надо не на которые отправлять а с которых !!!

вот мой локальный адресс: 0.0.0.0 а вот порт на рисунке через который отправляется !не на который!

http://noveek.j-net.ru/get/photo/view/port.JPG

svalck
02.02.2009, 11:31
Добрый день! вопрос можно ли в чужое окно (зная заголовок окна) вставить туда свои данные? смысл в том что у меня аон стоит SPRecords, а на другом компе программка. Когда аон схавал номер, он записал его в буфер обмена.. дальше я его каким нибудь образом передам на другой комп... а как мне номер вставить в программулину? такое возможно?

herfleisch
02.02.2009, 11:35
Очень даже возможно. Кури гугл.

slesh
02.02.2009, 11:51
через FindWindow - ищишь свою прожку
через FindWindowEx - находишь компонент куда вставлять
если компонент типа edit или label то юзай SetWindowText для вставки

n0153r
02.02.2009, 12:16
Всем привет.
Хочу написать свою прогу для удальоного управления.
Все реализовал но есть проблема с захватом екрана. Нужна скорость как минимум 1м для нормальной работы.
Если кто-нить реализовывал поделитесь алгоритмом сжатия изображения. Или киньте линк где можно почитать ?

slesh
02.02.2009, 12:58
Тебе мало что даст по нормальному сжатие изображений.
А вот если ты перегонишь картинку в 256 оттенков серого, а потом сожмешь ей любым методом. Вот тогда будет очень быстро, да и никто не обидится на серый цвет )
Притом что перекодировку если реализовать через память и на асме, то можно хоть в реалтайме кодить без тормазов. А на счет сжатия. Самгое простое попробуй - RLE
Если влом чтото самому писать или критически важен размер кода то можно заюзать виндовые функции сжатие из ntdll а именно RtlCompressBuffer и RtlDecompressBuffer

P.S. функции эти есть только в NT-видных системах

Nightmarе
02.02.2009, 15:43
Есть ли компоненты на делфи или какой нить способ, чтобы флешка .swf помещённая в .RES файл и приаттаченная, проигрывалась в программе???

A2GIL
02.02.2009, 19:50
Есть ли компоненты на делфи или какой нить способ, чтобы флешка .swf помещённая в .RES файл и приаттаченная, проигрывалась в программе???


Можно конечно использовать широкие возможности FlashPlayerControl for Delphi (http://www.flashplayercontrol.com/download/FlashPlayerControlForDelphi.zip) . Но он не бесплатен=(

Как альтернативный вариант можно конвертировать swf в avi и использовать имеющийся в Delphi TMediaPlayer , для того чтобы его проиграть:)

crystalbit
02.02.2009, 20:28
Есть ли компоненты на делфи или какой нить способ, чтобы флешка .swf помещённая в .RES файл и приаттаченная, проигрывалась в программе???
Component - Import ActiveX Control
ShockWave Flash

потом добавляешь в uses ShockwaveFlashObjects_TLB
и создаешь компонент типа TShockWave Flash

и, думаю, надо вытащить во временный файл из ресурса ролик

vikseriq
02.02.2009, 23:22
Так же можно юзать OLE-объект. Сильно это не фтыкал (ибо не надо), но в реале и дельфя должна поддерживать.

gral
03.02.2009, 10:45
хочу создать документ (ну вписать туда команды а потом поменять расширение с тхт на exe, cmd, ну или какое надо) для :отключения компа или вылазило сообщение ну или картинка а можно всё
открыл любопытный а ему сообщение на весь экран ну или комп просто вырубился
подскажите какие команды надо прописывать?
у меня Windows 7

noveek
03.02.2009, 10:49
ребят подскажите пожалуйста буквально пару вопросов я просто найти их не могу я знаю что они уже задавались тут (на дельфи разумеется)

1) Как сделать чтобы при нажатии на кнопку Button1 воспроизводился звук mp3 но не повторялся звуки лежат в каталоге с программой в папке sounds мне желательно прямо самый простой скрипт ненада усложнять
2) Как убрать из окна программы _ [ ] X тоесть панель которая закрывает сворачивает разворачивает программу !
3) Как сделать чтобы программа остановилась на своих размерах и их нельзя было больше поменять

заранее благодарю !

slesh
03.02.2009, 11:19
1) юзай функцию из модуля mmsystem - PlaySound
2) В объек инспекторе в настройках формы BorderIcons
3) В объек инспекторе в настройках формы BorderStyle = bsSingle

Nightmarе
03.02.2009, 11:19
Ещё вопрос, при выполнении CMD команд через shellexecute или winexec есть ли способ вывести ответ в Memo ???
К примеру команда:
ShellExecute(0,'open','cmd.exe','dir','',0);
и чтобы листинг был в memo