![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
DRAGON88 |
|
||||||||||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 20.11.2008 Репутация: нет Всего: нет |
Нашел код программы, который определяет серийный номер HDD. Код рабочий, только пока никак не могу разобраться
Мне в этом коде непонятно все, например:
А это, по моему, разве язык Delphi???
Вообщем, очень хочу, чтобы профессионалы этого форума прокомментировали каждую строчку кода. Если нет, то скажите хотя бы сайт, где я могу получить пояснения, например, что такое:
или
|
||||||||||
|
|||||||||||
DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: 4 Всего: 19 |
Нет это кусок кода на ассемблере, там даже соответствующая директива есть(asm) А чем вам не угодила функция GetVolumeInformation, что вы решили взять такой вариант? Это константы для удобства ![]() Что делает код на ассемблере я вам точно не скажу, но IMHO тоже самое что и api-шная функция GetVolumeInformation, только есть вероятность того что ваш код в "каких-нить специфичных случаях" работать не будет. -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." ![]() ![]() ![]() |
|||
|
||||
northener |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Это "встроенный ассемблер" Дельфи. Так что можно сказать что это таки "язык Дельфи".
GetVolumeInformation отнюдь не гарантирует выдачу информацию о серийном номере HDD, хотя судя по её описанию она изначально делалась с учетом такой возможности в будущем.
А зачем вам это нужно? Код найденный вами работает (по вашим же словам). -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
||||
|
|||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
Вот-вот. Емнип, пытался применить ее для привязки одной из программ к железу. Споткнулся на первом же Raid-е ![]() ![]() Google => MSDN (SMART_GET_VERSION control code) Только там даже с поллитрой не разберешься, разве что Riply поможет. |
|||
|
||||
northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
<offtop> Имхо, она серийными номерами HDD не занималась. А для того чтобы занялась нужен весьма веский повод. ![]() </offtop> -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
DRAGON88 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 20.11.2008 Репутация: нет Всего: нет |
Ну понимаете, я только недавно начал изучать Delphi. И таких "высот" как в этом коде я не достиг. Код рабочий, google мне помог его найти. Тестировал на компах с разной ОС, интерфейсом дисков все работает. А почему мне это нужно?? Да просто препод мне дал вот такое задание (как самому лучшему студенту по Delphi), уж очень не хочу попасть в тупик ![]() |
|||
|
||||
DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: 4 Всего: 19 |
Офтоп, но всё же, есть комопоненты MSIC Suite - отлично привязывает к железу, можно даже к конкретно этому экземпляру ОС привязать ;) И вытаскивают много инфы о железе ![]() -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." ![]() ![]() ![]() |
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
Дополнение к оффтопу, но все же ![]() ![]() Поверьте, многие (и я в том числе) не достигли таких высот. Но это не мешает нам пользоваться чужим работающим кодом. Необходимость разобраться с внутренностями возникает только тогда, когда скопированный код работает не так, как хочется. В качестве примера: Вы же не знаете (наверное) внутренностей TForm, однако используете его(ее)? Это я к тому, что вряд ли Вам будут объяснять "построчно" - Вы с этим кодом хотите "залезть" на такой уровень, который подразумевает отличные навыки самостоятельного поиска и анализа информации, и в первую очередь - в MSDN. |
|||
|
||||
DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: 4 Всего: 19 |
Да есть и другие, но это так было к слову. -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." ![]() ![]() ![]() |
|||
|
||||
DRAGON88 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 20.11.2008 Репутация: нет Всего: нет |
Блин. Что-то вообще не доганяю. А причес здесь MSDN??? MSDN - это же подразделение компании Майкрософт, ответственное за взаимодействие фирмы с разработчиками. В данном случае, под разработчиками понимаются разработчики аппаратного обеспечения, интересующиеся операционной системой, а также разработчики, использующие программные интерфейсы операционной системы и скриптовые языки различных приложений, разработанных Microsoft. A Delphi разработан другой компанией (конрурентом Microsoft). Соответственно, нужно пользоваться справочной пособией по Delphi. Или я что-то не говорю?????
А Riply - это что????? |
|||
|
||||
northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Именно что-то не то. Странно слышать такое от "лучшего" студента. ![]() -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
DRAGON88 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 20.11.2008 Репутация: нет Всего: нет |
Ну если не то, можно хотя бы пояснить. MSDN как он пременим к Delphi (особенно у коду, который я выставил)??? Где я могу найти информацию по:
Please, а то у меня уже начинает желание все пропадать. Просто руки опускаются. Ну сложно для меня пока-что это на данном этапе. Но желание разбираться огромное. Мне бы только ссылку на сайт (желательно конечно на русском), а там я буду смотреть, анализировать, что такое SMART_GET_VERSION = $074080, DRVERR_IDE_ERROR = 1 и др. |
||||
|
|||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 22 Всего: 72 |
Вот блин. А мужики-то не знают ![]() Упрощенно, MSDN можно понимать как глобальный справочник, посвященный всему и вся в Windows и для Windows. А по ссылке, которую я дал, пройти не судьба? Кроме как там, более актуальной, полной и исчерпывающей информации вряд ли где можно найти. Добавлено через 1 минуту и 3 секунды А вот на это надеяться не надо. Читать такое лучше и правильнее в оригинале. |
|||
|
||||
DRAGON88 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 20.11.2008 Репутация: нет Всего: нет |
К примеру, что такое StrToInt или IntToStr я понимаю. Если встречается какия-то непонятная функция, я пользуюсь Help по Delphi который у меня есть. А увидев этот код я ничего не могу понять. В своем Help по Delphi я не нашелЮ что значит
Поэтому и создал тему в надежде что мне смогут помощь или подтолкнуть в правильном направлении. Главное - желание разбраться во всем этом, а желание у меня пока что есть. |
|||
|
||||
DarkProg |
|
||||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: 4 Всего: 19 |
Вопрос, что изменилось? Ответ, да ничего, кроме названия "обёртки". Это просто коды коотрые возвращает функция написанная на асме и с ними производится сравнение, можно писать что-нить типа такого
А можно вот так
Читабельность второго будет выше, да и универсальность больше, т.к. при применении в другом месте этих же констант можно не заморачиваться по поводу их замены, если они вдруг изменятся. Причём тут MSDN, ну как при чём... а где WinApi функции описываются, а где мелкомягкие пишут про свои всякие штуки вроде SQL Server, .Net и т.д. и т.п.? -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." ![]() ![]() ![]() |
||||
|
|||||
northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Дело не в том на каком языке вы пишете программу, в том под какую операционную систему эта программа создается. Для того чтобы получить серийник HDD в среде ОС Windows вы должны воспользоваться функциями Windows API, которые и описаны в MSDN. Готовых ссылок у меня нет. Попробуйте пошерстить поисковики по теме DeviceIoControl -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: 4 Всего: 19 |
Прикольно уже давно нет такого, только коллекция ссыло растёт, да и документация от ембаркадеро весьма полезная, недавно узнал случайно о вкусностях таких, что прям душа народоваться до сих пор не может, а то я всё велосипеды изобретал... -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." ![]() ![]() ![]() |
|||
|
||||
DRAGON88 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 20.11.2008 Репутация: нет Всего: нет |
Спасибо, хоть уже что-то для меня начинает проясняться. Вот этим Help я пользую. Вот он: http://narod.ru/disk/47560522001.2ab1fdc59...hi%207.rar.html |
|||
|
||||
northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Ну поскольку вы только недавно начали изучать программирование, то этот хэлп безусловно вам поможет начать осваивать Дельфи. И поможет создавать программы различной степени сложности. Но: 1. Этот хэлп весьма неполный, ибо старый. В Д2005-Д2007 было многое в Дельфи добавлено. В Д2009 тоже произошли значительные изменения. Так что если вы пользуетесь версией Дельфи старше Д7, то многие возможности вашей версии вам будут малодоступны, поскольку в вашем хэлпе нет их описания. 2. Этот хэлп вам ничем не поможет именно в данной задаче. P.S. Предупреждая ваш напрашивающийся вопрос, сразу скажу: хэлпов на русском, которые вам нужны нет! -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
DRAGON88 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 20.11.2008 Репутация: нет Всего: нет |
А Неlp, который мне поможет в рамкоах данной задачи - это вот этот http://msdn.microsoft.com/en-us/library/wi...v=vs.85%29.aspx |
|||
|
||||
northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Кстати о птичках. Этот код уже встречался на этом форуме в 2009 году.
http://forum.vingrad.ru/topic-267040.html Новое = хорошо забытое старое ![]() -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
DRAGON88 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 20.11.2008 Репутация: нет Всего: нет |
Точно он. Я 'это код находил, правда в другом месте, не на этом форума (google помог), правда уже не помню где. |
|||
|
||||
northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 12 Всего: 20 |
Если это вопрос- то да. Поможет. Но поскольку речь идёт о весьма нетривиальном запросе к драйверу устройства, то этот хэлп вам поможет только начать разбираться с весьма нетривиальными вопросами, ответы на которые вам (возможно) не даст даже MSDN. И всё время вы будете получать ссылки на англоязычные документы! Это сообщение отредактировал(а) northener - 29.4.2012, 01:18 -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |