Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2010, 03:14   #1
SoftKoc
Форумчанин
 
Аватар для SoftKoc
 
Регистрация: 07.11.2009
Сообщений: 218
Сообщение Получить буквы существующих дисков

Здравствуйте!

Мне нужно отображать в ListBox буквы существующих дисков.
Например C: , D:
Как это реализовать?
Заранее очень благодарен.
Я бы изменил мир, но Бог не дает исходников...
Если помог, нажми на весы и поставь плюс - в знак благодарности
SoftKoc вне форума Ответить с цитированием
Старый 19.11.2010, 08:24   #2
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

Есть ядреная смесь Си и асма заполнения комбобокса, для листбокса должно быть аналогично:
Код:
//Функция диалогового окна
LRESULT CALLBACK dlgproc(HWND hwnd, UINT uMessage, WPARAM wparam, LPARAM lparam)
{
switch(uMessage)
	{
   MEMORYSTATUS ms;
   DWORD SectorsPerCluster,BytesPerSector,NumberOfFreeClusters,TotalNumberOfClusters,total,free,zan;
   char drv[4],temp[128];
   case WM_INITDIALOG:
   	{
//заполняем комбобокс дисками компьютера
asm
	{
//заполняем drv
   lea ebx,drv
   mov [ebx+1], byte ptr':'
   mov [ebx+2], byte ptr'\'
   mov [ebx+3], byte ptr 0
	push DRIVE	//идентификатор комбобокса
   push dword ptr [hwnd]//хэндл диалога
   call GetDlgItem	//получаем хэндл комбобокса
   mov hcombo,eax
   call GetLogicalDrives //получаем маску дисков
   xor ecx,ecx
   mov ebx,eax
   m1:				//по маске заполняем комбо бокс
   shr ebx,1		//сдвигаем маску на 1
   jnc m2
   mov al,cl		//и если бит установлен
   add al,'A'		//то добавляем этот диск
   mov drv,al
   lea eax,drv
   push ecx
   push eax
   push 0
   push CB_ADDSTRING
   push dword ptr [hcombo]
   call SendMessage	//добавляем строку в комбо
   pop ecx
      m2:
   inc ecx				//проверяем остальные диски
   cmp ecx,26
   jnz m1

   }
...
//Функция проверки готовности диска, нужна для дискет и компакт-дисков
      BOOL IsDriveReady(char drive)
      {
      BOOL res;
      char path[4];
      asm
      	{
//заполняем path
	mov al,drive
   lea ebx,path
   mov [ebx],al
   mov [ebx+1], byte ptr':'
   mov [ebx+2], byte ptr'\'
   mov [ebx+3], byte ptr 0
   push SEM_FAILCRITICALERRORS
   call SetErrorMode		//устанавливаем минимальный уровень ошибок
   push eax					//сохраняем страрый ErrorLevel
   push ebx
   call SetCurrentDirectory	//пытаемся обратиться к приводу
   mov res,eax
   call SetErrorMode			//возвращаем старый Errorlevel
         }
      return res;
      }
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 19.11.2010, 08:44   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
SendMessage(ListBox1.Handle,LB_DIR,DDL_DRIVES,integer(pchar('')));
Плюс к этому порой поиском - уже такое обсуждалось.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.11.2010, 00:03   #4
SoftKoc
Форумчанин
 
Аватар для SoftKoc
 
Регистрация: 07.11.2009
Сообщений: 218
По умолчанию

Большое спасибо, вы мне очень помогли! )
Я бы изменил мир, но Бог не дает исходников...
Если помог, нажми на весы и поставь плюс - в знак благодарности
SoftKoc вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск дисков! Altera Общие вопросы Delphi 6 12.08.2011 20:46
Список дисков C# VadEr Помощь студентам 0 02.11.2010 15:53
выбор существующих БД из Combobox Молоток БД в Delphi 2 30.08.2010 04:40
Определить буквы дисков !!! Noor Общие вопросы Delphi 6 01.09.2008 09:17
Как из Memo вывести строки в txt файл в конец там существующих Saili Компоненты Delphi 8 16.12.2006 11:23