Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по компонентам для Delphi, C++ Builder 2

Автор: George_Lucky
Дата сообщения: 23.03.2007 07:57
drSerj
Shaman2
я нашел хороший старый комплект компонент turbo power.
в их составе есть то, что надо:
выдаешь пользователю прогу, и серийник к ней.
он сам устанавливает ее
запускает - получает уникальный код компа и сообщает его вам вместе со своим серийником.
на основании этих двух значений вы генерите активационный ключ и сообщаете юзеру.
тот вводит серийник и активационный ключ - начинает работать.
удобства:
- прога с одним ключем сможет работать только на одном компе
- ключ привязан не только к компу, но и к пользователю компа
- апгрейды используют существующий серийник и активационный код
Автор: Figaro2000
Дата сообщения: 23.03.2007 10:53
George_Lucky
вещь хорошая, но больно уж старая, TurboPower прекратила существование еще в 2003 году... значит и рецепты на таблетки от жадности давно известны..
Автор: Shaman2
Дата сообщения: 23.03.2007 11:14
George_Lucky
многие подобные компоненты генерируют серийник на основе серийного номера диска С. Так вот, при переустановке WinXP или Win2003 этот серийник новый. Так что попадалово.

А если привязываться к mac-адресу сетевухи, то при отключенном кабеле этого адреса просто не вычислить
Автор: Vixoid
Дата сообщения: 23.03.2007 11:52
Shaman2
Ты не чё не попутал? Мож с/н тома (раздела)?
Автор: yuish
Дата сообщения: 23.03.2007 12:07
На мой взгляд, если чел купил прогу - то и ставить он ее может где хочет. Привязку делаю на его личные данные, и любая поддержка - только на те майлы - с которых была регистрации.
Автор: SergeBS
Дата сообщения: 23.03.2007 13:20
Shaman2

Цитата:
А если привязываться к mac-адресу сетевухи, то при отключенном кабеле этого адреса просто не вычислить

Не путай MAC-адрес с сетевым. MAC-адрес адресом вообще-то не является. Это уникальный номер сетевухи и не более чем, прошитый в нее намертво при изготовлении. На наличие кабеля ему плевать.



Добавлено:
Да и насчет серийного номера винта тоже загнул. Не меняется по той же причине, что и MAC-адрес.

Добавлено:
Vixoid
Попутал он, попутал. Причем все .
Автор: kkRiz
Дата сообщения: 23.03.2007 13:42
Не стоит забывать что MAC-адрес можно программно фальсифицировать.
Автор: vshersh
Дата сообщения: 23.03.2007 13:49

Цитата:
Это уникальный номер сетевухи и не более чем, прошитый в нее намертво при изготовлении.

Не обязательно. Например вот
Насчет серийника винта - точно не знаю, но не слышал чтобы кому-то удалось его изменить.
IMHO достаточно привязать защиту к винту... Все-таки винты не так часто меняют (как например сетевухи)

Добавлено:
Кроме этого - некоторые материнки могут менять мак-адрес прямо из настроек биоса
Автор: George_Lucky
Дата сообщения: 23.03.2007 16:01
Shaman2
Там можешь контролировать от чего отталкиваться при определении машинного кода, от юзера, системы, девайса, сети... можешь комбинировать.
хоть старо, но жуть как удобно
Автор: Vitus_Bering
Дата сообщения: 23.03.2007 16:06
Господа, кто использует XLSReadWriteII 3.0?
Пробую установить Columns.Items[0].Width := 30; или Rows.Items[0].Width := 30,
выдает ошибку Аксесс Вайолейшн ...
У меня установлен XLSReadWriteII 3.01.00, пропатченный, без сорсов.
Автор: SergeBS
Дата сообщения: 23.03.2007 16:20
vshersh
Не надо путать MAC-адрес устройства и запись о нем в реестре. ПО СТАНДАРТУ:

Цитата:
Для всех существующих технологий локальных сетей МАС-адрес имеет формат 6 байтов: старшие 3 байта - идентификатор фирмы производителя, а младшие 3 байта назначаются уникальным образом самим производителем.

И если уж идти дальше, то программно перехватить можно запрос куда угодно. Хоть на сетевуху, хоть на винт. А можно не перехватывать, а в железке номер на нужный поправить.

Цитата:
Насчет серийника винта - точно не знаю, но не слышал чтобы кому-то удалось его изменить.

Да легко. Про PC-3000 слышал? Сейчас правда название другое носит. Есть и другие способы.




Добавлено:
В следующий раз (если будет) - лучше отсылать к английскому оригиналу. А то

Цитата:
Это может дать вам возможность менять свой MAC-адрес в любой операционной системой с поддержкой PCI автобусом

КРУТО!
Автор: Shaman2
Дата сообщения: 24.03.2007 19:47

Цитата:
Ты не чё не попутал? Мож с/н тома (раздела)?


Да, перепутал. Именно раздела. Серийный винта не всегда можно получить, особенно если нет прав админа или винтов в системе несколько

Добавлено:

Цитата:
Не путай MAC-адрес с сетевым. MAC-адрес адресом вообще-то не является. Это уникальный номер сетевухи и не более чем, прошитый в нее намертво при изготовлении. На наличие кабеля ему плевать.


Покажи мне исходник на дельфи, который вытягивает mac-адрес и при этом делает это даже с отключенным кабелем под windows XP ? Может я плохо искал, но не нашел.
Автор: freddom1234
Дата сообщения: 25.03.2007 09:03
Всем страждущим моего TMSCETools - пишите в ПМ - тема не та чтобы раздавать компоненты . Если подскажите тему - залью на шару, а там выложу ссылку. Здесь как никак ОБСУЖДАЮТ а не РАЗДАЮТ компоненты.

Кстати уточню - эта компонента не для написания программы для Покета по Делфи - эта компонента для доступа с ПК к базам Покета. Прошу не обольщаться . Я на ней обработчик баз Покета писал. Под Покет я пишу на СИШарпине.

Добавлено:
Кстати по поводу серийников винта - меняется он спокойно, low-level утилитами от фирм производителей. Например у меня был винт с серийником 1234-5678 - и ничего, здорово . По поводу привязки к MAC адресу - есть резон, занимался привязывался. Его можно получить независимо от подключенного адреса. Но его тоже можно поменять - тем кто хоть немного знает о программировании 96c48 микросхем и может разобраться в дампе памяти размером в 512 байт. Однако сразу скажу - против лома нет приема (это как программист, который временами пописывает на Asm) - привязки к БИОСу, к винту, к Маку и к прочему взламываются за считаные минуты(без защиты екзешника), ну а с зашитой экзешника - пару дней (IDA и SoftIce рулит). Я несколько раз пробовал писать различные системы защиты - безуспешно - ломаются на ура. Невзламывают программы которые либо пишутся узкими партиями (не более 100 копий, каждая по 80тыс бакарей), либо те которые никому нафиг ненужны. А получить серийник биоса и винта и мамы и прочего железа можно через стандартное АПИ - если надо то могу код показать
Автор: SergeBS
Дата сообщения: 26.03.2007 07:58
Shaman2
А искал?

Цитата:

Получение MAC адреса компьютера
Автор: Daniel Wischnewski
Для того, чтобы этот код работал, необходимо включить в проект юнит NB30. Простой вызов функции GetMACAddress возвращает адрес первого установленного сетевого адаптера.
Данный пример был составлен на основе статьи на сайте Borland:
http://community.borland.com/article/0,1410,26040,00.html

uses
NB30;

function GetAdapterInfo(Lana: Char): string;
var
Adapter: TAdapterStatus;
NCB: TNCB;
begin
FillChar(NCB, SizeOf(NCB), 0);
NCB.ncb_command := Char(NCBRESET);
NCB.ncb_lana_num := Lana;
if Netbios(@NCB) <> Char(NRC_GOODRET) then
begin
Result := 'mac not found';
Exit;
end;

FillChar(NCB, SizeOf(NCB), 0);
NCB.ncb_command := Char(NCBASTAT);
NCB.ncb_lana_num := Lana;
NCB.ncb_callname := '*';

FillChar(Adapter, SizeOf(Adapter), 0);
NCB.ncb_buffer := @Adapter;
NCB.ncb_length := SizeOf(Adapter);
if Netbios(@NCB) <> Char(NRC_GOODRET) then
begin
Result := 'mac not found';
Exit;
end;
Result :=
IntToHex(Byte(Adapter.adapter_address[0]), 2) + '-' +
IntToHex(Byte(Adapter.adapter_address[1]), 2) + '-' +
IntToHex(Byte(Adapter.adapter_address[2]), 2) + '-' +
IntToHex(Byte(Adapter.adapter_address[3]), 2) + '-' +
IntToHex(Byte(Adapter.adapter_address[4]), 2) + '-' +
IntToHex(Byte(Adapter.adapter_address[5]), 2);
end;

function GetMACAddress: string;
var
AdapterList: TLanaEnum;
NCB: TNCB;
begin
FillChar(NCB, SizeOf(NCB), 0);
NCB.ncb_command := Char(NCBENUM);
NCB.ncb_buffer := @AdapterList;
NCB.ncb_length := SizeOf(AdapterList);
Netbios(@NCB);
if Byte(AdapterList.length) > 0 then
Result := GetAdapterInfo(AdapterList.lana[0])
else
Result := 'mac not found';
end;

Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay




Добавлено:
freddom1234
Компоненты кладут тут:
http://forum.ru-board.com/topic.cgi?forum=35&topic=32815&start=1780
в копилку, она же обменник - см. шапку - правила.
Автор: freddom1234
Дата сообщения: 26.03.2007 10:25
TMS CETools выложил в обменник
смотреть здесь
http://forum.ru-board.com/topic.cgi?forum=35&topic=32815&start=1780#lt
Автор: Lexan
Дата сообщения: 26.03.2007 16:10
Подскажите компоненты для архивирования файлов из delphi.
Автор: SergeBS
Дата сообщения: 26.03.2007 16:44
Lexan
Идешь на torry и выбираешь. Там этого добра навалом.
Автор: Alto
Дата сообщения: 26.03.2007 17:45
freddom1234

Цитата:
Вообще я нашел TSMDatasetLog - но смущает цена (20 баксов) - и отсутствие альтернативы. А вообще база FireBird, компоненты IBExpress (проект существует уже 5 лет) а датасеты простые (TDataset). Хочу сделать логгинг для юзверей - чего делали, какие значения вбивали, что изменяли и т.п.


я реверснул TSMDatasetLog и его родителя TSMLogBase (осталась не рализованной TSMLogBase.SendLogByMail и функционал триальности )))
Основная функция TSMDatasetLog.UpdateStatus написана марсианином... нет ни поддержки ключевых полей по датасету... пример по измененной строке... хороший апдейт )

UPDATE [table]
SET
name="2222"
WHERE
(name="1111")

ни контроля удаления... инсерты вообще никогда не отработают... исходники тут:

http://slil.ru/24138097

надо просто брать и писать на каркасе все по-нормальному... а я пойду лечить голову )
Автор: SergeBS
Дата сообщения: 27.03.2007 08:14
Alto

Цитата:
надо просто брать и писать на каркасе все по-нормальному... а я пойду лечить голову )

По моему убеждению, любое логгирование из приложения при живом сервере - полная ерунда и зряшная трата времени. Все, что приложение должно делать - это при старте докладывать, что в этой сессии по клавишам лупит Вася Пупкин, который имеет такой-то пароль (за что его впустили в базу), и у него такой-то UserId, который при любом изменении данных вместе со временем изменения пишется в таблицу в изменяемой строке. А сервак уже пишет лог: такое-то поле тогда-то в той-то таблице было изменено UserId юзером. Лог при этом правда будет просто опупительных размеров. Зато полный.
И тут не компоненты нужны, а триггера+ХП на сервере.

Автор: SnowSonic
Дата сообщения: 27.03.2007 09:07
Подскажите компоненту для вывода сообщения типа, baloon.
Такое появляется при вводе пароля при входе в винду и нажатом CapsLock.
Автор: Alto
Дата сообщения: 27.03.2007 09:15
SergeBS
Ты сам ответил на вопрос... например связь... а она иногда ложится... как та девка... это решение имеет право на жизнь... надо только четко понимать где и когда его можно применить
Не стоит все под одну гребенку... не для каждой задачи и не для всех случаев нужен полный аудит базы или полная историческая картина на любой период времени... про решение на триггерах тоже можно долго и нудно спорить.
Человек спросил... я потратил немного своего времени и дал ему решение... сам тоже найду, где его можно применить... и где оно реально выстрелит... были бы готовые технологии... хорошие и разные )
Автор: SergeBS
Дата сообщения: 27.03.2007 10:53
Alto

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

Я и не предлагал полный аудит. Есть просто несколько типовых решений аудита вообще.


Цитата:
про решение на триггерах тоже можно долго и нудно спорить.

Ну вот. Чуть что - сразу спорить. На триггерах получится полная независимость от того, какое приложение с базой работает, хоть консоль .
Я по треду решил, что TSMDatasetLog пишет лог куда-то налево (не на сервер).
И потому предложил более другое. Что и дешевле и надежнее. Поскольку и для MS SQL и для InterBase уже есть готовые скрипты, которые просто подточить под задачу - и все.
Да и просто написать "по образу и подобию" - не проблема.


Добавлено:
Вообще тема логгирования БД настолько изъезжена, что остается просто топать куда-нибудь на sql.ru и т.п., читать несколько статей с решениями и выбирать понравившееся.
Автор: lodyr
Дата сообщения: 27.03.2007 11:39
SnowSonic

Цитата:
Подскажите компоненту для вывода сообщения типа, baloon

------------------------------------------------------------------------------------------------
...Show Balloon Tips for the Tray Icon?
компонент для вывода всплывающих сообщений, окон и т.п. из трея     
CoolTrayIcon package, ver. 4.3.1 (by Troels Jakobsen) http://www3.brinkster.com/troels/delphi.asp.
Конфликт класса TCoolTrayIcon с классом от CoolControls CoolDev.Com (www.cooldev.com) company !!!
-------------------------------------------------------------------------------------------------
Автор: mvictor71
Дата сообщения: 27.03.2007 12:48
SnowSonic

Цитата:
Подскажите компоненту для вывода сообщения типа, baloon

посмотри Alphacontrols, LMD
Автор: George_Lucky
Дата сообщения: 27.03.2007 12:55
Как в 4 репорте отпечатать, например, 2-ю страницу?
Автор: bandyn
Дата сообщения: 27.03.2007 14:12
ODAC 5.70
Как правильно работать с DELETE ?

Выполняю команды:
OraQuery->SQL->Clear();
OraQuery->SQL->Add("DELETE FROM T091 WHERE N_MUFTY=100");
OraQuery->Active=true;

Выдается ошибка "SQL statement doesn't return rows"

Как правильно сделать удаление?
Автор: Dennica
Дата сообщения: 27.03.2007 14:50
bandyn
Попробуй вместо OraQuery->Active=true; поставить OraQuery->Execute;
Автор: bandyn
Дата сообщения: 27.03.2007 15:03
Dennica
Странно, но заработало! Спасибо

Еще один вопросик:
OraQuery->SQL->Clear();
OraQuery->SQL->Add("SELECT COUNT(*) FROM Pers"); - колличество записей в таблице.
OraQuery->Execute();

Как присвоить переменной "а" колличество записей таблицы?
Автор: SergeBS
Дата сообщения: 27.03.2007 16:00
George_Lucky
Если в фасте - заведи еще одну страницу в макете. Будет 2 закладки.
bandyn

Цитата:
Странно, но заработало!

Не странно. Active = Open. А что из Open-Execute выбирать - зависит от того, возвращаются данные или нет.
Автор: waik
Дата сообщения: 27.03.2007 16:09
bandyn
Напиши после COUNT(*) as KL ... И обращайся как к обычному цельночисленному полю.

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071

Предыдущая тема: Вызов файла по относит пути и определение буквы СД-рома


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.