Форум программистов, компьютерный форум CyberForum.ru

Изменение mac адреса - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Обнаружение автомобилей на изображении http://www.cyberforum.ru/cpp/thread536683.html
Здравствуйте! Уже второй день копаюсь в инете пытаясь найти хоть какой нить алгоритм по распознаванию автомобилей на фотографии. Ничего внятного до сих пор не нашел. Задача такова: используя машину опорных векторов найти и выделить контур автомобиля на изображении. Программу реализовать на с++ или c#. Help me, please!
C++ Корректность Makefile Написал на Си программу, которая реализует следующую структуру данных - Сбалансированное Дерево - программа компилируется с использованием статической библиотеки libTree.a которая собирается из трёх объектных файлов, получаемых из трёх "сишных" файлов ForCreate.c, ForFind.c и ForDelete.c как несложно догадаться эта библиотека содержит функции для создания дерева, удаления каких-либо его элементов... http://www.cyberforum.ru/cpp/thread533929.html
Компилятор чудит C++
Что такое? Не могу понять почему компилятор ругается. Все эти модули есть в папке компилятора. http://s019.***********/i636/1203/c6/de15ed22d936.png
C++ Бинд клавиш. Как быть и на чём варить?
Всем доброго времени суток. Сам не мастак в программинге, а прога нужна позарез. Суть вот в чём, нужно сделать так, чтобы в окне программы можно было делать бинд клавишам, например, если зажимаешь комбинацию ctrl+alt+e, то появлялся заданный тобою текст в месте курсора. Подскажите с чего начать, что делать и на чём варить, нужен способ и алгоритм, творческую работу оставлю за собой.
C++ Вичисление минимальной площади C/C++ http://www.cyberforum.ru/cpp/thread529320.html
Задание: Написать программу, которая по размерам листов бляхи вычислит минимальную площадь которая нужна для размещение в магазине. Листы можно положить один на другой притом что бы можно было оборачивать верхний лист на 90 градусов то есть если лист с размером 5х4 то на верх него можно положить 4х4 но если лист 5х4 и лист 5х3 то один на другой уже не положишь это условие задачи. Данные...
C++ Для чего нужены параметры disable-rpath и disable-symvers при сборке? Подскажи пожалуйста, для чего нужен параметр disable-rpath и disable-symvers при сборке? Сообщения вынесены из темы Сборки MinGW(GCC-win32/win64) от niXman подробнее

Показать сообщение отдельно
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4248 / 2780 / 219
Регистрация: 12.12.2009
Сообщений: 7,109
Записей в блоге: 1
Завершенные тесты: 1
05.04.2012, 17:03     Изменение mac адреса
А ты гуглить пробовал? Нашел код по первой же ссылки. У нас запрещены ссылки на другие форумы, поэтому вот код, который нашел:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
 #include <iostream.h>
   #include <stdio.h>
   #include <windows.h>
   #include <setupapi.h>
   #include <devguid.h>
   #include <regstr.h>
   #include <stdlib.h>
   #include "string.h"
 
   unsigned long enableDisable = -1;
   char* newAddr;
 
   int main( int argc, char *argv[ ], char *envp[ ] )
   {
      if(argc > 2){
         enableDisable = atoi(argv[1]);
         newAddr = argv[2];
      }
      else{
         cout << "CHMAC - Change MAC address. Also sounds cool when pronounced as one word.\r\nUSAGE: chmac adapter address\r\nwhere adapter is the desired adapter number from the list below,\r\nand address is a MAC address in the format dd11223344f8 or RESET to reset\r\nto the default value. NOTE: A MAC address can only contain hexadecimals\r\n(0123456789ABCDEF). There is NO automatic checking!\r\nDisclaimer: This program is provided \"AS-IS\". Anything that may or may not\r\nhappen because of it is entirely the user's fault.\r\n\r\n";
      }
 
       HDEVINFO hDevInfo;
       SP_DEVINFO_DATA DeviceInfoData;
       SP_PROPCHANGE_PARAMS Param;
       DWORD i;
 
       // Create a HDEVINFO with all present devices.
       hDevInfo = SetupDiGetClassDevs(NULL,
           0, // Enumerator
           0,
           DIGCF_PRESENT | DIGCF_ALLCLASSES );
       
       if (hDevInfo == INVALID_HANDLE_VALUE)
       {
           return 1;
       }
       
       // Enumerate through all devices in Set.
       
       DeviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA);
       for (i=0;SetupDiEnumDeviceInfo(hDevInfo,i,
           &DeviceInfoData);i++)
       {
           DWORD DataT;
           LPTSTR buffer = NULL;
           DWORD buffersize = 0;
           
           unsigned long netguid = 1295444338;
 
           while (!SetupDiGetDeviceRegistryProperty(
               hDevInfo,
               &DeviceInfoData,
               SPDRP_DEVICEDESC,
               &DataT,
               (PBYTE)buffer,
               buffersize,
               &buffersize))
           {
               if (GetLastError() == 
                   ERROR_INSUFFICIENT_BUFFER)
               {
                   if (buffer) LocalFree(buffer);
                   buffer = (LPTSTR)LocalAlloc(LPTR,buffersize);
               }
               else
               {
                   break;
               }
           }
 
           if(DeviceInfoData.ClassGuid.Data1 == netguid && enableDisable == -1) cout << i << ": " << buffer << endl;
 
 
 
         if(i == enableDisable && DeviceInfoData.ClassGuid.Data1 == netguid){
            HKEY k = SetupDiOpenDevRegKey(hDevInfo, &DeviceInfoData, DICS_FLAG_GLOBAL, 0, DIREG_DRV, KEY_ALL_ACCESS);
            if(k == INVALID_HANDLE_VALUE){
               cout << "ERROR: Cannot open driver information for editing!" << endl;
               exit(1);
            }
            TCHAR regData[128];
            unsigned long regDataLen = sizeof(regData);
            if(RegQueryValueEx(k, "NetworkAddress", NULL, NULL, (unsigned char*)&regData, &regDataLen) == 0){
               //something exists; KILL IT!!!
               cout << "Previous value exists; deleting..." << endl;
               RegDeleteValue(k, "NetworkAddress");
            }
            if(stricmp((const char*)newAddr, "reset") != 0){
               if(RegSetValueEx(k, "NetworkAddress", 0, REG_SZ, (const unsigned char*)newAddr, strlen((const char*)newAddr)) != ERROR_SUCCESS){
                  cout << "ERROR: Could not set new MAC address!" << endl;
                  exit(1);
               }
            }
            else{
               cout << "MAC reset successful. Proceeding..." << endl;
            }
            cout << "Change successful. Rebooting adapter..." << endl;
            RegCloseKey(k);
            Param.ClassInstallHeader.cbSize = sizeof(Param.ClassInstallHeader);
            Param.ClassInstallHeader.InstallFunction = DIF_PROPERTYCHANGE;
            Param.HwProfile = 0;
            Param.Scope = DICS_FLAG_GLOBAL;
            //disable it:
            Param.StateChange = DICS_DISABLE;
            SetupDiSetClassInstallParams(hDevInfo, &DeviceInfoData, (SP_CLASSINSTALL_HEADER *)&Param, sizeof(Param));
            SetupDiCallClassInstaller(DIF_PROPERTYCHANGE, hDevInfo, &DeviceInfoData);
            //reenable it:
            Param.StateChange = DICS_ENABLE;
            SetupDiSetClassInstallParams(hDevInfo, &DeviceInfoData, (SP_CLASSINSTALL_HEADER *)&Param, sizeof(Param));
            SetupDiCallClassInstaller(DIF_PROPERTYCHANGE, hDevInfo, &DeviceInfoData);
            cout << "CHMAC complete." << endl;
         }
 
 
           if (buffer) LocalFree(buffer);
       }
       
       
       if ( GetLastError()!=NO_ERROR &&
            GetLastError()!=ERROR_NO_MORE_ITEMS )
       {
           return 1;
       }
       
       SetupDiDestroyDeviceInfoList(hDevInfo);
       
       return 0;
   }
особо не вникал, работоспособность не проверял, но автор утверждает, что код рабочий и меняет MAC адрес.
 
Текущее время: 04:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru