Логин: Пароль:    Регистрация Всеми возможностями сайта можно пользоваться
только после авторизации.
   Забыли пароль?

Поиск
L



Статистика
u
Пользователи онлайн: нет
Гостей онлайн: 6
Всего онлайн: 6
Зарегистрировано юзеров: 7940
Комментариев на сайте: 698
Новый юзер: kotya.volkova



Последние комментарии
c
Dennisvoifs прокомментировал "Урок 3 - Конструкция IF...THEN...ELSE":
Пункт коммерческого учета цена, Ктп комплектные трансформаторные подстанции москва, Производство ктп москва и не только Вы найдете на нашем специализированном сайте: - Вам к нам!https://sviloguzov.ru/
Arthurneime прокомментировал "Урок 53 - Потоки в Delphi, (часть 1/3)":
[img]https://masterfutures.ru/wp-content/uploads/2020/03/14-2.png[/img] Online trading is becoming increasingly popular, as more people learn of the earning potential of platforms such as Broker, a broker which caters to a significant audience of digital traders (12 million and counting). Known for their excellent user interface, as well as fast deposit and withdrawal times, Broker provides multiple features to help traders earn on the markets. This overview will outline just some of the key aspects traders can expect to enjoy whilst working with Broker broker. Online trading is becoming increasingly popular, as more people learn of the earning potential of platforms such as Broker, a broker which caters to a significant audience of digital traders (12 million and counting). Known for their excellent user interface, as well as fast deposit and withdrawal times, Broker provides multiple features to help traders earn on the markets. This overview will outline just some of the key aspects traders can expect to enjoy whilst working with Broker broker. Broker Broker is operated by a dedicated team, whose main priority has always been to provide the best possible user experience, and ultimately satisfaction. Whether experienced in trading or a newcomer, the platform is easy to use and very responsive. The education section deserves special mention, particularly for assisting traders to learn and implement new strategies – which can be tested on the platforms free demo Source: [url=https://bit.ly/35fv3B6/]Broker[/url] https://bit.ly/35fv3B6/ Tags: Broker

Копирование программы во временный каталог

Чтобы не смущать высокое собрание подробным рассмотрением алгоритма, приведу конкретный пример исходника.

program Setup;

uses 
Windows, 
SysUtils;

const 
ReRunParameter = '/install_from_temp_directory';

var 
TempPath: array [0..MAX_PATH] of Char; 
SrcPath: String;

begin 
if ParamStr(1) = ReRunParameter then 
SrcPath := ParamStr(2) 
else 
if GetDriveType(PChar(ParamStr(0)[1] + ':')) = DRIVE_REMOVABLE then 
begin 
// Если программа была запущена без ключа и с дискеты, то 
// копируем её во временный каталог и перезапускам 
// Текущее приложение завершаем. 
GetTempPath(MAX_PATH, TempPath); 
// Добавлям к пути временного каталога символ '', если его там нет 
if (StrLen(TempPath) > 0) and (TempPath[StrLen(TempPath)] <> '') then 
StrCat(TempPath, ''); 
// Копируем файл через вызов функции CopyFile из WinAPI 
CopyFile(PChar(ParamStr(0)), PChar(String(TempPath) + ExtractFileName(ParamStr(0))), False); 
// Запускаем файл с двумя параметрами 
WinExec(PChar(String(TempPath) + ExtractFileName(ParamStr(0)) + ' ' + 
ReRunParameter + ' ' + ExtractFilePath(ParamStr(0))), CmdShow); 
Exit; 
end 
else 
SrcPath := ExtractFilePath(ParamStr(0)); 
// Здесь начинается программа инсталляции 
// Переменная SrcPath показывает нам, откуда надо копировать файлы 
end. 
Есть две грабли, на которые можно наступить в приведённом примере. Первые лежат в вызове функции GetTempPath. Если у вас нет переменных окружения TMP и TEMP, то временным каталогом станет текущий каталог программы, то есть, фактически, ваша дискета.

Вы можете проверять, не находится ли временный каталог на сменном диске (с помощью вызова GetDriveType), и, если находиться, считать временным каталогом C:TEMP (если его нет — создайте самостоятельно).
Вторые грабли заключаются в том, что после завершения инсталляции программу из временного каталога желательно удалить, но сделать этого вы не сможете, поскольку программа в этот момент выполняется. Вспомните, что в Windows 95 и Windows NT выполняющуся программу удалять нельзя.
В общем случае, решения этой проблемы я не знаю. Собственно, поскольку файл останется во временном каталоге, он будет одним из первых кандидатов на удаление (если пользователь хоть когда-нибудь чистит свой временный каталог :) Тем не менее, есть один хитрый способ удаления этого файла, о котором я расскажу ниже, в параграфе о деинсталляции.
Примечание: Если для вас важен размер вашей инсталляции, вы можете взять только тот кусочек, который приведён выше, и сделать из него отдельную программу (которая будет очень небольшого объёма). Саму программу инсталляции вы предварительно сжимаете, а перед запуском распаковываете её во временный каталог (а не копируете, как это сделано здесь).
Обратите внимание, что в этом случае программа должна распаковываться в любом случае, а не только если она запущена с дискеты.

Вот и всё, Удачи!

Источник: www.thedelphi.ru
Автор: Савельев Александр
Опубликовано: 8 Декабря 2013
Просмотров:


Зарегистрируйтесь или авторизуйтесь, чтобы добавлять комментарии.