Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Delphi

Выпуск № 164
от 26.06.2005, 23:30

Администратор:Калашников О.А.
В номере:Вопросов: 5, Ответов: 13


Вопрос № 22448: Пишу программу-каталог: необходимо каталогизировать все свойства, методы, объектов внутри панели (pnlEx). Проблема в том, как НАЙТИ все эти св-ва, методы у объекта, у которого известно лишь имя и класс? Записывается все это в обычный текстовой или in...
Вопрос № 22449: Пишу программу-каталог: необходимо каталогизировать все свойства, методы, объектов внутри панели (pnlEx). Проблема в том, как НАЙТИ все эти св-ва, методы у объекта, у которого известно лишь имя и класс? Записывается все это в обычный текстовой или in...
Вопрос № 22456: Здравствуйте, уважаемые эксперты! Подскажите, пожалуйста, компонент, организующий на форме аналог Мастера из Windows - с кнопками Назад, Далее, Отмена, Финиш. Желательно, чтобы компонент подходил для C++ Builder 6...
Вопрос № 22481: Добрый вечер. Посоветовали использовать метод шифрования. 1. Модуль шифрования по алгоритму TEA http://forum.sources.ru/index.php?showtopic=75580 Сложный ли это метод ? Мне нужно шифровать данные в ini файле такого типа, п...
Вопрос № 22487: Здраствуйте эксперты. У меня такой простой вопрос. 1.Есть программы которые просят регистрационный ключ для них существуют крэки , keygen , а как мне сделать чтобы моя прога могла подбирать регистр ключи к этим прогам и в случаи неправильного...

Вопрос № 22.448
Пишу программу-каталог: необходимо каталогизировать все свойства, методы, объектов внутри панели (pnlEx). Проблема в том, как НАЙТИ все эти св-ва, методы у объекта, у которого известно лишь имя и класс? Записывается все это в обычный текстовой или ini-файл. При этом необходимо позже прочитать все это, создать объекты и наполнить их свойвами. То есть:
1. Найти объекты.
2. Найти все их св-ва.
3. Записать их.
4. При следующем открытии программы прочитать все это.
5. И все создать на пустой форме.
Проблема с 2, 3, 4. 1 пункт ищу с помощью массива controls[]
Отправлен: 21.06.2005, 03:45
Вопрос задал: Yujin (статус: Посетитель)
Всего ответов отправлено: 1

Отвечает: sir henry
Здравствуйте, Yujin!
Каждый компонент, основаный на окошке, имеет свойство ControlCount - количество компонентов, которое в нем содержится. Далее к этим компонентам можно обращаться по их индексу:
For i:=0 to pnlEx.ControlCount-1 do
Memo1.Lines.Add(Controls[i].ClassName);
Далее, в зависимости от названия класса, Вы выбираете тот или иной набор свойств и методов, который присутствует у класса. Не забывайте, что все классы еще и наследуют свойства и методы от своих предков.
Как работать с текстовым файлом Вы знаете? А то из Вашего вопроса это непонятно.
Работа с ini-файлами с начала мая здесь уже обсуждалась раз 20, так что если нужно - поднимите архив рассылки.
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 21.06.2005, 06:05


Вопрос № 22.449
Пишу программу-каталог: необходимо каталогизировать все свойства, методы, объектов внутри панели (pnlEx). Проблема в том, как НАЙТИ все эти св-ва, методы у объекта, у которого известно лишь имя и класс? Записывается все это в обычный текстовой или ini-файл. При этом необходимо позже прочитать все это, создать объекты и наполнить их свойвами. То есть:
1. Найти объекты.
2. Найти все их св-ва.
3. Записать их.
4. При следующем открытии программы прочитать все это.
5. И все создать на пустой форме.
Проблема с 2, 3, 4. 1 пункт ищу с помощью массива controls[]

Отправлен: 21.06.2005, 03:47
Вопрос задал: Yujin (статус: Посетитель)
Всего ответов отправлено: 2

Отвечает: sir henry
Здравствуйте, Yujin!
А зачем Вы по два раза один и тот-же вопрос задаете?
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 21.06.2005, 06:07

Отвечает: Voituk Alexander
Здравствуйте, Yujin!
Пишу тебе по поводу пункта 2. Все остальные - элементарные.
Посмотри файл dsgnintf.pas. Там находятся функции для работы с классами и их свойствами и методами. Например GetComponentProperties.
Ответ отправил: Voituk Alexander (статус: 8-ой класс)
Отправлен: 21.06.2005, 12:45


Вопрос № 22.456
Здравствуйте, уважаемые эксперты!
Подскажите, пожалуйста, компонент, организующий на форме аналог Мастера из Windows - с кнопками Назад, Далее, Отмена, Финиш.
Желательно, чтобы компонент подходил для C++ Builder 6
Отправлен: 21.06.2005, 09:52
Вопрос задал: Alexandr (статус: 2-ой класс)
Всего ответов отправлено: 3

Отвечает: Gin
Здравствуйте, Alexandr!
Это не трудно сделать самому положив на форму необходимое количество кнопок
и переименовать их.
С Уважением, Gin.
Ответ отправил: Gin (статус: 8-ой класс)
Отправлен: 21.06.2005, 13:24
Оценка за ответ: 3
Комментарий оценки:
Я и сам знаю, что это сделать не трудно. Однако нет желания в очередной раз изобретать велосипед.

Отвечает: Denisss
Здравствуйте, Alexandr!
Есть такая библиотека JVCL, так вот, в ее наборе, на закладке Jv Wizard есть этот самый компонент.
Взять эту библиотеку можно тут: http://sourceforge.net/projects/jvcl/
Ответ отправил: Denisss (статус: 7-ой класс)
Отправлен: 21.06.2005, 13:38
Оценка за ответ: 5
Комментарий оценки:
Спасибо, библиотеку скачал, буду смотреть

Отвечает: Delphin
Здравствуйте, Alexandr!
Оооо... Лень... Все делается элементарно ручками. Однако меня прикалывает JVCL ( http://sourceforge.net/projects/jvcl/) вот там есть компонент JvWizard который сделает все за тебя.
---------
Ищу сервис пак для школы ^)))
Ответ отправил: Delphin (статус: 6-ой класс)
Отправлен: 22.06.2005, 19:52


Вопрос № 22.481
Добрый вечер.
Посоветовали использовать метод шифрования.

1. Модуль шифрования по алгоритму TEA
http://forum.sources.ru/index.php?showtopic=75580

Сложный ли это метод ? Мне нужно шифровать данные в ini файле такого типа, приблизительно:
Администраторы|Системные|Smoke!$!23424234

Единственно не получается применить для моего случая:

// Процедура сохранения дерева TreeView
procedure TMainPlugInForm.SaveTree(const aFName: string);
var L: TStrings;
n: TTreeNode;
s: string;
begin
L := TStringList.Create;
try
n := tvTree.Items.GetFirstNode;
while n <> nil do
begin
if not n.HasChildren then
begin
s := '';
s := GetNodePath(n, s, '|') + '!$!';
if Assigned(n.data) then
s := s + String(n.Data^);
L.Add(s);
end;
n := n.getNext;
end;
L.SaveToFile(aFName);
finally
L.Free;
end;
end;

// Функция создания дерева TreeView
procedure TMainPlugInForm.MakeTree(const aFName: string);
var L, L2: TStrings;
i, j: integer;
np: string;
n: TTreeNode;
ps: PString;
begin
L := TStringList.Create; // îñí. ôàéë
L2 := TStringList.Create; // ïàðîëè
try
L.LoadFromFile(aFName);
for i := 0 to L.Count-1 do
begin
j := Pos('!$!', L[i]);
if j > 0 then
begin
np := Copy(L[i], j+3, MaxInt);
L[i] := Copy(L[i], 1, j-1);
L2.Add(np);
end;
end;
TreeViewFromItems(tvTree, L, ['|']);
n := tvTree.Items.GetFirstNode;
i := 0;
while n <> nil do
begin
if not n.HasChildren then
begin
if L2[i] <> '' then
begin
New(ps);
ps^ := L2[i];
n.Data := ps;
end;
inc(i);
end else n.Data := nil;
n := n.GetNext;
end;
finally
L2.Free;
L.Free;
end;
end;

// OnCreate
procedure TMainPlugInForm.FormCreate(Sender: TObject);
begin
FName := ExtractFilePath(ParamStr(0)) + 'pass.ini';
if FileExists(FName) then
MakeTree(FName);
end;

Помогите пожалуйста решить проблему, уже 4 дня мучаюсь
Отправлен: 21.06.2005, 19:08
Вопрос задал: Алексей (статус: Посетитель)
Всего ответов отправлено: 1

Отвечает: sir henry
Здравствуйте, Алексей!
Вот здесь, например, есть готовый модуль для шифрования по этому алгоритму:
http://articles.org.ru/cfaq/index.php?qid=1039&catid=74
Вот здесь описания нескольких алгоритмов (с примерами), в том числе и ТЕА
http://zeus.sai.msu.ru:7000/internet/infsecure/its2000_16.shtml
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 22.06.2005, 06:07


Вопрос № 22.487
Здраствуйте эксперты.
У меня такой простой вопрос.
1.Есть программы которые просят регистрационный ключ для них существуют крэки , keygen , а как мне сделать чтобы моя прога могла подбирать регистр ключи к этим прогам и в случаи неправильного ответа дальше подбирала.(она должна сама проверять это всё без моего участия).
2.Постоянные ли айпи у пользователей инета?
3.И как сделать чтобы можно было просканироватьсети для поиска пользователя который использует например мою прогу?
Отправлен: 21.06.2005, 22:57
Вопрос задал: newinfo2005 (статус: 2-ой класс)
Всего ответов отправлено: 6

Отвечает: X
Здравствуйте, newinfo2005!
1)Ну это надо смотреть для конкретной программы, можно например функцией FindWindow искать окно с сообщением о неправильном ключе. Не думаю что простой перебор будет здесь эфективным.
2)Если Dial-Up- то обычно ip динамические(каждый раз при подключении выбираеться свободный у провайдера).Бывает и постоянный.
3)Если прога не использует сеть - то никак.Пргога должна как-нибудь обозначить себя(открыть какой-нибудь порт например).
Ответ отправил: X (статус: 6-ой класс)
Отправлен: 21.06.2005, 23:09
Оценка за ответ: 5

Отвечает: Jadd
Здравствуйте, newinfo2005!
Мальчик! Тебе сколько лет? "Спокойной ночи, малыши!" не по этой программе.
1. Кейгены не подбирают ключи, а генерят их исходя из какого-то правила(отсюда и название keygen - генератор ключей). Например, если известно, что ключ представляет из себя сумму серийного номера харда, текущей даты и, допустим, версии биос, то сгенерировать ключ не представляет труда, вместо того, чтобы самому высчитывать. Для этого кейгены и существуют.
2. Все зависит от типа подключения. Читай литературу по сетям. Дайлапщики не имеют фиксированных адресов. Они у них динамические. У ADSL и других выделенщиков могут быть как динамические, так и фиксированные адреса.
3. Ну ты загнул. А что ты там написал-то? Супер-мега тетрис с управлением рулоном туалетной бумаги? Дык, а если пользователи на дайлапе сидят и юзают прогу, когда не подключены к сети? Не проще сделать так, что прога сама уведомляет тебя (скорее твой сервер) о выходе того или иного пользователя в сеть?

Сынок, читай "Приключения Буратино". А программинг оставь взрослым дядям :). Не обижайся, но вопросы, которые ты задаешь свидетельствуют о нежелании самому почитать книжки умные и разобраться. Вон дядя Билли не читал их и вон что вышло - Винду придумал. Ай-яй-яй. А читал бы книжки по программированию, глядишь и что-то толковое изобрел бы.
---------
Hakuna matata
Ответ отправил: Jadd (статус: Студент)
Отправлен: 21.06.2005, 23:18
Оценка за ответ: 5

Отвечает: sir henry
Здравствуйте, newinfo2005!
1. Для этого, как минимум, нужно знать, какой ответ дает прога при неправильном применении ключа или что там ей требуется.
2. Смотря какие пользователи. Если к инету подключаются через модем, то IP при каждом подключении разный. Если у пользователя выделеный IP, то он единственный и есть. Тут однако другой аспект возникает. Через этот IP подключена (в 99% случаев) чья-то внутреняя сеть, а не 1 комп.
3. А вы заведите в свою прогу регистрацию пользователя при ее запуске и все. :)
Если Вы будете сканить интернет, то вряд ли получите что-либо путное, кроме хакерских атак и визита спецподразделений, которые как раз и занимаются такими вот сканировщиками. :)
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 22.06.2005, 06:14

Отвечает: Gin
Здравствуйте, newinfo2005!
В общем (не конкретно):
1) Профессинальные программисты делают защиту своих программ таким образом что подбор паролей или ключей может длиться годами. Вы же, вероятно, видели длину ключей. Легче научиться ломать программы на языке низкого уровня, например: Ассемблер.
2) Если пользователь соединяется с Интернет через модем - нет. Но бывает что меняются и постоянные адреса.
3) Для этого нужно знать, что пользователь находится в сети. Так как Вы не знаете об этом - нужно делать скрытое сообщение Вам при выходе пользователя в сеть. Или (если официально) предлогать каждый раз проверить обновление программы.
С Уважением, Gin.
Ответ отправил: Gin (статус: 8-ой класс)
Отправлен: 22.06.2005, 08:56
Оценка за ответ: 5

Отвечает: Denisss
Здравствуйте, newinfo2005!
1. Вы хоть представляете, сколько Вы будете тут "подбирать"?!
2. У некоторых ДА, у некоторых НЕТ - на этот вопрос Вам более подробно ответили уже.
3. Через UDP можно попробовать, думаю я. А именно, послать всем компьютерам Вашей (ЛОКАЛЬНОЙ) сети UPD сообщение: "типа, ответьте мне". Кто ответил, у того и работает (В ДАННЫЙ МОМЕНТ) Ваша прога.
Иначе, можно через интернет: при запуске Вашей проги, посылать запрос на интернет-сервер, который должен там оставить свои данные (ну, там IP, версию, ОС, еще чего Вас интересует). Но тут уж Вас и за шпийона (SPY) могут принять.
Ответ отправил: Denisss (статус: 7-ой класс)
Отправлен: 22.06.2005, 11:31
Оценка за ответ: 5
Комментарий оценки:
Наверное я 3 вопрос не правильно поставил?

Отвечает: Delphin
Здравствуйте, newinfo2005!
1. Ты представляешь скоко уйдет времени??? У регета ключ блиной знаков 200 подумай сколько тысячелетий уйдет! Бр... НУ если все еще хочешь то отправляй сообщения окнам и контролам. Все они в MSDN. FindWindow, SendMessage etc.
Но знаю что KeyGen'ы не подбирают а вычесляют ключ к программе. И те кто делают их обладают нехилым умом и знанием ASM'a.
2. Почти у всех у кого выделенка - да. Почти у всех у кого Dial-up - нет.
3. Открыть порт на удаленном компьюетере и потом сканировать чем угодно на открытые порты сеть. Но! Пользователи могут принять твою программу за троян. И не везде такой метод будет работать так как стоят почти у всех фаерволы. И еще у пользователя должна быть сеть. И он не должен пользоваться прокси (как обычно на работе где не NAT).
Помни что твоей программой я пользоваться не буду. Кто знает что ты туда вставил.


---------
Ищу сервис пак для школы ^)))
Ответ отправил: Delphin (статус: 6-ой класс)
Отправлен: 22.06.2005, 19:58


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.delphiplus
Отписаться
Вспомнить пароль

В избранное