Страница: 1 |
Вопрос: Mac-adress? | Добавлено: 20.03.06 10:56 |
Автор вопроса: ![]() |
Помогите написать программку на VB для извлечения Mac-adress из текущего компа и занесения его в ячейку EXCEL. |
Ответы | Всего ответов: 12 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() Вопросов: 0 Ответов: 1876 ![]() |
Профиль | Цитата | #1 | Добавлено: 20.03.06 11:42 |
Если их несколько, что будешь делать? |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 3 |
Профиль | Цитата | #2 | Добавлено: 20.03.06 12:39 |
Вообще говоря я в компе чайник, а нужно мне какой-нибудь уникальный номер с компа клиента, чтобы он не мог передать мою программу в екселе кому-нибудь другому без моего ведома. Может быть лучше тогда использовать другой какой-нибудь номер? Вообще какие уникальные коды или адреса, или номера есть у компа, которые можно извлекать с помощью визуалбейсика? |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() Вопросов: 11 Ответов: 160 |
Web-сайт: Профиль | Цитата | #3 | Добавлено: 20.03.06 14:06 |
Сделай запись в реестре при установке и проверяй её. |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() Вопросов: 0 Ответов: 1876 ![]() |
Профиль | Цитата | #4 | Добавлено: 20.03.06 16:55 |
Вообще говоря я в компе чайник, а нужно мне какой-нибудь уникальный номер с компа клиента, чтобы он не мог передать мою программу в екселе кому-нибудь другому без моего ведома.
Это изначально неосуществимо. Никакой код на VBA не может помешать ничего делать. Ибо его запуск может запрещаться пользователем. RTFM. Сделай запись в реестре при установке и проверяй её.
Хотя бы умозрительно ты прокручивал эту схему в голове? Сделай это, и ты увидишь, что в результате программа будет устанавливаться на любом компьютере. |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 176176951 Вопросов: 14 Ответов: 655 |
Профиль | Цитата | #5 | Добавлено: 20.03.06 17:42 |
http://www.microsoft.com/Rus/Msdn/Activ/MSVB/Archive/WindowsAPI/Other/319.mspx |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 373-509-101 Вопросов: 56 Ответов: 330 |
Профиль | Цитата | #6 | Добавлено: 20.03.06 18:02 |
Если я тебя правильно понял, тебе поможет этот код. Кроме Mac-adress’а там много чаво… Нужно в ссылках подключить библиотеку Microsoft WMI Scripting V1.2 Library.
Option Explicit
Dim objComp As Object Private Sub Command1_Click() Dim sNull As String Dim objProp As SWbemProperty Dim objProp_2 As SWbemProperty Dim objSet As SWbemObjectSet Dim objSet_2 As SWbemObjectSet Dim Obj As SWbemObject Dim Obj_2 As SWbemObject On Error Resume Next Set objSet = objComp.InstancesOf("Win32_NetworkAdapter" ![]() For Each Obj In objSet List1.AddItem "**********************************************" For Each objProp In Obj.Properties_ With objProp If .Name = "MACAddress" Then sNull = .Value If Len(sNull) > 0 Then List1.AddItem .Name & " - " & .Value Set objSet_2 = objComp.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE MACAddress = '" & .Value & "'" ![]() For Each Obj_2 In objSet_2 For Each objProp_2 In Obj_2.Properties_ If objProp_2.Name = "IPAddress" Then sNull = "" sNull = objProp_2.Value If Len(sNull) > 0 Then List1.AddItem objProp_2.Name & " - " & objProp_2.Value End If Next Next End If ElseIf .Name = "NetConnectionStatus" Then Select Case .Value Case 0: List1.AddItem "NetConnectionStatus - Disconnected" Case 1: List1.AddItem "NetConnectionStatus - Connecting" Case 2: List1.AddItem "NetConnectionStatus - Connected" Case 3: List1.AddItem "NetConnectionStatus - Disconnecting" Case 4: List1.AddItem "NetConnectionStatus - Hardware not present" Case 5: List1.AddItem "NetConnectionStatus - Hardware disabled" Case 6: List1.AddItem "NetConnectionStatus - Hardware malfunction" Case 7: List1.AddItem "NetConnectionStatus - Media disconnected" Case 8: List1.AddItem "NetConnectionStatus - Authenticating" Case 9: List1.AddItem "NetConnectionStatus - Authentication succeeded" Case 10: List1.AddItem "NetConnectionStatus - Authentication failed" End Select ElseIf .Name = "Availability" Then Select Case .Value Case 1: List1.AddItem "Availability - Other" Case 2: List1.AddItem "Availability - Unknown" Case 3: List1.AddItem "Availability - Running/Full Power" Case 4: List1.AddItem "Availability - Warning" Case 5: List1.AddItem "Availability - In Test" Case 6: List1.AddItem "Availability - Not Applicable" Case 7: List1.AddItem "Availability - Power Off" Case 8: List1.AddItem "Availability - Off Line" Case 9: List1.AddItem "Availability - Off Duty" Case 10: List1.AddItem "Availability - Degraded" Case 11: List1.AddItem "Availability - Not Installed" Case 12: List1.AddItem "Availability - Install Error" Case 13: List1.AddItem "Availability - Power Save - Unknown" Case 14: List1.AddItem "Availability - Power Save - Low Power Mode" Case 15: List1.AddItem "Availability - Power Save - Standby" Case 16: List1.AddItem "Availability - Power Cycle" Case 17: List1.AddItem "Availability - Power Save - Warning" End Select ElseIf Len(.Value) > 0 Then List1.AddItem .Name & " - " & .Value End If End With Next Next End Sub Private Sub Form_Load() Set objComp = GetObject("winmgmts:{impersonationLevel=impersonate}" ![]() End Sub |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 3 |
Профиль | Цитата | #7 | Добавлено: 20.03.06 19:05 |
только я не знаю как и куда его вставить, мне в итоге надо например чтобы в ячейку A1 вставлялся бы уникальный код конкретного компа
далее у меня мысль такая: в моей программе которую я рассылаю таким же чайникам в компе как и я, в одном из своих макросов я делаю каждый раз запрос на код клиенского компа и если он не совподает то мой макрос не вычислит результат, т.е. если эту прогу запускать на другом компе то она не должна считать так как компа не совпадет, мой файл екселя под паролям и клиент простой не сможет его раскрыть чтобы посмотреть внутреннусти макроса и тем более не сможет поменять код своего компа. спецы помогите, как вставить этот или другой блок в существующий макрос? |
Номер ответа: 8 Автор ответа: ![]() ![]() ICQ: 234458121 Вопросов: 38 Ответов: 107 |
Профиль | Цитата | #8 | Добавлено: 20.03.06 21:04 |
А может проще определять текущего пользователя и ставить соответствие. Тогда от компа вообще зависеть не будешь, только от того, кто авторизовался в виндусах. |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 60 Ответов: 808 |
Профиль | Цитата | #9 | Добавлено: 20.03.06 21:23 |
Mihalych, если еще есть что-то в этом роде? |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() Вопросов: 11 Ответов: 160 |
Web-сайт: Профиль | Цитата | #10 | Добавлено: 20.03.06 22:22 |
Сделай запись в реестре при установке и проверяй её.
Хотя бы умозрительно ты прокручивал эту схему в голове? Сделай это, и ты увидишь, что в результате программа будет устанавливаться на любом компьютере Имелось ввиду сделать запись ручками, а проверять её при запуске программы. Если автор топика задаёт подобные вопросы,то такой защиты хватит. |
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 3 |
Профиль | Цитата | #11 | Добавлено: 20.03.06 23:44 |
http://www.vbarchiv.net/archiv/tipp_details.php?pid=576
здесь как раз то что я искал, однако вот вопрос еще: теперь эта функция успешно определяет адрес на моем компе, но если файл скопировать на другой комп, то функция не извлекает адрес нового компа, а либо остается мой адрес, либо только нули, почему не пойму? суть защиты заключается в том что программу можно копировать и это не страшно, просто во второй части которую я высылаю ежедневно зашит адрес клиента и если он запустит файл на другом компе то программа не выдаст информации, а файл защищен от изменений, для чайника это не преодолимая преграда, вряд ли кто догадается менять мас-адрес |
Номер ответа: 12 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client Вопросов: 236 Ответов: 8362 |
Профиль | Цитата | #12 | Добавлено: 21.03.06 01:36 |
тебе же говорят что макрос не обязательно выполнится. Офис запрос
делает, типа разрешать или не разрешить макрсы... к тому же и сам макрос можно подредактировать итп... так что делать какую либо защиту в VBA практически невозможно. Есди уже на то пошло, то ненадо углуюблсятся в какие-то уникальные коды, которые получают через WMI которая ещё не у всех включена итп ![]() проверить дату последнего изминения explorer.exe и по простенькому алгоритму наваять типа уникальный код... |
Страница: 1 |
|