1. Уважаемые гости и пользователи форума.
    Администрация настоятельно рекомендует не регистрировать несколько аккаунтов для одного пользователя. При выявлении наличия мультиаккаунтов будут заблокированы все учетные записи данного пользователя.
    Аккаунты, зарегистрированные на временную почту будут также заблокированы.

DLL ISCopyFile 0.6

Плагин для копирования файлов через Inno Setup

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

    Регистрация:
    15 июн 2011
    Сообщения:
    745
    Симпатии:
    495
    Последнее редактирование модератором: 16 сен 2015
    nik1967, groovy и ExPlayer нравится это.
  2. Ветеран

    Регистрация:
    22 май 2015
    Сообщения:
    34
    Симпатии:
    10
    Пол:
    Мужской
    Достойная альтернатива системной xcopy.
    Правда в стандартной версии компиля выдает ошибку
    ---------------------------
    Compiler Error
    ---------------------------
    Line 20:

    Column 33:

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

    Пока нет возможности полностью проверить - а скрытые и системные файлы успешно копирует?
     
    Последнее редактирование: 15 сен 2015
  3. Он где то тут Администратор

    Регистрация:
    15 июн 2011
    Сообщения:
    745
    Симпатии:
    495
    Не проверял, но обычные файлы копирует достаточно шустро

    Компилировать нужно в расширенной юникод версии
     
  4. Ветеран

    Регистрация:
    3 сен 2015
    Сообщения:
    40
    Симпатии:
    2
    Пол:
    Мужской
    Krinkels, блин, а самый неприятный баг со сворачиванием инсталлятора так и не пофиксил :(
     
  5. Ветеран

    Регистрация:
    22 май 2015
    Сообщения:
    34
    Симпатии:
    10
    Пол:
    Мужской
    Предпочитаю как и многие оригинальный Inno Setup, расширеная версия это не панацея.
    скорость копирования зависит от компьютера, а не от команды. эх, так и не удастся заценить этот плагин, придется юзать xcopy дальше :( хотя Inno и сам неплохо умеет копировать с флагом external, если нужно не из кода что-то сделать.
     
  6. Ветеран

    Регистрация:
    17 июн 2011
    Сообщения:
    471
    Симпатии:
    283
    groovy, если пользователь не владелец файла (это часто встречается в win8-win10) вам даже эта IsCopyFile не поможет, не говоря уж об XCOPY или инно.
     
  7. Ветеран

    Регистрация:
    3 сен 2015
    Сообщения:
    40
    Симпатии:
    2
    Пол:
    Мужской
    Krinkels, пишет: "Ошибка. Запрашиваемое обновление не найдено".
     
  8. Ветеран

    Регистрация:
    22 май 2015
    Сообщения:
    34
    Симпатии:
    10
    Пол:
    Мужской
    если приложение запускается под админом, оно выполнит все что ему нужно. конечно, если у юзера в 8-10 в локальных правах запрещены UI Access Applications и еще HIPS параноидальный установлен, то тут ничего не прорвется.
     
  9. Он где то тут Администратор

    Регистрация:
    15 июн 2011
    Сообщения:
    745
    Симпатии:
    495
    Удалил, ибо решил немного по другому переписать
     
  10. Ветеран

    Регистрация:
    3 сен 2015
    Сообщения:
    40
    Симпатии:
    2
    Пол:
    Мужской
    Krinkels, с нетерпением ждёмс :)
     
  11. Ветеран

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

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

    Регистрация:
    15 июн 2011
    Сообщения:
    745
    Симпатии:
    495
    Infest и nik1967 нравится это.
  13. Ветеран

    Регистрация:
    3 сен 2015
    Сообщения:
    40
    Симпатии:
    2
    Пол:
    Мужской
    Krinkels, Процесс копирования шикарно реализован :good:Так же благодарю за фикс сворачивания окна! От души :)

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

    Регистрация:
    17 июн 2011
    Сообщения:
    461
    Симпатии:
    435
    Пол:
    Мужской
    Да как так? Сам лично проверял - работает кнопка "Отмена копирования".
     
  15. Ветеран Модератор

    Регистрация:
    26 июн 2011
    Сообщения:
    1.300
    Симпатии:
    828
    У меня тоже работает. Эх..был бы скрин где эта кнопка неактивна...
     
  16. Ветеран

    Регистрация:
    3 сен 2015
    Сообщения:
    40
    Симпатии:
    2
    Пол:
    Мужской
    Кнопка отмены копирования работает тогда, когда копируешь весь массив папки. Когда значение поиска подпапок меняешь на false и копируешь один или несколько файлов из всего массива, после нажатия кнопки "Отмена копирования", кнопка становится неактивной, а копирование продолжается, пока не скопируются все файлы. Версия IS 5.5.1 unicode.
    Скрины под катом.
    [​IMG]
    [​IMG]

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

    Регистрация:
    15 июн 2011
    Сообщения:
    745
    Симпатии:
    495
  18. Ветеран

    Регистрация:
    3 сен 2015
    Сообщения:
    40
    Симпатии:
    2
    Пол:
    Мужской
    Krinkels, проблема решилась только частично. При копировании одного файла, "отмена копирования" происходит успешно, а вот при копировании нескольких, отменяется только первый копируемый файл. Копирование переключается на остальные файлы и копирует их в порядке очереди с неактивной кнопкой "отменить копирование".
     
  19. Ветеран

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

    Код (Text):
          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;
    Смысл этого я вообще не понял:
    Код (Text):
    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;
    Зачем себе жизнь усложнять
     
  20. Он где то тут Администратор

    Регистрация:
    15 июн 2011
    Сообщения:
    745
    Симпатии:
    495
    Предложи вариант получше
     

Поделиться этой страницей