Старый 24.10.2002, 15:13   #1   
Гость
 
Сообщений: n/a

Post Уникальная инфа о компе в Visual Basic

Кто знает как выцепить уникальную инфу о конкретном компе (мне это надо для защиты программы): серийник какой-нибудь или типа того...
  Ответить с цитированием
Старый 29.10.2002, 12:56   #2   
читатель
 
Аватар для qwe
 
Сообщений: 492
Регистрация: 27.12.2001

qwe вне форума Не в сети
Smile

Привет sasa!

посмотри, может подойдёт.

Функция GetVolumeInformation
Declare Function GetVolumeInformation 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

Платформа:

Windows 95/98: Поддерживается
Windows NT: Требуется Windows NT 3.1 или выше
Windows 2000: Поддерживается
Windows CE: Не поддерживается
GetVolumeInformation определяет серийный номер,метку диска и его файловую систему.Если Вы пытаетесь получить информацию относительно дисковода для гибких дискет, который не имеет гибкого диска или CD-ROM,в котором нет компакт-диска, система отображает окно с сообщением,что нужно вставить гибкий диск или компакт-диск. Чтобы предотвратить систему от отображения этого окна сообщений, вызовите функцию SetErrorMode с SEM_FAILCRITICALERRORS.В случае ошибки,функция возвращает 0(используйте GetLastError для получения кода ошибки),в успешном случае функция возвращает значение отличное от 0

Параметры
lpRootPathName
Корневой каталог диска,например "c:\" или "a:\"
lpVolumeNameBuffer
Буфер, который получает имя указанного диска
nVolumeNameSize
Длину буфера в символах. Этот параметр игнорируется, если буфер пуст
lpVolumeSerialNumber
Указатель на переменную, которая получает серийный номер диска. Этот параметр может быть НУЛЕВОЙ(NULL), если серийный номер не требуется.Windows 95/98: Если диск является сетевым- серийный номер не будет возвращен
lpMaximumComponentLength
Переменная, которая получает максимальную длину в символах компонента имени файла, поддержанного указанной файловой системой. Компонент имени файла - та часть имени файла между наклонными чертами влево. Значение, сохраненное в переменной, указанной lpMaximumComponentLength используется, чтобы указать, что длинные имена поддерживаются указанной файловой системой. Например, для файловой системы FAT, поддерживающей длинные имена, функция сохраняет значение 255, скорее чем предыдущие 8.3 . Длинные имена могут также поддерживаются
lpFileSystemFlags
Переменная, которая получает флажки, связанные с указанной файловой системой. Возможны любые комбинации следующих флажков; однако, FS_FILE_COMPRESSION и FS_VOL_IS_COMPRESSED взаимоисключающий: FS_CASE_IS_PRESERVED The file system preserves the case of file names when it places a name on disk. FS_CASE_SENSITIVE The file system supports case-sensitive file names. FS_UNICODE_STORED_ON_DISK The file system supports Unicode in file names as they appear on disk. FS_PERSISTENT_ACLS The file system preserves and enforces ACLs. For example, NTFS preserves and enforces ACLs, and FAT does not. FS_FILE_COMPRESSION The file system supports file-based compression. FS_VOL_IS_COMPRESSED The specified volume is a compressed volume; for example, a DoubleSpace volume. FILE_NAMED_STREAMS The file system supports named streams. FILE_SUPPORTS_ENCRYPTION The file system supports the Encrypted File System (EFS). FILE_SUPPORTS_OBJECT_IDS The file system supports object identifiers. FILE_SUPPORTS_REPARSE_POINTS The file system supports reparse points. FILE_SUPPORTS_SPARSE_FILES The file system supports sparse files. FILE_VOLUME_QUOTAS The file system supports disk quotas.
lpFileSystemNameBuffer
Указатель на буфер, который получает название файловой системы (типа FAT или NTFS).
nFileSystemNameSize
Определяет длину в символах буфера названий файловых систем. Этот параметр игнорируется, если буфер названий файловых систем не указан
Пример:


Dim Serial As Long, VName As String, FSName As String
VName = String$(255, Chr$(0))
FSName = String$(255, Chr$(0))
'получаем информацию о диске
GetVolumeInformation "C:\", VName, 255, Serial, 0, 0, FSName, 255
'Strip the extra chr$(0)'s
VName = Left$(VName, InStr(1, VName, Chr$(0)) - 1)
FSName = Left$(FSName, InStr(1, FSName, Chr$(0)) - 1)
Debug.Print "Имя диска "; VName
Debug.Print "Файловая система "; FSName
Debug.Print "Серийный номер диска "; Trim(Str$(Serial))

Сам я этой функцией не пользовался, но работать должна.

С уважением qwe.
  Ответить с цитированием
Старый 04.11.2002, 11:12   #3   
Модератор
 
Сообщений: 665
Регистрация: 09.01.2002

Kerish вне форума Не в сети
Unhappy

И это всё???????
Я могу вытащить абсолютно любую инфу о компе через Visual Basic - ЛЮБУЮ!!!
Даже производителя BIOS и Процессора.Производителя любого железа в твоем компе.Версии любых драйверов.Все о железе.О сети...Про всё!
  Ответить с цитированием
Старый 04.11.2002, 15:20   #4   
читатель
 
Аватар для qwe
 
Сообщений: 492
Регистрация: 27.12.2001

qwe вне форума Не в сети
Smile

Kerish: А оно тебе надо? ))
  Ответить с цитированием
Старый 04.11.2002, 16:22   #5   
Модератор
 
Сообщений: 665
Регистрация: 09.01.2002

Kerish вне форума Не в сети
Smile

Ну если только свою Si Soft Sandra делать...
  Ответить с цитированием
Поиск в теме: 


Опции темы

Быстрый переход:

  Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Support by DrIQ & Netwind