Программирование

Работа с функциями в Delphi 7

,

Нужна помощь по функциям

Дата публикации:

Evgeny101, 17.03.2009 - 12:47

Привет всем smile.gif Возникла такая ситуация. Делфи язык я не знаю абсолютно и никогда не приходилось с ним сталкиваться. Тут у меня появилась необходимость написать небольшую болванку на делфи, где используются апи функции протектора (тот кто в теме поймёт для чего мне это нужно).
Есть в SDK несколько функций, которые возвращают некоторые значения (типа триал, имя регистрации, SystemID и т.д.).Есть функция:
function getSystemID(lpBuffer: PChar): Boolean;

Parameters:
lpBuffer
Points to the buffer that will receive the system ID string. The buffer must be large enough to hold the string (see remarks section).

Как мне правильно написать, чтобы при работе этой функции и при нажатии на кнопку Buton3 в поле SystemID.Edit появился наш SistemID.
Благодарю за помощь smile.gif

Evgeny101, 17.03.2009 - 17:07

Хм...неужели никто делфи не знает? Или может я что объяснил сумбурно и не понятно? Если нужно больше инфо, то скажите.

Andrey_n, 18.03.2009 - 10:23

Судя по молчанию, никто ..
Я сам занимался Дельфи, но чтобы ответить на твой вопрос, надо поставить этот самый Дельфи и попробовать, что к сожалению пока не возможно.Могу дать тебе ссылку куда стоит сходить посмотреть , там как раз Дельфийцы сидят ..
Чтобы не было вопросов ссылку в ПМ.

Quim2005, 18.03.2009 - 12:51

Цитата | Quote(Evgeny101 @ 17.03.2009 - 12:47)
Тут у меня появилась необходимость написать небольшую болванку на делфи
*


Немного неясно, что написать?

Evgeny101, 18.03.2009 - 14:08

Quim2005,
Пустое окно программы, где расположены только поле редактирования Edit и кнопка Button.Всё больше там ничего нету. При нажатии на кнопку в поле должен появиться наш HardwareID. За получение этого самого ID отвечает функция function getSystemID(lpBuffer: PChar): Boolean;
Вот мне и надо, чтобы после срабатывания этой функции и при нажатии на кнопку батон в поле появился результат этой функции.

Quim2005, 18.03.2009 - 16:53

Цитата | Quote(Evgeny101 @ 18.03.2009 - 14:08)
При нажатии на кнопку в поле должен появиться наш HardwareID. За получение этого самого ID отвечает функция function getSystemID(lpBuffer: PChar): Boolean;
*


Ну для получения id жесткого диска есть немало компонент типа SysInfo.
Касательно функции. Если она представлена именно в таком виде, то она лишь возвращает значение 1 или 0 (true / false). Если же требуется получить ID, то вероятнее всего результат должен быть например в типе PChar.
Вообще этой информации не мало в Интернете, например, только что набрав в яндексе запрос и получил множество страниц, например, здесь:

http://z.alko-net.ru/...0%D0%B8%D0%B9/
и чуть менее подробно здесь:
http://z-oleg.com/delphi/hardw1.htm


Ну и ещё один момент. Есть утилитка Volume ID, которая успешно меняет серийный номер. Она хоть и платная, но есть. Это я к тому. что привязку (чтоб не спёрли, а для чего ещё )))) ) лучше делать не только к HDD.

charodey_mag, 18.03.2009 - 17:02

Цитата | Quote
function getSystemID(lpBuffer: PChar): Boolean;

1. В SDK мелкомягких я такую функцию не видел.
2. По правилам WinAPI функция так выглядеть не может, она должна выглядеть :
function getSystemID(lpBuffer: PChar; nSize: DWORD): Boolean
3.Пример функции
Code

function get_SystemID: string;
var
buffer: array[0..255] of char;
size: dword;
begin
size := 256;
if getSystemID(buffer, size) then
 Result := buffer
else
 Result := ''
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Edit1.Text:=get_SystemID;
end;


версия для печати -> Полная версия

SoftoRooM © 2004-2024