SunDevil |
Отправлено: 04.05.2006, 00:02 |
|
Не зарегистрирован
|
Вот интересует такой вопрос. На форме все предельно просто: Button и Edit. Надо, чтобы по нажатию на кнопку в Edit1 появилась метка тома CD, который находится в CD-ROM. Как это реализовать? СПАСИБО БОЛЬШОЕ! |
|
Guest |
Отправлено: 04.05.2006, 08:07 |
|
Не зарегистрирован
|
GetVolumeInformation |
|
SunDevil |
Отправлено: 04.05.2006, 11:20 |
|
Не зарегистрирован
|
А можно поподробнее, а то что-то я не очень хорошо понимаю |
|
Guest |
Отправлено: 04.05.2006, 11:52 |
|
Не зарегистрирован
|
Если сами не справитесь, то позже. Пока занят |
|
Gal |
Отправлено: 04.05.2006, 12:12 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 124
|
CODE |
LPCTSTR NameDiskPtr;
DWORD VolSN, MaxCompLen, FSFlag;
char VolName[256], FSName[100];
if (GetVolumeInformation(NameDiskPtr,VolName,255,&VolSN,&MaxCompLen,&FSFlag,FSName,100))
{
// Диск — NameDiskPtr
// Имя тома — VolName
// Серийный номер — VolSN
// Файловая система — FSName
}
else
{
// Диск — НЕ ГОТОВ!;
}
}
|
|
|
SunDevil |
Отправлено: 04.05.2006, 20:09 |
|
Не зарегистрирован
|
CODE | void __fastcall TForm1::Button3Click(TObject *Sender)
{
//LPCTSTR NameDiskPtr;
//DWORD VolSN, MaxCompLen, FSFlag;
char VolName[256], FSName[100];
if (GetVolumeInformation(NameDiskPtr,VolName,255,&VolSN,&MaxCompLen,&FSFlag,FSName,100))
{
//NameDiskPtr;
Edit4->Text=VolName;
// VolSN
// FSName
}
} |
Пишу так, а он выдает ошибку:
Access violation at adress 7C9012B4 in module 'ntdll.dll'. |
|
AVC |
Отправлено: 05.05.2006, 08:15 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
Для начала это:
if (GetVolumeInformation(NameDiskPtr, VolName, 255, &VolSN, &MaxCompLen, &FSFlag, FSName, 100)) |
|
Gal |
Отправлено: 05.05.2006, 09:46 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 124
|
Ты имя диска задаешь?
Например так
NameDiskPtr = "D:\\"; |
|
SunDevil |
Отправлено: 05.05.2006, 19:12 |
|
Не зарегистрирован
|
Товарищи, напишите нормальный код для кнопки, чтобы по нажатию на нее имя тома копировалось в Edit. СПАСИБО! |
|
Gal |
Отправлено: 06.05.2006, 15:26 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 124
|
[QUOTE]
void __fastcall TForm1::Button3Click(TObject *Sender)
{
LPCTSTR NameDiskPtr = Edit1->Text.c_str();
DWORD VolSN, MaxCompLen, FSFlag;
char VolName[256], FSName[100];
if (GetVolumeInformation(NameDiskPtr,VolName,255,&VolSN,&MaxCompLen,&FSFlag,FSName,100))
{
if (Edit1->Text != "")
Edit2->Text = AnsiString(VolName);
else
Edit2->Text = "Не задан диск";
}
else
{
Edit2->Text = "НЕ ГОТОВ!";
}
}
[/CODE]
Что — то в этом роде(переделаешь как тебе необходимо) |
|