-
Almaz © (08.09.12 23:30) [0]Уважаемые, есть код:
var
Res: TNetResource;
begin
ZeroMemory(@Res, sizeof(Res));
Res.dwType := RESOURCETYPE_ANY;
Res.lpLocalName := nil;
Res.lpRemoteName := PWideChar(ExcludeTrailingPathDelimiter(ExtractFilePath(FileName)));
Res.lpProvider := nil;
CheckOSError(WNetAddConnection2(Res, 'password', 'username', CONNECT_TEMPORARY) = NO_ERROR);
CheckOSError(DeleteFile(FileName));
end;
Код выполняется под учетной записью SYSTEM. Под Vista, XP, 2003, 2008 все прекрасно отрабатывает. Под Windows XPWNetAddConnection2
возвращает "Указанный сеанс работы не существует. Возможно он уже завершен". -
Almaz © (08.09.12 23:45) [1]Решено. Можно закрывать. Sniknik - ты был прав - я притупил слегка ;)
Код правильный - просто XP в отличии от Vista и 7 не понимает просто Guest - она хочет ComputerName\Guest -
han_malign (11.09.12 09:49) [2]
> Sniknik - ты был прав - я притупил слегка
- не совсем... - для того чтобы получить "права на сеть" - для XP - надо еще проставить зависимость сервиса от "Рабочая станция"(lanmanworkstation) (чтобы "сеть была на момент запуска").
Для Vista/W7 - это обычно не надо из-за отложенной загрузки сервисов...
И дальше уже получать доступ к ресурсу любым рекомендованным методом
http://msdn.microsoft.com/en-us/library/windows/desktop/aa376390%28v=vs.85%29.aspx