wedhead
Mitglied
Hi @ all !
Ich möchte das bei Button1 Klick geschaut wird in welchem laufwwerk sich die CD/DVD mit dem namen "AUDIO_CD" (benätige variable mit laufwerkbuchstaben) habe da nen code im inet gefunden und ein bisschen bearbeitet, leider passen da die ifbedingungen nicht, vlt könnt ihr mir weiter helfen...
Ich möchte das bei Button1 Klick geschaut wird in welchem laufwwerk sich die CD/DVD mit dem namen "AUDIO_CD" (benätige variable mit laufwerkbuchstaben) habe da nen code im inet gefunden und ein bisschen bearbeitet, leider passen da die ifbedingungen nicht, vlt könnt ihr mir weiter helfen...
Code:
bool IsDiskInDrive(AnsiString slDrive, AnsiString &slVolName,
DWORD& dwVolumeSerial)
{
bool blRetVal = false;
UINT iErrMode;
TCHAR szVolName[256];
DWORD dwMaxComSize;
DWORD dwFlags;
TCHAR szFS[256];
// Falls Laufwerksname übergeben:
if(slDrive.Length() > 0)
{
// der Aufruf von SetErrorMode ist notwendig, Windows-Messagebox
// "Laufwerk nicht bereit" zu unterdrücken:
iErrMode = SetErrorMode(SEM_FAILCRITICALERRORS);
// Laufwerksinformationen auslesen:
blRetVal = GetVolumeInformation(
(slDrive.SubString(1,1)+ ":\\").c_str(),
szVolName, sizeof(szVolName), &dwVolumeSerial,
&dwMaxComSize, &dwFlags, szFS, sizeof(szFS));
// ErrorMode in ursprünglichen Zustand versetzen:
SetErrorMode(iErrMode);
}
else blRetVal = false;
// Volumen-Namen in überg. String schreiben:
slVolName = blRetVal ? AnsiString(szVolName) : EmptyStr;
return blRetVal;
}
bool GetDiskSpace(AnsiString slDrive, __int64& ilBytesTotal,
__int64& ilBytesFree)
{
ilBytesFree = DiskFree(slDrive.UpperCase()[1]-0x40);
ilBytesTotal = DiskSize(slDrive.UpperCase()[1]-0x40);
return ilBytesFree > -1 && ilBytesTotal > -1;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
AnsiString slVolumeName;
DWORD dwVolumeSerial;
if(IsDiskInDrive(AnsiString("c"), slVolumeName,dwVolumeSerial))
{
if (slVolumeName=="XP_0WN3D")Application->MessageBox("C","Laufwerk",32);
}
if(IsDiskInDrive(AnsiString("d"), slVolumeName,dwVolumeSerial))
{
if (slVolumeName=="XP_0WN3D")Application->MessageBox("D","Laufwerk",32);
}
if(IsDiskInDrive(AnsiString("e"), slVolumeName,dwVolumeSerial))
{
if (slVolumeName=="XP_0WN3D")Application->MessageBox("E","Laufwerk",32);
}
if(IsDiskInDrive(AnsiString("f"), slVolumeName,dwVolumeSerial))
{
if (slVolumeName=="XP_0WN3D")Application->MessageBox("F","Laufwerk",32);
}
if(IsDiskInDrive(AnsiString("g"), slVolumeName,dwVolumeSerial))
{
Application->MessageBox("G","Laufwerk",32);
}
if(IsDiskInDrive(AnsiString("h"), slVolumeName,dwVolumeSerial))
{
if (slVolumeName=="XP_0WN3D")Application->MessageBox("H","Laufwerk",32);
}
if(IsDiskInDrive(AnsiString("i"), slVolumeName,dwVolumeSerial))
{
if (slVolumeName=="XP_0WN3D")Application->MessageBox("I","Laufwerk",32);
}
if(IsDiskInDrive(AnsiString("j"), slVolumeName,dwVolumeSerial))
{
if (slVolumeName=="XP_0WN3D")Application->MessageBox("J","Laufwerk",32);
}
if(IsDiskInDrive(AnsiString("k"), slVolumeName,dwVolumeSerial))
{
if (slVolumeName=="XP_0WN3D")Application->MessageBox("K","Laufwerk",32);
}
if(IsDiskInDrive(AnsiString("l"), slVolumeName,dwVolumeSerial))
{
if (slVolumeName=="XP_0WN3D")Application->MessageBox("L","Laufwerk",32);
}
else Application->MessageBox("Bitte WinXP 0wn3d DVD einlegen","Fehler",32);
}