Привязка софта к железу
#1
Отправлено 11 Декабрь 2009 - 14:06
Борис А. Чертенко aka Borka.
#2
Отправлено 11 Декабрь 2009 - 14:16
На Васике пойдет?Есть задача привязки софта к железу, на которое этот софт проинсталлен. Для этого планируется привязываться к серийнику винта. Как это сделать в ДОСе, я знаю. Кто-нить подскажет, как это можно сделать в винде? Буду благодарен.
#3
Отправлено 11 Декабрь 2009 - 14:36
http://rapidshare.com/files/319354663/HardwareID.rar.html
там ещё нет распространённых методов доступа к биосу материнки и видеокарты, если это надо - пиши в личку...
готов испытать вашу привязку "на прочность"
#4
Отправлено 11 Декабрь 2009 - 14:37
#5
Отправлено 11 Декабрь 2009 - 14:38
забыл ещё про cpuid:
http://www.daniweb.com/forums/thread112968.html
Разве CPUID не может быть отключен?
Личный сайт по Энкодерам - http://vmartyanov.ru/
#6
Отправлено 11 Декабрь 2009 - 14:40
#7
Отправлено 11 Декабрь 2009 - 14:41
Public 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
Это серийник раздела. К серийнику винта отношения не имеет.
Личный сайт по Энкодерам - http://vmartyanov.ru/
#8
Отправлено 11 Декабрь 2009 - 14:41
Public 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
Это серийник раздела. К серийнику винта отношения не имеет.
Ааааа,а через wmi ?
#9
Отправлено 11 Декабрь 2009 - 14:42
Public 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
Это серийник раздела. К серийнику винта отношения не имеет.
Ааааа,а через wmi ?
Может и прокатит. Я знаю только ATA-команду, которая нужные данные вернет :-)
Личный сайт по Энкодерам - http://vmartyanov.ru/
#10
Отправлено 11 Декабрь 2009 - 14:43
#11
Отправлено 11 Декабрь 2009 - 14:52
Мне концепт нужен - каким API это можно сделать.На Васике пойдет?Есть задача привязки софта к железу, на которое этот софт проинсталлен. Для этого планируется привязываться к серийнику винта. Как это сделать в ДОСе, я знаю. Кто-нить подскажет, как это можно сделать в винде? Буду благодарен.
Борис А. Чертенко aka Borka.
#12
Отправлено 11 Декабрь 2009 - 14:53
Спасибо, буду посмотреть.Исходник (с/с++), собранный из разных уголков инета.
http://rapidshare.com/files/319354663/HardwareID.rar.html
там ещё нет распространённых методов доступа к биосу материнки и видеокарты, если это надо - пиши в личку...
Спасибо еще раз, пока рано об этом говорить.готов испытать вашу привязку "на прочность"
Борис А. Чертенко aka Borka.
#13
Отправлено 11 Декабрь 2009 - 14:53
Может и прокатит. Я знаю только ATA-команду, которая нужные данные вернет :-)
On Error Resume Next strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_PhysicalMedia",,48) For Each objItem in colItems WScript.Echo "SerialNumber: " & objItem.SerialNumber NextПравда вроде бы работает не всегда и не везде...
#14
Отправлено 11 Декабрь 2009 - 14:54
Я тоже знаю. Из ДОСи проблем нет.Может и прокатит. Я знаю только ATA-команду, которая нужные данные вернет :-)Ааааа,а через wmi ?Это серийник раздела. К серийнику винта отношения не имеет.Public 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
Борис А. Чертенко aka Borka.
#15
Отправлено 11 Декабрь 2009 - 14:56
Насколько я знаю, winmgmts нужно ставить отдельно?Может и прокатит. Я знаю только ATA-команду, которая нужные данные вернет :-)
On Error Resume Next strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_PhysicalMedia",,48) For Each objItem in colItems WScript.Echo "SerialNumber: " & objItem.SerialNumber Next
Борис А. Чертенко aka Borka.
#16
Отправлено 11 Декабрь 2009 - 14:58
Не знаю, я сам вроде не ставил, но серийный номер возвращается.Насколько я знаю, winmgmts нужно ставить отдельно?
Но вроде бы в некоторых случаях WMI может и не вернуть ничего...
#17
Отправлено 11 Декабрь 2009 - 15:03
На Винтукее скрипт не отработал, но все равно спасибо.Не знаю, я сам вроде не ставил, но серийный номер возвращается.Насколько я знаю, winmgmts нужно ставить отдельно?
Но вроде бы в некоторых случаях WMI может и не вернуть ничего...
Борис А. Чертенко aka Borka.
#19
Отправлено 11 Декабрь 2009 - 19:02
Типа хохма, да?Вы ещё с правами ограниченного юзера проверьте.
Борис А. Чертенко aka Borka.
#20
Отправлено 11 Декабрь 2009 - 20:25
Читают тему: 0
0 пользователей, 0 гостей, 0 скрытых