powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как узнать, что воткнули флешку?
4 сообщений из 4, страница 1 из 1
Как узнать, что воткнули флешку?
    #34702864
WEB_bobby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программа должна обнаруживать подключение флеш-карты памяти, скидывать оттуда определенные файлы и копировать туда некторые файлы по заданному сценарию. Все понятно кроме одного, как обнаружить момент подключения флешки и как узнать по каким именем диска она встала?
...
Рейтинг: 0 / 0
Как узнать, что воткнули флешку?
    #34702889
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
начинай плясать от RegisterDeviceNotification()
...
Рейтинг: 0 / 0
Как узнать, что воткнули флешку?
    #34702952
uyga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Когда мне надо было в одном из проектов находить флешку, я делал так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
AnsiString find_usbflash() {

   TCHAR buf[ 100 ];
   int i;
   DWORD len = GetLogicalDriveStrings(sizeof(buf)/sizeof(TCHAR),buf);

   for(TCHAR* s=buf; *s; s+=_tcslen(s)+ 1 )
   {
      LPCTSTR sDrivePath = s;
      UINT uDriveType = GetDriveType(sDrivePath);
      if (uDriveType == DRIVE_REMOVABLE) {
         // В системе может быть более одной флешки
         // Если таких несколько, функция вернет первую попавшуюся.
         return sDrivePath;
      }
   }
}

Функция возвращает букву, соответствующую флешке.
Поскольку в системе может быть несколько флешек, я рекомендую вам ввести какой-нибудь идентификатор, однозначно показывающий, что найденный диск - именно тот, что вам нужен. Например сделать метку тома "MY_COOL_DISK" или хранить на флешке скрытый файл с особым названием...
...
Рейтинг: 0 / 0
Как узнать, что воткнули флешку?
    #34903947
Фотография vah
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uygaКогда мне надо было в одном из проектов находить флешку, я делал так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
AnsiString find_usbflash() {

   TCHAR buf[ 100 ];
   int i;
   DWORD len = GetLogicalDriveStrings(sizeof(buf)/sizeof(TCHAR),buf);

   for(TCHAR* s=buf; *s; s+=_tcslen(s)+ 1 )
   {
      LPCTSTR sDrivePath = s;
      UINT uDriveType = GetDriveType(sDrivePath);
      if (uDriveType == DRIVE_REMOVABLE) {
         // В системе может быть более одной флешки
         // Если таких несколько, функция вернет первую попавшуюся.
         return sDrivePath;
      }
   }
}

Функция возвращает букву, соответствующую флешке.
Поскольку в системе может быть несколько флешек, я рекомендую вам ввести какой-нибудь идентификатор, однозначно показывающий, что найденный диск - именно тот, что вам нужен. Например сделать метку тома "MY_COOL_DISK" или хранить на флешке скрытый файл с особым названием...


У меня ругается на это _tcslen,
Код: plaintext
1.
2.
[C++ Error] Unit1.cpp( 39 ): E2268 Call to undefined function '_tcslen'
[C++ Error] Unit1.cpp( 47 ): E2467 '_fastcall TForm1::BitBtn2Click(TObject *)' cannot return a value
[C++ Warning] Unit1.cpp( 52 ): W8004 'len' is assigned a value that is never used
что с этим можно сделать?
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как узнать, что воткнули флешку?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]