Конференция "Сети" » Ошибка WNetAddConnection2 в WinXP [WinXP]
 
  • 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 XP
    WNetAddConnection2

    возвращает "Указанный сеанс работы не существует. Возможно он уже завершен".
  • 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
 
Конференция "Сети" » Ошибка WNetAddConnection2 в WinXP [WinXP]
Есть новые Нет новых   [134435   +20][b:0][p:0.001]