![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Определить сетевой ли диск [D6, WinXP]
webpauk © (2007-03-27 12:19:00)есть
Dir='Z:\Корпоративный отдел\KVL\Сейчас\Запросы\Коника\';
есть ли возможность определить, что Z - сетевой диск.
если да, то интересует как узнать IP адрес этого диска?
SlymRO (2007-03-30 10:09:00) [1]
' VBScript.
' netdrives.vbs
Option Explicit
Dim WshNetwork,NetworkDrives,i
Set WshNetwork = CreateObject("WScript.Network")
Set NetworkDrives = WshNetwork.EnumNetworkDrives
For i = 0 to NetworkDrives.Count - 1 Step 2
WScript.StdOut.WriteLine NetworkDrives.Item(i) & " = " & NetworkDrives.Item(i+1)
Next
Anatoly Podgoretsky (2007-03-29 23:13:00) [2]
> а что, в конце марта "Z:\" вдруг стало именем хоста?
А почему нет?
Reindeer Moss Eater (2007-03-28 13:51:00) [3]gethostby name ('Z:\')?
бретт...
а что, в конце марта "Z:\" вдруг стало именем хоста?
Rouse_ (2007-03-27 14:24:00) [4]гетхостбайнейм для svQuery из этой строчки:
Result := Result + (Format(ReportFull, [Volume,
'Удаленный (сетевой) диск. Сетевой путь: "\\' + svQuery + '"',
webpauk (2007-03-27 14:19:00) [5]gethostbyname('Z:\')?
бретт...
Reindeer Moss Eater (2007-03-27 13:41:00) [6]гетхостбайнейм?
webpauk (2007-03-27 13:39:00) [7]скорее
GetDriveType(PChar(ExtractFileDrive(Dir)))
как узнать IP адрес этого диска?
Rouse_ (2007-03-27 13:38:00) [8]
function GetDrivesData(NotNT: Boolean): String;
function GetFreeSpace(Disk: String): String;
var
FA, TS: Int64;
TF: TLargeInteger;
begin
if GetDiskFreeSpaceEx(PChar(Disk), FA, TS, @TF) then
Result := IntToStr(Floor((TF / 1024) / 1024)) + ' Мб'
else
Result := 'не определено';
end;
function GetDriveFSName(Volume: String) : String;
var
VolumeName, FileSystemName: array [0..MAX_PATH - 1] of Char;
VolumeSerialNo, MaxComponentLength, FileSystemFlags: LongWord;
begin
Result := '';
if GetVolumeInformation(PChar(Volume), VolumeName, MAX_PATH, @VolumeSerialNo,
MaxComponentLength, FileSystemFlags, FileSystemName, MAX_PATH) then
Result := String(FileSystemName)
else
Result := '';
end;
const
NameSize = 4;
VolumeCount = 26;
TotalSize = NameSize * VolumeCount;
Report = ' - Диск: %s %s'#13#10;
ReportFull = ' - Диск: %s %s, файловая система: %s, свободно: %s'#13#10;
var
Buff, Volume, svQuery: String;
lpQuery: array [0..MAXCHAR - 1] of Char;
I, Count: Integer;
begin
SetLength(Buff, TotalSize);
Count := GetLogicalDriveStrings(TotalSize, @Buff[1]) div NameSize;
if Count = 0 then
Result := 'Диски не определены'
else
Result := '';
for I := 0 to Count - 1 do
begin
Volume := PChar(@Buff[(I * NameSize) + 1]);
case GetDriveType(PChar(Volume)) of
DRIVE_UNKNOWN: Result := Result + (Format(Report, [Volume,
'Тип диска не определен.']));
DRIVE_NO_ROOT_DIR:
Result := Result + (Format(Report, [Volume,
'Корневой путь диска не верен. Тип диска не определен.']));
DRIVE_REMOVABLE:
begin
Volume[3] := #0;
QueryDosDevice(PChar(Volume), @lpQuery[0], MAXCHAR);
Volume[3] := '\';
if String(lpQuery) = '\Device\Floppy0' then
Result := Result + (Format(Report, [Volume, 'Привод гибких дисков.']))
else
if String(lpQuery) = '\Device\Floppy1' then
Result := Result + (Format(Report, [Volume, 'Привод гибких дисков.']))
else
Result := Result + (Format(ReportFull,
[Volume, 'Флэш накопитель',
GetDriveFSName(Volume), GetFreeSpace(Volume)]));
end;
DRIVE_FIXED:
begin
if NotNT then
begin
Volume[3] := #0;
QueryDosDevice(PChar(Volume), @lpQuery[0], MAXCHAR);
Volume[3] := '\';
if Length(String(lpQuery)) = 2 then
Result := Result + (Format(ReportFull, [Volume,
'Логический', GetDriveFSName(Volume), GetFreeSpace(Volume)]))
else
Result := Result + (Format(Report, [Volume,
'Диск является отображением папки находящейся по адресу: "' +
String(lpQuery) + '"']));
Continue;
end;
Volume[3] := #0;
QueryDosDevice(PChar(Volume), @lpQuery[0], MAXCHAR);
Volume[3] := '\';
if Copy(String(lpQuery), 1, 22) = '\Device\HarddiskVolume' then
Result := Result + (Format(ReportFull, [Volume,
'Логический', GetDriveFSName(Volume), GetFreeSpace(Volume)]))
else
Result := Result + (Format(Report, [Volume,
'Диск является отображением папки находящейся по адресу: "' +
Copy(String(lpQuery), 5, Length(String(lpQuery))) + '"']));
end;
DRIVE_REMOTE:
begin
Volume[3] := #0;
QueryDosDevice(PChar(Volume), @lpQuery[0], MAXCHAR);
Volume[3] := '\';
svQuery := Copy(String(lpQuery), 29, Length(String(lpQuery)));
Delete(svQuery, 1, Pos('\', svQuery));
Result := Result + (Format(ReportFull, [Volume,
'Удаленный (сетевой) диск. Сетевой путь: "\\' + svQuery + '"',
GetDriveFSName(Volume), GetFreeSpace(Volume)]));
end;
DRIVE_CDROM:
Result := Result + (Format(Report, [Volume,'CD-ROM.']));
DRIVE_RAMDISK:
Result := Result + (Format(ReportFull, [Volume, 'RAM диск.',
GetDriveFSName(Volume), GetFreeSpace(Volume)]));
else
Result := (Format(Report, [Volume, 'Тип диска не определен.']));
end;
end;
end;
tesseract (2007-03-27 12:21:00) [9]GetDriveTypeA.