Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.13;
Скачать: CL | DM;

Вниз

Как программе переименовать свой *.exe?   Найти похожие ветки 

 
Александр из Минска ©   (2003-10-25 16:35) [0]

Как программе переименовать свой *.exe? Во время работы программы переименовать свой Setup.exe на Project.exe (мне это нужно для создания своего инсталлятора). Обычное RenameFile не работает.


 
mOOx_ ©   (2003-10-25 16:37) [1]

Через второй файл. Проще - батник.
Удачи.


 
Александр из Минска ©   (2003-10-25 16:39) [2]

А в *.bat что надо писать?
И оно переименует, даже когда моя программа запущена?


 
хз ©   (2003-10-25 16:47) [3]

2 Александр из Минска

> А в *.bat что надо писать?

Почитай книжку Фигурнова. Что-то вроде этого:

ren setup.exe project1.exe

> И оно переименует, даже когда моя программа запущена?

Нет. Не переименует.

А вообще с bat-файлами не очень удобно работать. Старо это. Попробуй придумать другой способ.


 
Pat ©   (2003-10-25 16:51) [4]

CopyFile(PChar(paramstr(0)),"Project.exe",true)
где-то в этом районе


 
Ihor Osov'yak ©   (2003-10-25 16:57) [5]

если для nt - то пройдет такой финт
procedure TForm1.Button1Click(Sender: TObject);
var f: file;
begin //
AssignFile(f, ParamStr(0));
Rename(f, "BlaBla.exe");
end;


 
хз ©   (2003-10-25 17:09) [6]

2 Pat

Ну да. Вроде того:

Procedure Setup2Program;
Var
Reg:TRegistry;
Begin
CopyFile(PChar(paramstr(0)),"Project.exe",true)
ShellExecute(Application.Handle,nil,PChar(ExtractFilePath(ParamStr(0))+"Project.exe"),nil,nil,SW_SHOW);
reg := TRegistry.Create;
with reg do
begin
RootKey := HKEY_LOCAL_MACHINE;
LazyWrite := false;
OpenKey("Software\Microsoft\Windows\CurrentVersion\RunOnce",false);
WriteString("Delete setup","command.com /c del "+PChar(paramstr(0)));
CloseKey;
free;
end;
end;


 
Ihor Osov'yak ©   (2003-10-25 17:20) [7]

Да, используя [5] для н-т ряда, или вариации на тему [6] для w9x получишь то, что нужно.. Даже без RunOncle.. Просто скопировать под новым именем, запустить копию, завершить работу инталятора (или от таймера, или при получении команды от запущенной копии), а потом копия удаляет инсталятор..

зы, но мне, как пользователю, не очень то бы понравилось, что во время инсталяции setup.exe ищезает..


 
хз ©   (2003-10-25 17:37) [8]

> зы, но мне, как пользователю, не очень то бы понравилось, что
> во время инсталяции setup.exe ищезает..

А мне вообще не понятно, откуда пошла мода создавать инсталяторы+программы в одном файле. Неужели нельзя пользоваться генераторами? Тот же NSIS, InstalShield, SetupGenerator, наконец. Ведь есть же простое решение - зачем изобретать велосипед?


 
Александр из Минска ©   (2003-10-25 20:59) [9]


> Неужели нельзя пользоваться генераторами?

Нет, т.к. мне надо, чтобы при установке компились и регились библиотечки, создавалось и настраивалось соединение удаленного доступа, запускались (параллельно) инсталляторы других программ.


 
Slavian ©   (2003-10-25 21:06) [10]

if extractfilename<>"Project.exe" then begin
CopyFile("C:\setup.exe,"C:\Project.exe",true)
{далее запускаешь прогу C:\Poject.exe и всё, мне просто не охота писать код запуска, я его не помню!!!}
end else
deletefile("C:\setup.exe");


 
Ihor Osov'yak ©   (2003-10-25 21:23) [11]

2 [10] Slavian © (25.10.03 21:06)

Ты бы, парень, перед тем как сюда писать, проверял бы как оно работает.. И тебе польза бы была..


 
Slavian ©   (2003-10-25 21:39) [12]


> Ihor Osov"yak © (25.10.03 21:23) [11]

ну если че то не работает, сами перепроверьте, мне лень! Я примерный код написал дальше сами!


 
хз ©   (2003-10-26 02:31) [13]

> Я примерный код написал дальше сами!

Настолько примерный, что даже вроде как и к теме не особо относится ;-)


 
Плохиш_   (2003-10-26 03:05) [14]


> Александр из Минска © (25.10.03 20:59) [9]
>
> > Неужели нельзя пользоваться генераторами?
>
> Нет, т.к. мне надо, чтобы при установке компились и регились
> библиотечки, создавалось и настраивалось соединение удаленного
> доступа, запускались (параллельно) инсталляторы других программ.


Ну тут только можно повторить хз © (25.10.03 17:37) [8]
В частности InstallShield всё это с успехом делает.


 
Song ©   (2003-10-26 10:08) [15]

Перед выходом из программы запускай batник, в котором делаешь:

************** bat **************
1:
ren старое.имя новое.имя
IF not Exists новое.имя Goto 1
*********************************

Ну вообщем как-то так, потому что давно MS-DOS я занимался :)


 
DrPass ©   (2003-10-26 11:47) [16]


> > Неужели нельзя пользоваться генераторами?
>
> Нет, т.к. мне надо, чтобы при установке компились и регились
> библиотечки, создавалось и настраивалось соединение удаленного
> доступа, запускались (параллельно) инсталляторы других программ

А как ты думаешь, для чего еще были придуманы генераторы дистрибутивов? Чтобы тупо архив распаковывать? Дык, это ты с WinZip спутал :)



Страницы: 1 вся ветка

Текущий архив: 2003.11.13;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.024 c
1-41531
афвуд
2003-10-28 11:01
2003.11.13
Проблема с методом Popup у PopupMenu


3-40928
Митяй
2003-10-17 16:24
2003.11.13
Фильтрация данных


6-41868
BorH
2003-09-08 22:00
2003.11.13
АПИ и СОКЕТЫ


3-40838
Александр из Минска
2003-10-20 15:53
2003.11.13
Хотелось бы научиться


3-40975
Tumcoat
2003-10-16 04:39
2003.11.13
Удаление временных dbf-файлов