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]
Что — то в этом роде(переделаешь как тебе необходимо) |
 |