Форум: "Начинающим";
Текущий архив: 2007.09.30;
Скачать: [xml.tar.bz2];
ВнизКопирование файла по сети Найти похожие ветки
← →
Bora.ru (2007-08-28 19:15) [0]данная программа по замыслу должна запускаться на удаленном компе и скопировать файл на мой комп в папку Shared, в которой установлен полный доступ.
вот весь код:
var
sourcefile,destfile:pchar;
begin
sourcefile:="d:\file.rar";
destfile:="\\MyComp\Shared\file.rar";
CopyFile(sourcefile,destfile,false);
end.
Запускаю эту прогу на том компе, но безрезультатно. Хотя с моего компа в его расшаренную папку ф-ция CopyFile копирует без проблем. А также если копировать тот файл в какую-нибудь папку на его компе, то также работает. Но а вот по сети, блин, не хочет.
Что здесь не так?
← →
Reindeer Moss Eater © (2007-08-28 21:20) [1]GetlastErroor знает, что здесь не так.
← →
Bora.ru (2007-08-29 00:27) [2]
> Reindeer Moss Eater ©
это че функция такая? а как ее использовать?
← →
grisme © (2007-08-29 02:22) [3]F1 тебе подскажет, что за функция такая
← →
Reindeer Moss Eater © (2007-08-29 10:27) [4]Как использовать? Как и все остальные.
Вызывать и смотреть на возвращаемый результат.
← →
Bora.ru (2007-08-29 23:36) [5]GetLastError выдает результат - 5. В справке я не нашел, какая ошибка имеет такой код.
← →
Германн © (2007-08-30 01:26) [6]
> Bora.ru (29.08.07 23:36) [5]
>
> GetLastError выдает результат - 5. В справке я не нашел,
> какая ошибка имеет такой код.
>
FormatMessage тебе поможет перевести DWORD в LPTSTR.
:-)
← →
Reindeer Moss Eater © (2007-08-30 09:48) [7]Доступ запрещен.
← →
Bora.ru (2007-08-30 11:27) [8]
> Reindeer Moss Eater © (30.08.07 09:48) [7]
> Доступ запрещен.
Доступ запрещен к файлу-источнику или к папке, куда копируется файл?
← →
iXT © (2007-08-30 11:31) [9]> [8] Bora.ru (30.08.07 11:27)
Попробуй сделать эту операцию средствами не своей прогаммы
← →
Reindeer Moss Eater © (2007-08-30 11:37) [10]Доступ запрещен к файлу-источнику или к папке, куда копируется файл?
А самому-то не догадаться попробовать сначала открыть источник, потом создать файл назначения?
← →
Bora.ru (2007-08-30 11:39) [11]
> Германн © (30.08.07 01:26) [6]
> FormatMessage тебе поможет перевести DWORD в LPTSTR.
SysErrorMessage проще
← →
Bora.ru (2007-08-30 15:11) [12]код выполняется безошибочно, но что странно - безрезультатно.
← →
Anatoly Podgoretsky © (2007-08-30 15:14) [13]Откуда знаешь, нет же никакой обработки ошибок.
← →
Bora.ru (2007-08-30 15:50) [14]
> Anatoly Podgoretsky © (30.08.07 15:14) [13]
обработчик есть, я его просто позже добавил.
← →
Reindeer Moss Eater © (2007-08-30 15:51) [15]код выполняется безошибочно, но что странно - безрезультатно.
это оптический обман.
← →
Anatoly Podgoretsky © (2007-08-30 15:52) [16]
> обработчик есть, я его просто позже добавил.
У тебя обработчик ошибочный
← →
Bora.ru (2007-08-30 16:31) [17]var
sourcefile,destfile:pchar;
f:textfile;
e:word;
s:string;
begin
try
sourcefile:="d:\file.rar";
destfile:="\\MyComp\Shared\file.rar";
CopyFile(sourcefile,destfile,false);
assignfile(f,"error.txt");
rewrite(f);
write(f,"no errors");
closefile(f);
except
e:=getlasterror;
s:=SysErrorMessage(e);
assignfile(f,"error.txt");
rewrite(f);
write(f,s);
closefile(f);
end;
end.
в результате - текстовый файл содержит строку "no errors", но файл не скопирован.
← →
Reindeer Moss Eater © (2007-08-30 16:37) [18]У тебя ошибка в программе
← →
Reindeer Moss Eater © (2007-08-30 16:39) [19]Функции винапи бесполезно обертывать в try except они не генерируют исключений.
← →
Сергей М. © (2007-08-30 16:45) [20]
> Bora.ru
Ну ты и клоун)
← →
Anatoly Podgoretsky © (2007-08-30 16:46) [21]Не видать обработчика
← →
Riply © (2007-08-30 18:26) [22]>[19] Reindeer Moss Eater © (30.08.07 16:39)
>Функции винапи бесполезно обертывать в try except они не генерируют исключений.
А на чем основано это утверждение ?
← →
Reindeer Moss Eater © (2007-08-30 18:31) [23]А ты попробуй и фальсифицируй это утверждение.
:)
← →
Reindeer Moss Eater © (2007-08-30 18:33) [24]Винапи написано для всех.
В том числе для тех, кто пользуется языками и компиляторами в которых нет поддержки исключительных ситуаций.
← →
Riply © (2007-08-30 18:41) [25]> [23] Reindeer Moss Eater © (30.08.07 18:31)
>А ты попробуй и фальсифицируй это утверждение.
Я бы попробовала привести контпример, но не знаю как отличить API функцию от не API.
Beep - это API ?
← →
Reindeer Moss Eater © (2007-08-30 18:43) [26]Это Sysutils
procedure Beep;
begin
MessageBeep(0);
end;
А вот это уже Win API
function MessageBeep; external user32 name "MessageBeep";
← →
Reindeer Moss Eater © (2007-08-30 18:47) [27].... И там все, как и должно быть у нормальных людей:
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
И никаких генераций исключений
← →
Anatoly Podgoretsky © (2007-08-30 19:22) [28]> Riply (30.08.2007 18:41:25) [25]
Нет, это просто имя, а вот Windows.Beep это АПИ
← →
Bora.ru (2007-08-30 19:31) [29]Иными словами ошибка всетаки при CopyFile. Но почему же тогда программа не завершает работу на этом месте?
← →
Riply © (2007-08-30 19:41) [30]>[27] Reindeer Moss Eater © (30.08.07 18:47)
>.... И там все, как и должно быть у нормальных людей:
С тем, что некоторые API генерят исключения под дебугером, все согласны ?
Вот меня и интересует: может есть и такие, которые сгенерят и в "нормальных" условиях ?
← →
Leonid Troyanovsky © (2007-08-30 19:48) [31]
> Riply © (30.08.07 19:41) [30]
> С тем, что некоторые API генерят исключения под дебугером,
> все согласны ?
Под некоторым дебугером? :)
--
Regards, LVT.
← →
Bora.ru (2007-08-30 19:52) [32]короче GetLastError всеравно выдает ошибку "отказано в доступе". Но я на 100% уверен, что к файлу доступ есть. А в папке установлен доступ для записи. Ну люди, не смейтесь - помогите
← →
Leonid Troyanovsky © (2007-08-30 19:56) [33]
> Bora.ru (30.08.07 16:31) [17]
> CopyFile(sourcefile,destfile,false);
> assignfile(f,"error.txt");
> rewrite(f);
> write(f,"no errors");
> closefile(f);
> except
> e:=getlasterror;
Конечно, вызов CloseHandle из closefile прошел успешно.
Кто ж так ошибки обрабатывает? Учись, студент:
Win32Check(CopyFile(..));
--
Regards, LVT.
← →
Leonid Troyanovsky © (2007-08-30 19:58) [34]
> Bora.ru (30.08.07 19:52) [32]
> Но я на 100% уверен, что к файлу доступ есть. А в папке
> установлен доступ для записи.
Что за приложение, как запускается?
--
Regards, LVT.
← →
Riply © (2007-08-30 20:06) [35]> [31] Leonid Troyanovsky © (30.08.07 19:48)
>Под некоторым дебугером? :)
Чесно говоря, я в них(дебугерах) не очень разбираюсь,
но под Delphi этот код даст исключение:Handle := CreateEvent(nil, True, True, nil);
NtClose(Handle);
NtClose(Handle);
а в Help"e, (например для CloseHandle) написано:
Closing an invalid handle raises an exception when the application is running under a debugger.
This includes closing a handle twice, and using CloseHandle on a
handle returned by the FindFirstFile function.
P.S.
Sorry, что зафлудила ветку.
← →
Bora.ru (2007-08-30 20:10) [36]
> Leonid Troyanovsky © (30.08.07 19:58) [34]
> Что за приложение, как запускается?
Просто проект без форм
← →
Leonid Troyanovsky © (2007-08-30 20:25) [37]
> Riply © (30.08.07 20:06) [35]
Принимается.
Да, ИШ как-то приводил здесь примеры,
но были там "нормальные условия" не упомню.
--
Regards, LVT.
← →
Leonid Troyanovsky © (2007-08-30 20:27) [38]
> Bora.ru (30.08.07 20:10) [36]
> Просто проект без форм
И?
Если сложно, то, конечно, можно не отвечать.
--
Regards, LVT.
← →
Bora.ru (2007-08-30 21:08) [39]
> Leonid Troyanovsky © (30.08.07 19:58) [34]
> Что за приложение
в первом сообщении написано - это и есть вся программа
> как запускается?
через Telnet запускается
← →
Leonid Troyanovsky © (2007-08-30 21:34) [40]
> Bora.ru (30.08.07 21:08) [39]
> через Telnet запускается
Акаунту телнета разрешен доступ к share?
Что показывает net view \\MyComp?
И в чем, собс-но, смысл этого приложения, если все
можно (если можно) сделать из телнета.
--
Regards, LVT.
← →
Reindeer Moss Eater © (2007-08-30 22:41) [41]короче GetLastError всеравно выдает ошибку "отказано в доступе". Но я на 100% уверен, что к файлу доступ есть.
Священный долг любого новичка не верить тому, что говорит гетластеррор.
И ты не исключение.
← →
Reindeer Moss Eater © (2007-08-30 22:48) [42]Запускает удаленно из под телнета. А логона на удаленный хост не было - вот и весь сказ. Винда ему честно говорит, что access denied, а он плачет, но продолжает упорно есть кактус.
← →
Bora.ru (2007-08-31 17:54) [43]
> Reindeer Moss Eater © (30.08.07 22:48) [42]
> Запускает удаленно из под телнета.
в том то и фишка, что - не удаленно. На том компе запущен сервер Remote Administrator и у меня есть таким образом:
1) доступ к его дискам
2) доступ к его коммандной строке.
в первом случае я могу скопировать в любое место на его компе свою прогу, а во втором - запустить ее там.
Да, и просьба не делать замечаний типа "какой смысл копировать файлы своей программой, если это может делать RAdmin". Здесь есть свои ньюансы.
← →
Reindeer Moss Eater © (2007-08-31 17:58) [44]Ну и что из этого?
Если ты уверен, что доступ есть, а GetLastError говорит что нет, то это означает что либо ты неправ, и доступа нет, либо вы с ним про разные аккаунты говорите.
Ты уверен, что доступ для Фомы есть, а гетластеррор сообщает, что прога твоя ломится на шару под Еремой и что доступ ему запрещен.
← →
Bora.ru (2007-08-31 19:25) [45]
> Reindeer Moss Eater © (31.08.07 17:58) [44]
другими словами, ты хочеш сказать что прога моя должна запускатся под пользователем с правами администратора?
← →
Reindeer Moss Eater © (2007-08-31 22:36) [46]Тебе еще вчера по-русски и открытым текстом сказали, что не хватает логона на удаленный хост. Ты туда ломишься под гостем и получаешь свой законный access denied.
Запущен локально как какой-то пользователь, а на удаленном хосте ты гость. И гостю там в шаре по записи - большой и жирный болт.
← →
Bora.ru (2007-09-01 14:47) [47]но в обратном порядке же работает - если с моего компа в его общую папку.
← →
sniknik © (2007-09-01 15:54) [48]обратном порядке одно из двух либо запускаешь программку не из под гостя (что очевидно при посто запуске, не через телнет) либо у него в общей папке стоят более широкие разрешения т.е. и на запись для гостей.
← →
Reindeer Moss Eater © (2007-09-01 18:24) [49]Давно бы уже включил аудит и посмотрел бы, кто именно ломится в шары и кто обламывается.
Страницы: 1 2 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.09.30;
Скачать: [xml.tar.bz2];
Память: 0.56 MB
Время: 0.041 c