Просмотр полной версии : [Delphi] как программно установить RadMin?
043nKRuT0y
02.07.2008, 18:05
Вообщем есть проект на Delphi7 ... как можна реализовать следующее ? :
- в папке с проектом есть RadMin и ево библиотеки , как скопировать ети файлы в системную папку чтобы радмин загружался вместе с системой ???
Выложите плз код выполняющий ето , при нажатии на кнопку в проекте или чтото в етом роде .
De-visible
03.07.2008, 14:08
Что то я тебя все равно не понял....что тебе нужно...скопировать файлы? в какую папку?
объясни нормально.
Flame of Soul
03.07.2008, 14:38
самый простой вариант (сама когдато делала)
1) пишешь свою программу на делфи
2)ставишь инсталятор NSIS
через NSIS указываешь куда какой файл скопировать и какие файлы запускать во время инсталяции
3) пишешь на любом языке скрытый скрипт запуска программ и выбираешь его старт по окончании установки
или можно глупо создать SFX архив через Free Extractor Wizard и внего засовывыешь батник без показа окна в котором прописано все перекопировать их этой подпапки в которую только что все распаковал и записи в реестр. (все прекрасно работает сама выдавала DirectX 9 переделанный в рестораторе за 10 и встраивала туда скрытую установку) только вместо батника был экзешник на асме)
043nKRuT0y
03.07.2008, 18:50
та ненужны мне никакие там архивы !
Вопрос простой как через делфи можно скопировать файлы радмина в системную папку допустим при нажатии кнопки "ОК"??? При етом файлы радмина находятся в той же папке что и проект !!!
для определения пути к своей папке используй GetCurrentDir, для копирования файлов - CopyFile, путь к систепной папке - с помощью GetSystemDirectory
Flame of Soul
03.07.2008, 21:29
Копирование файла:
procedure CopyFile(Source, Dest: string);
var
SrcFile: Integer;
DestFile: Integer;
S: string;
RetCode: Longint;
OpenFileBuf: TOFStruct;
FName: array[0..255] of Char;
begin
StrPCopy(FName, Source);
SrcFile := LZOpenFile(FName, OpenFileBuf, of_Read);
StrPCopy(FName, Dest);
DestFile := LZOpenFile(FName, OpenFileBuf, of_Create);
RetCode := LZCopy(SrcFile, DestFile);
if RetCode >= 0 then
begin
LZClose(SrcFile);
LZClose(DestFile);
end
else
begin
Str(RetCode, S);
MessageDlg('Не могу скопировать ' + Source + ' в ' +
Dest + #13 + 'Код ошибки = ' + S, mtError, [mbOk], 0);
end;
end;
Системная директория:
procedure TForm1.Button1Click(Sender: TObject);
var
Windir: string;
WindirP: PChar;
Res: Cardinal;
begin
WinDirP := StrAlloc(MAX_PATH);
Res := GetWindowsDirectory(WinDirP, MAX_PATH);
if Res > 0 then
WinDir := StrPas(WinDirP);
Label1.Caption := WinDir;
end;
Путь до экзешника (непродуманно сделанно)
Label1.Caption:=LeftStr(Application.ExeName,length (Application.ExeName)-length(Application.Title)-4);
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot