На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual C++ / MFC / WTL (далее Раздела)
1) На Раздел распространяются все Правила Форума.
2) Перед тем, как создать новый топик, убедитесь, что Вы читали Правила создания тем в Разделе.
3) Вопросы, не связанные с программированием (настройки MS Visual Studio, книги, библиотеки и т.д.),
обсуждаются в разделе C/C++: Прочее
4) Вопросы разработки .NET (Windows Form, C++/CLI и т.п.) приложений на Visual C++/C# обсуждаются в разделе .NET.
5) Нарушение Правил может повлечь наказание со стороны модераторов.

Полезные ссылки:
user posted image FAQ Раздела user posted image Обновления для FAQ Раздела user posted image Поиск по Разделу user posted image MSDN Library Online
Модераторы: ElcnU
  
> Как узнать номер хард диска
    Как средствами Buildera(Delphi) узнать серийный номер хард диска (железяки).
      Надо аккуратненько снять кожух системного блока, открутить жесткий диск и посмотреть серийный номер на его корпусе...
      А про билдер забыл! Ну а на нем можно написать программу корректного завершения работы перед процессом с помощью функции.

      ::GetVolumeInformation()

      Только будте особенно осторожны, тк ее 4ый параметр форматирует интернет... иногда!

      P.S. Плющит...
        Тысячу раз говорили, что GetVolumeInformation возвращает инфу о томе, а не о диске.
        2Frostbitten: очень остороумный ответ.
        Для дисков IDE можно использовать SMART API, т.е. не самих S.M.A.R.T. параметров, а только IDENTIFY.
        Для SCSI нужно подумать, но, если хочешь, то все лежит в registry после установки драйверов нового устройства.
          Вообще-то есть WMI класс такой Win32_DiskDrive и у него есть поле DeviceID.
          Но я этого никогда не юзал, поэтому сказать ничего не могу. Подробностьи смтори http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/r_32hard2_2wv9.asp
            Смешно видеть, как народ устремленно каждый месяц наступает на одни и те же грабли!

            2 frostbitten: Девочки из второго класса смеялись бы над двоим юмором! Однозначно!
              Объясните мне, тупице, почему вопрос так актуален? ???
                патамуШта народ изо всех сил ищет способы привязать свои проги к компам пользователей ...
                  Если можно пободробнее насчет SMART API или других вариантов (для IDE), вообще я где-то видел рассмотрение этой функции, возможно на этом форуме, но никак не могу найти. Мне нужно прогу привязать к диску(железяке), т.е. поставить защиту от копирования, может кто знает другие варианты, но я считаю вариант привязки к харду самым подходящим для моей ситуации.
                    2rivitna:
                    Чем будут заниматься девочки во втором классе мне все равно - им же матерями становиться  (в будущем) - не мне :). Ответь только на вопрос: какая разница между номером из SMART, номером тома, ID пня, MAC адресом и чем там еще тужиться принято? Не, правда, какая?

                    Зачем же тогда усложнять жизнь программисту (кракеру-то по барабану)? Пусть пользует GetVolumeInformation() и спит спокойно, в глубине души подозревая о том, какую же он все-таки мощную систему защиты сделал...

                    Друзья! Будте милостивы! Не лишайте человека сна! Потому что ломали, ломаем и будем ламать.

                    P.S. Только вот меня обидели! Теперь буду ночи не спать все думать - куда мы катимся, если второклашки над такими шутками смеются... да еще девочки!

                    P.P.S.
                    Ох, заплюсуют...
                    Сообщение отредактировано: Frostbitten -
                      Народ!!! Кончай демагогию пароть. У меня конкретный вопрос и конкретная задача. И я думаю никого не должно волновать для чего мне это нужно (для защиты своей проги или написания своего SysInfo).
                      Если "слабо", то так и нужно отвечать. А нести всякую х...ю совершенно не нужно, для этого есть другие форумы.
                       p.s. Извиняюсь за грубость и заранее благодарю.
                        2Frostbitten:
                        Крякеру и вправду по-барабану. Только серийный номер тома меняется при форматировании, параметр из SMART может скакать прямо во время работы, а вот 516(кажеться) байт IDE IDENTIFY меняются с заменой жесткого диска.
                        Offtopic starts here-------
                        А философия типа "вот тебе говно, думай, что это то, что ты просил, потому, что ты такой тупица, я такой крутой" мне не нравиться, не корректно, попробуй применить на себе.

                        2All:
                        Анти-оффтопик:
                        http://support.microsoft.com/default.aspx?scid=kb;EN-US;q208048

                        Это линк на пример использования smart api, но, если я не ошибаюсь, в примере был баг или неточность, какая - убейте не помню. Внизу страницы есть очень ценные линки (для кого-то, а для кого-то - нет, потому, что он и так все сломает, sorry - просто ненанвижу такой вот надменный тон).
                          2 sergey_pank:
                          Сразу бы сказал, что ты натура утонченная и ранимая, а нам все хиханьки-хаханьки...

                          Смотри мою программку DevId32:
                          http://www.sources.ru/asm/devid32.shtml
                          Она на ASM'е, но если не тормоз, разберешься!

                          2 Frostbitten:
                          Объясняю разницу:
                          Серийный номер процессора определяется только для Pentium III и выше, что не все еще могут себе позволить. С MAC'ом не все так просто, тем более не везде есть сетевая карточка, так что и это не катит. Насчет же метки тома: привязываться к ней, быть уж совершенным лохом. По поводу защиты от взлома я согласен, ломается все, и городить лишний раз не стоит. Но как говорил всеми нами любимый президент ВВП:
                          "Всех женщин не перецелуешь, но стремится к этому надо".
                          Вот пусть он и стремится, по крайней мере он вырастет в профессиональном смысле.

                          Пожалуй, с девочками-второклассницами я переборщил... Меня умилил твой ход мысли про их предстоящее материнство. Это сильно!
                          Спи спокойно! Остряки-самоучки нам нужны и их надо беречь!

                          PS:
                          Кстати, тут один деятель заявил про команды SMART, мягко говоря, это наглые инсинуации: эти самые команды SMART (через DeviceIoControl) работают только в NT, потому что handle физического диска можно получить с помощью CreateFile только в NT.
                            2rivitna:
                            Деятель - это я? :D
                            Ну скачай себе пример и глянь на функцию OpenSMART.
                            Потом извенись за "инсинуации", вышли пиво и начинай читать доки, а потом авторитетно вводи людей в заблужнение. ;)

                            P.S. Подсказка для win9x нужно поставить драйвер smartvsd, который при копировании в \windows\system начинает эти запросы обслуживать.
                              2 bin:
                              О-ла-ла-ла!
                              Обидели мышку - нагадили в норку! :)

                              Когда я писал программу обнаружения устройств IDE/ATAPI, прочитал много документации (но не прочь еще почитать, за что мне не стыдно). Предлагаемый тобой из MSDN пример - самый кривой и противоречит самому MSDN. Я его частично реализовал в своей программке DevId32 касающейся работы в NT (ссылка выше). Итак, вопреки документации для NT команды SMART через DeviceIoControl работают только для HDD0  :(
                              Посему предлагаю кроме бездумного чтения документации опробовать сей пример! Это в качестве лирического отступления.

                              Итак, ближе к телу:
                              Поддержка команд SMART с помощью smartvsd очень спорна и ограничена (при желании могу уточнить), хотя я частично согласен с замечанием по поводу smartvsd. Но и от своих слов не отказываюсь.
                              Эта поддержка не интегрирована в Win9x  в отличие от NT. То есть ты можешь сам написать драйвер, придумать для него команды (например, совпадающие со SMART). Подключиться с помощью CreateFile и работать через DeviceIoControl. Это и реализовано с помощью smartvsd для хоть какой-то поддержки как в NT, которой изначально не было.
                              Работа с smartvsd - это криво и ненадежно, а также неприятна сама зависимость твоей программы от сомнительного драйвера smartvsd. Самый оптимальный и эффективный способ под Win9x - самостоятельно через Ring0. Кстати, smartvsd это и пытается реализовать.

                              PS: Так что, друг сердешный, извЕни меня за невежество. Пиво присылать не буду, боюсь как бы твои щечки не треснули. Но тем не менее выпить с тобой не против. Что-то вразумительное ты все-таки изложил.  :)
                              Сообщение отредактировано: rivitna -
                                PPS:
                                Забыл добавить, что драйвер smartvsd есть не везде в ОС Win9x, что несколько может огорчить при написании программы!
                                Сообщение отредактировано: rivitna -
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0423 ]   [ 16 queries used ]   [ Generated: 5.05.24, 14:04 GMT ]