![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Привет всем. У меня возникла проблема.
Мне нужно: 1) создать dll и в этой DLL процедуру определения серийного номера HDD; 2) вызвав с dll данную функцию вывести ее результат в файл .txt Пытался сделать сам не получилось , искал в инете примеры работы с DLL дам там все поверхностно. Буду очень благодарен за помощь. P.S. Раньше с DLL никогда не работал, так что извините если вопрос идиотский. |
|
#2
|
||||
|
||||
|
Вот есть примерчик (правда на С++)
http://www.sources.ru/pascal/disks/hdd_num.zip |
|
#3
|
||||
|
||||
|
А вот еще одна процедурка:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
SerialNum:Pdword;
a,b:Dword;
buffer:array [0..255] of char;
begin
new(SerialNum);
if getVolumeInformation('d:\',buffer,sizeof(buffer),SerialNum,a,b,nil,0) then
Label1.Caption:=IntToStr(SerialNum^);
Dispose(SerialNum);
end; |
|
#4
|
||||
|
||||
|
|
|
#5
|
||||
|
||||
|
Yurk@, я об этом методе определения S/N HDD уже знал.
The Shadow, спасибо, но я это уже находил в интернете. Я не могу составить программу у меня выводит S/N в виде абдакадабры. Кто-нибудь может составить программу именно с пунктами, что выше. Очень надо. Или мне выложить исходники того, что я уже сделал? Последний раз редактировалось moo2k, 25.02.2008 в 16:58. |
|
#6
|
||||
|
||||
|
Давай исходный код! Посмотрим, что можно сделать
![]() |
|
#7
|
||||
|
||||
|
Блин он у меня сейчас потерян.
![]() |
|
#8
|
||||
|
||||
|
DLL:
Код:
library HDDSNDLL;
uses
Windows,
Classes;
{$R *.res}
function GetHDDSerial(out SN:DWORD):Boolean;
var
a,b:Dword;
buffer:array [0..255] of char;
begin
Result := getVolumeInformation('d:\',buffer,sizeof(buffer),@SN,a,b,nil,0);
end;
exports GetHDDSerial name 'GetHDDSerial';
begin
end.В программе до implementation пиши: Код:
function GetHDDSerial(out SN:DWORD):Boolean; external 'HDDSNDLL.dll' name 'GetHDDSerial'; Код:
var N:DWORD; begin if GetHDDSerial(N) then ShowMessage(IntToStr(N)); end; |
|
#9
|
||||
|
||||
|
Rokuell, спасибо. Сильно выручил.
|
|
#10
|
||||
|
||||
|
Добавлю лишь, что лучше юзать метод вызова функций из DLL - stdcall (передача аргументов через стек), по умолчанию там fastcall (передача через регистры).
|
|
#11
|
|||
|
|||
|
Добрый день!
Большое спасибо этому чудесному сайту, большое спасибо программистам, которые отвечают на вопросы. По сути: мне необходимо создать программу, только не знаю с какого места зайти в Делфи. Основная функция программы заключается в том, что при нажатии на любую кнопку в Windows-ce, Internet Explorer, флешь анимации (это самое главное), эта кнопка распознавалась, и в программе происходили какие нибудь действия, например записывалось что Пользователь в такое то в время нажал кнопку «добавить» во флешь анимации, или закрыть. Распознавание кнопки хотелось бы, что происходило при помощи сравнения с таким же рисунком, например, Пользователь нажал кнопку «закрыть» далее сработала моя программа, она сравнила со своей базой кнопок «закрыть» с кнопкой которую, нажал пользователь… Так же программа должна, сама понимать на какую кнопку нажал пользователь, просто есть кнопки, которые нельзя распознать как текст, например «>>>» что обозначает далее. Буду рад пообщаться с умными людмию.. |