На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual Basic: Общие вопросы
Здесь обсуждаются вопросы по языку Visual Basic 1-6 (а так же по схожим языкам, как, например, PowerBASIC).
Вопросы по Visual Basic .NET (это который входит в состав Visual Studio 2002/2003/2005/2008+, для тех, кто не в курсе) обсуждаются в разделе .NET.

Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что Вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются. Студенты, вам сюда: ПОМОЩЬ СТУДЕНТАМ!
4. Используйте теги [ code=vba ] ...текст программы... [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Формулируйте свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной (и более) давности, без веских на то причин.

Полезные ссылки:
user posted image FAQ Сайта user posted image FAQ Раздела user posted image Кладовка user posted image Наши Исходники user posted image API-Guide user posted image Поиск по Разделу user posted image MSDN Library Online user posted image Google

Ваше мнение о модераторах: user posted image SCINER, user posted image B.V.
Модераторы: SCINER, B.V.
  
> Зашита
    например я записал на диск программу которую сделал на vb как мне сделать чтобы пользователи при копировании на свой винт прога не запускалась
      Private Declare Function GetVolumeSerialNumber Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long
      Private Function VolumeSerialNumber(ByVal RootPath As String) As String
      Dim VolLabel As String
      Dim VolSize As Long
      Dim Serial As Long
      Dim MaxLen As Long
      Dim Flags As Long
      Dim Name As String
      Dim NameSize As Long
      Dim s As String
      Dim ret as Boolean
      ret=GetVolumeSerialNumber(RootPath, VolLabel, VolSize, Serial, MaxLen, Flags, Name, NameSize)
      If ret Then
      s = Format(Hex(Serial), "00000000")
      VolumeSerialNumber = Left(s, 4) + "-" + Right(s, 4)
      Else
      VolumeSerialNumber = "0000-0000"
      End If
      End Function
      ' Предположим, что прога была установлена на диск C:
      Private Sub Form_Load()
      If VolumeSerialNumber(Left(CurDir, 3)) <> "0000-0001" Then End
      End Sub
        PS: Если кто не понял, прога будет смотреть серийный номер диска (а он уникален), и если номер не будет совпадать с её родным, она завершит свою работу немедленно. АПИ ф-ция GetVolumeSerialNumber получает серийный номер диска. Form_Load процедура загрузки главного окна(её можно заменить, например, на Sub Main).
          Наверное уместно будет вспомнить,
          что VolumeSerialNumber считывается из первого сектора.
          Где он записан как раз перед меткой тома.
          И вполне может быть перезаписан.
          От большинства пользователей это сработает,
          просто хотелось напомнить о слабостях этого метода.
            Тот, кто сможет изменить серйный номер своего диска, тот сможет написать крак на прогу, то есть уже ничего не спасёт!
              Это как сказать я - кряк не напишу однозначно
              а номер диска поменять - пожалуйста
              недавно видел прогу которая это делает
              Спорить не собираюсь - все верно, просто подумал - может лучше к дате биоса пришить програмку?
              Хотя она не уникальна.
              В общем нет в мире совершенства...
                а как узнать s\n CD
                  Каждый сидюк тоже имеетсвой уникалбный серийный томер, как и жёсткие, гибкие и хрен-знает-какие диски!
                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script execution time: 0,0352 ]   [ 16 queries used ]   [ Generated: 28.04.24, 16:19 GMT ]