Иконка ресурса

DLL ISCopyFile 0.6

Нет прав для скачивания

Krinkels

Он где то тут
Администратор
Последнее редактирование модератором:

groovy

Новичок
Достойная альтернатива системной xcopy.
Правда в стандартной версии компиля выдает ошибку
---------------------------
Compiler Error
---------------------------
Line 20:

Column 33:

Unknown type 'TMsg'
---------------------------
ОК
---------------------------
что говорит об отсутствующем объявленном типе.

Пока нет возможности полностью проверить - а скрытые и системные файлы успешно копирует?
 
Последнее редактирование:

Krinkels

Он где то тут
Администратор
а скрытые и системные файлы успешно копирует?
Не проверял, но обычные файлы копирует достаточно шустро

что говорит об отсутствующем объявленном типе.
Компилировать нужно в расширенной юникод версии
 

Infest

Новичок
Krinkels, блин, а самый неприятный баг со сворачиванием инсталлятора так и не пофиксил :(
 

groovy

Новичок
Компилировать нужно в расширенной юникод версии
Предпочитаю как и многие оригинальный Inno Setup, расширеная версия это не панацея.
обычные файлы копирует достаточно шустро
скорость копирования зависит от компьютера, а не от команды. эх, так и не удастся заценить этот плагин, придется юзать xcopy дальше :( хотя Inno и сам неплохо умеет копировать с флагом external, если нужно не из кода что-то сделать.
 

Snoopak96

Старожил
groovy, если пользователь не владелец файла (это часто встречается в win8-win10) вам даже эта IsCopyFile не поможет, не говоря уж об XCOPY или инно.
 

Infest

Новичок
Krinkels, пишет: "Ошибка. Запрашиваемое обновление не найдено".
 

groovy

Новичок
groovy, если пользователь не владелец файла (это часто встречается в win8-win10) вам даже эта IsCopyFile не поможет, не говоря уж об XCOPY или инно.
если приложение запускается под админом, оно выполнит все что ему нужно. конечно, если у юзера в 8-10 в локальных правах запрещены UI Access Applications и еще HIPS параноидальный установлен, то тут ничего не прорвется.
 

Snoopak96

Старожил
если приложение запускается под админом, оно выполнит все что ему нужно. конечно, если у юзера в 8-10 в локальных правах запрещены UI Access Applications и еще HIPS параноидальный установлен, то тут ничего не прорвется.
мечты, они такие розовые 8-)
ещё раз популярно: если вы попытаетесь произвести копирование с заменой в семействе этих windows (8-10) и не являетесь собственником файлов которые вы пытаетесь заменить, то нифига у вас не получится, тк админ в этих системах лох (сори уж за прямоту). Конечно можно узнать CID группы владельца файла - сравнить входит ли пользователь в эту группу и установить права на файл, НО: 8-)
Если к примеру установка была запущена через локалку, то вызвать функции для получения токена привелегии после которого и устанавливаются права на файл не получится - нужен пароль юзверя.

Тут кто-то недавно спрашивал об этом: http://forum.ru-board.com/topic.cgi?forum=5&topic=46338&start=1460#4
 
Последнее редактирование:

Krinkels

Он где то тут
Администратор

Infest

Новичок
Krinkels, Процесс копирования шикарно реализован :good:Так же благодарю за фикс сворачивания окна! От души :)

*Добавлено*
Однако теперь не работает кнопка отмены копирования. Т.е. она работает, но при нажатии становится неактивной и процесс копирования всё равно отображается.
 
Последнее редактирование:

nik1967

Old Men
Проверенный
Да как так? Сам лично проверял - работает кнопка "Отмена копирования".
 

sergey3695

Ветеран
Модератор
У меня тоже работает. Эх..был бы скрин где эта кнопка неактивна...
 

Infest

Новичок
Да как так? Сам лично проверял - работает кнопка "Отмена копирования".
Кнопка отмены копирования работает тогда, когда копируешь весь массив папки. Когда значение поиска подпапок меняешь на false и копируешь один или несколько файлов из всего массива, после нажатия кнопки "Отмена копирования", кнопка становится неактивной, а копирование продолжается, пока не скопируются все файлы. Версия IS 5.5.1 unicode.
Скрины под катом.


Ещё кое-что нашёл. При включённом поиске подпапок, когда копируешь папку с большим массивом файлов (в моём случае, в качестве теста взял папку, весом ~20 гб, инсталлятор сначала подвисает, а потом и вовсе процесс стопорится. При нажатии "Отмены копирования" выскакивает следующее.
Но это скорее так, мелочь)) Не думаю, что кто-нибудь будет использовать скрипт для такого большого потока копируемых файлов)) Да и что-то мне подсказывает, что это не косяк скрипта, а скорее всего самой инки.
 
Последнее редактирование:

Infest

Новичок
Krinkels, проблема решилась только частично. При копировании одного файла, "отмена копирования" происходит успешно, а вот при копировании нескольких, отменяется только первый копируемый файл. Копирование переключается на остальные файлы и копирует их в порядке очереди с неактивной кнопкой "отменить копирование".
 

Snoopak96

Старожил
Саня, у тебя чёта везде 0 возращается в функции, при успешном копированнии верни 1 чтоб так можно было сделать:

Код:
      repeat
      if isCopyFile(callback, '{#PathOut}', {#PathIn}, false) <> 1 then break;
      if isCopyFile(callback, '{#PathOut}', {#PathIn}, false) <> 1 then break;
      if isCopyFile(callback, '{#PathOut}', {#PathIn}, false) <> 1 then break;
      until true;
Смысл этого я вообще не понял:
Код:
procedure mCopyFiles(mOut: String; mIn: String);
var
    callback: Longword;

begin
  callback:= CallbackAddr('mCallback');
  try
   isCopyFile(callback, mOut, mIn, True);
   Button1.visible:= false;
  except
   MsgBox('Failed!', mbError, MB_OK);
   Button1.visible:= false;
  end;
end;
Зачем себе жизнь усложнять
 
Сверху