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

Работа с USB устройствами Visual Studio c++ - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Исключить из массива А(n) первый отрицательный элемент http://www.cyberforum.ru/cpp-beginners/thread1172289.html
Вообщем возник вопрос, как составить программу для обработки одномерного массива которая исключает из массива А1...An первый отрицательный элемент. И к ней добавить программу которая определяет...
C++ Двоичное представление символов Проблема такая: я прогаю скремблер, и проблема в том, что буквы при переводе дают семизначное двоичное число, а символы - шестизначное. И поэтому, когда возникает необходимость дописать в конец нули,... http://www.cyberforum.ru/cpp-beginners/thread1172288.html
вычисление определенного интеграла методом трапеции C++
Ребята, помогите!!! Нужна программа со всеми объяснениями, умоляю!!! Вообще никаких мыслей в голове(((
C++ Вычислить сумму рядом с точностью a
Подскажите как составить программу используя оператор цикла do while для вычисления суммы ряда с точностью а. \sum_{n=0}^{\inf }(-1^n)/ ((4^n)*(2n+1)), a=0,001
C++ ДИНАМИЧЕСКИЕ СТРУКТУРЫ ДАННЫХ http://www.cyberforum.ru/cpp-beginners/thread1172271.html
нужна помощь в нескольких задачах!
C++ Алгоритм, орграф Приветствую! Дана следующая задача : В игре на орграфе два игрока поочередно накрывают белыми (соответственно, черными) фишками вершины орграфа. Игрок при своем ходе может накрыть фишкой любую из... подробнее

Показать сообщение отдельно
Wuotan
0 / 0 / 0
Регистрация: 09.03.2014
Сообщений: 8
12.05.2014, 02:16  [ТС]
WDK 8.1, который там предлагается, требует Visual Studio 2013, а у меня 2010. Ниже версия 7 для xp.
В общем на просторах я таки нашел рабочую альтернативу.
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
130
131
132
133
134
135
136
137
138
#define UNICODE
#define _UNICODE
#include <windows.h>
#include <stdio.h>
#include <locale.h>
#include <conio.h>
//#include <WinIoCtl.h>
 
WCHAR* GetElem(WCHAR *ptr,WCHAR delim,WCHAR *buf)
{
   WCHAR *ptr1=NULL;
   ptr1=wcschr(ptr,delim);
   if (ptr1)
   {
      wcsncpy(buf,ptr,(int)(ptr1-ptr));
      buf[(int)(ptr1-ptr)]=0;
      return (ptr1+1);
   }
   else
   {
      wcscpy(buf,ptr);
      return NULL;
   }
}
 
//Входные данные:
// drive_letter - буква диска
void PrintFlashDriveInfo(WCHAR drive_letter)
{
   HKEY hk=NULL;
   LONG Ret=0;
   HANDLE hdrive=INVALID_HANDLE_VALUE;
   DWORD data_size,dtype;
   WCHAR *data=NULL,*buf1=NULL,*buf2=NULL;
   WCHAR *ptr1_1=NULL,*ptr1_2=NULL,*ptr2_1=NULL,*ptr2_2=NULL;
   WCHAR dos_link[50];
   WCHAR drive_name2[20];
 
   __try
   {
      //проверяем существует ли диск в системе
      wsprintf(drive_name2,L"\\\\.\\%c:",drive_letter);
      hdrive = CreateFileW(drive_name2,0, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);
      if (hdrive==INVALID_HANDLE_VALUE)
      {
         wprintf(L"Ошибка PrintFlashDriveInfo: Ошибка CreateFile: %u\n\n",GetLastError());
         __leave;
      }
      CloseHandle(hdrive);
 
      Ret = RegOpenKeyExW(HKEY_LOCAL_MACHINE,L"SYSTEM\\MountedDevices",0,KEY_READ,&hk);
      if (Ret!=ERROR_SUCCESS)
      {
         wprintf(L"Ошибка PrintFlashDriveInfo: Ошибка RegOpenKeyEx: %u\n\n",Ret);
         __leave;
      }
 
      wsprintf(dos_link,L"\\DosDevices\\%c:",drive_letter);
      Ret=RegQueryValueExW(hk,dos_link,NULL,&dtype,NULL,&data_size);
      if (Ret==ERROR_SUCCESS)
      {
         data=(WCHAR *)malloc(data_size+2);
         buf1=(WCHAR *)malloc(data_size+2);
         buf2=(WCHAR *)malloc(data_size+2);
         if (data==NULL||buf1==NULL||buf2==NULL)
         {
            wprintf(L"Ошибка PrintFlashDriveInfo: Ошибка malloc.\n\n");
            __leave;
         }
         memset(data,0,data_size+2);
 
         Ret=RegQueryValueExW(hk,dos_link,NULL,&dtype,(LPBYTE)data,&data_size);
         if (Ret!=ERROR_SUCCESS)
         {
            wprintf(L"Ошибка PrintFlashDriveInfo: Ошибка RegQueryValueEx: %u\n\n",Ret);
            __leave;
         }
         if(wcsstr(data,L"USBSTOR")!=NULL)
         {
            wprintf(L"Данные флеш-диска %c:\n",drive_letter);
            ptr1_1=GetElem(data,L'#',buf1);
            if (ptr1_1)
            {
               ptr1_2=GetElem(ptr1_1,L'#',buf1);
               ptr1_1=buf1;
               do
               {
                  ptr2_2=GetElem(ptr1_1,L'&',buf2);
                  if (wcsstr(buf2,L"Ven_"))
                     wprintf(L"Производитель: %s\n",buf2+4);
                  else if (wcsstr(buf2,L"Prod_"))
                     wprintf(L"Название продукта: %s\n",buf2+5);
                  ptr1_1=ptr2_2;
               } while (ptr2_2);
 
               ptr1_1=GetElem(ptr1_2,L'#',buf1);
               ptr1_1=buf1;
               do
               {
                  ptr2_2=GetElem(ptr1_1,L'&',buf2);
                  if (wcslen(buf2)>3)
                  {
                     wprintf(L"Серийный номер: %s\n",buf2);
                     break;
                  }
                  ptr1_1=ptr2_2;
               } while (ptr2_2);
            }
         }//if USBSTOR
         else
            wprintf(L"Диск %c: НЕ является флешкой\n",drive_letter);
      }
      else
         wprintf(L"Ошибка PrintFlashDriveInfo: Ошибка RegQueryValueEx: %u\n",Ret);
 
      wprintf(L"\n");
   }
   __finally
   {
      if (data!=NULL) free(data);
      if (buf1!=NULL) free(buf1);
      if (buf2!=NULL) free(buf2);
      if (hk!=NULL) RegCloseKey(hk);
   }
}
 
 
int wmain(int argc, WCHAR* argv[])
{
   setlocale(LC_ALL,"Russian");
 
   for (char letter='A';letter<='Z'; letter++){
       PrintFlashDriveInfo(letter);
   }
   wprintf(L"Нажмите любую клавишу...");
   _getch();
   return 0;
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru