Форум: "Сети";
Текущий архив: 2002.11.04;
Скачать: [xml.tar.bz2];
ВнизКак найти локальное имя по имени сетевого диска? Найти похожие ветки
← →
EternalWonderer (2002-08-13 14:52) [0]Имеем: путь типа \\NTserver\install.
Задача: проверить, подключен (maped) ли он уже на клиенте?
GetVolumeInformation не катит, поскольку возвращает только вторую часть пути - "install" ...
← →
EternalWonderer (2002-08-14 09:07) [1]Господа мастера, неужели никто не решал подобную задачу?
В Explorer"е эти имена появляются (в виде "INSTALL на "NTServer" (G:)"), значит, их можно как-то "добыть"!
Function GetLocalNameAssignedDrive(NetName: String): String;
Var c : Array[1..26] of Char;
n : Integer;
begin
Result := "";
c:="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
For n := 1 to 26 do
If (GetDriveType(PChar(c[n]+":\")) = DRIVE_REMOTE)
And // здесь надо получить VolumeName в виде
// "\\NTServer\install" или хотя бы как-то иначе
And (NetName = VolumeName) Then Begin
Result := c[n] + ":";
Exit;
End;
End;
Заранее признателен за подсказку.
← →
EternalWonderer (2002-08-15 13:36) [2]Для интересующихся сообщаю решение:
Function GetLocalNameAssigned(NetName: String): String;
Var c : Array[1..26] of Char;
n : Integer;
VolumeName: array [0..MAX_PATH-1] of Char;
BufferLength: Cardinal;
begin
Result := "";
c:="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
BufferLength := MAX_PATH;
For n := 1 to 26 do
If (GetDriveType(PChar(c[n]+":\")) = DRIVE_REMOTE)
And (WNetGetConnection(PChar(String(c[n]+":")),VolumeName,BufferLength) = NO_ERROR)
And (ANSIUpperCase(NetName) = ANSIUpperCase(VolumeName)) Then Begin
Result := c[n] + ":";
Exit;
End;
End;
Удачи!
← →
Filat (2002-09-04 12:36) [3]Спасибо !
Будем иметь ввиду на будушщее :)))))
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2002.11.04;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.008 c