| View previous topic :: View next topic | 
	
	
		| Author | Message | 
	
		| A.N.T. 
 
  
 Joined: 01 Jul 2006
 Posts: 190
 
 
 | 
			
				|  (Separately) Posted: Thu Aug 03, 2006 12:36    Post subject: Посоветуйте прогу... |   |  
				| 
 |  
				| Вобщем мне нужно сделать такой инсталлятор... Что бы он: 1. Добавлял файлы в заданные директории
 2. Добавлял ключи в реестр
 3. Выполнял файл после распаковки
 4. САМОУНИЧТОЖАЛСЯ!!!
 
 Есть ли такая штука.. Мне это нужно для собственного использования, для автоматизации некоторых процессов.
 Сейчас использую Nullsoft Installer и батник
 
 
  	  | Code: |  	  | @echo off
:del_loop
 del my_inst.exe
 if exist my_inst.exe goto del_loop
 del this_file.bat
 | 
 
 Хотелось бы другое что-нибудь, с батником как-то не очень красиво
   Посоветуйте пожалуйста что-нибудь....
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| Batya 
 
  
 Joined: 15 Dec 2004
 Posts: 2229
 Location: Москва, Россия
 
 | 
			
				|  (Separately) Posted: Thu Aug 03, 2006 13:28    Post subject: |   |  
				| 
 |  
				| Инсталлятор не знаю, но все перечисленное можно сделать скриптом. _________________
 Нет, я не сплю. Я просто медленно моргаю.
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| A.N.T. 
 
  
 Joined: 01 Jul 2006
 Posts: 190
 
 
 | 
			
				|  (Separately) Posted: Sat Aug 05, 2006 09:30    Post subject: |   |  
				| 
 |  
				| Неужто нет такой проги, или решения подходящего (хотя скрипт тоже решение, просто хотелось бы, одно целое)   Может есть тут знатоки NSIS? , просто он поддерживает кучу макросов, всяких скриптов которых в хелпе нет, может он self-delete умеет??? Ведь созданный им Uninstaller убивает сам себя
    |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| Volniy 
 
  
 Joined: 15 Dec 2004
 Posts: 585
 Location: Местный
 
 | 
			
				|  (Separately) Posted: Sat Aug 05, 2006 16:03    Post subject: |   |  
				| 
 |  
				|  	  | A.N.T. wrote: |  	  | Ведь созданный им Uninstaller убивает сам себя    | 
 Это не так! Uninstaller создает копию файла во временной папке, а та уже удаляет исходный файл. Это описано в документации.
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| A.N.T. 
 
  
 Joined: 01 Jul 2006
 Posts: 190
 
 
 | 
			
				|  (Separately) Posted: Sat Aug 05, 2006 17:00    Post subject: |   |  
				| 
 |  
				|  	  | Quote: |  	  | Uninstaller создает копию файла во временной папке, а та уже удаляет исходный файл. | 
 
 Понял, это даже в справке написано
   
 
 Люди подскажите в чём может быть проблема..
 В NSIS есть макрос GetExeName..
 
 Из справки:
 
  	  | Quote: |  	  | E.1.9 GetExeName Get installer filename (with valid case for Windows 9X/Me).
 Syntax:
 
 ${GetExeName} $var
 Example:
 
 Section
 ${GetExeName} $R0
 ; $R0="C:\ftp\program.exe"
 SectionEnd
 | 
 
 Как я понял этот макрос получает имя инсталлера
  и привязывает к переменной $R0, не пойму как этим пользоваться, вроде вроде бы всё правильно сделал, скомпилился инсталлер, в параметрах Унинсталлера написал delete $R0 но он не удаляет ничего, в чём проблема?
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| Моторокер 
 
  
 Joined: 06 May 2005
 Posts: 1517
 Location: г. Пермь (читается Перьмь)
 
 | 
			
				|  (Separately) Posted: Wed Aug 09, 2006 12:41    Post subject: |   |  
				| 
 |  
				| Windows программы ведь не могут себя удалять. Чаще всего. _________________
 плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
 ПармаСруб - строительство домов и бань в Перми
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| A.N.T. 
 
  
 Joined: 01 Jul 2006
 Posts: 190
 
 
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| Lamer 
 
 
 Joined: 20 Mar 2006
 Posts: 522
 
 
 | 
			
				|  (Separately) Posted: Wed Aug 09, 2006 18:12    Post subject: |   |  
				| 
 |  
				| На sources.ru ты его видел,этот русский вариант  |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| A.N.T. 
 
  
 Joined: 01 Jul 2006
 Posts: 190
 
 
 | 
			
				|  (Separately) Posted: Wed Aug 09, 2006 18:56    Post subject: |   |  
				| 
 |  
				| Народ подскажите плз как с помощью батника удалить файл(myprog.exe) в текущей директории -> т.е. где сам батник находится. ToLamer
 
 В тему подколол 	  | Quote: |  	  | Не уподобляйтесь fundukу.Пишите Майкрософт,а не Микрософт.И поменьше кидайте призывов.Laughing funduk,привет большевикам Wink да ещё и с английским отливом. Smile
 | 
  |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| Lamer 
 
 
 Joined: 20 Mar 2006
 Posts: 522
 
 
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| A.N.T. 
 
  
 Joined: 01 Jul 2006
 Posts: 190
 
 
 | 
			
				|  (Separately) Posted: Wed Aug 09, 2006 20:05    Post subject: |   |  
				| 
 |  
				| 2Lamer 
  	  | Quote: |  	  | Строчка в батнике 
 
 
 где /q отключает перезапрос: "действительно ли Вы хотите удалить".
 | 
 
 Не до такой степени я и ламер, чтоб не знать этого
   
 Этот вариант мне не подходит вот почему:
 Ставил xPize что то вроде темы для XP - тк вот она пофиксила в реестре параметры командной строки фон - вместо чёрного синий и т.д. и самое главное изменила путь по умолчанию к текущей папке, на C:\WINDOWS, таким образом, если я выполню del *.exe то все экзешники из %windir% удалятся
  , я стал жертвой делита  .... Мне нужно, что бы например, создавалась переменная, в которой указывался б путь к текущей директории, ну и потом я выполнил что то вроде del %dir%\myprog.exe 
 А русскую статейку я видел тут http://deadbeef.narod.ru/work/articles/selfdel.htm
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| Lamer 
 
 
 Joined: 20 Mar 2006
 Posts: 522
 
 
 | 
			
				|  (Separately) Posted: Wed Aug 09, 2006 20:28    Post subject: |   |  
				| 
 |  
				| По-моему ты слишком мудришь. Любая команда командного интерпретатора сначала пытается производить операции над файлами в директории,из которой была запущена и только если не находит,анализирует системную переменную окружения PATH. Т.е. ничего лишнего она тебе не удалит.Если сомневаешься, попробуй накидать в свою папку м папку Windows файлов типа *.bla и выполни del *.bla. А зачем тебе вообще понадобилось пользоваться таким шаблоном *.exe? Почему не конкретно myprog.exe? Ну или списком ,если их несколько.
 Ну и в конце концов можно просто прописать полный путь.Т.е. не del myprog.exe , a del c:\myfolder\subfolderofmyfolder\myprog.exe
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| A.N.T. 
 
  
 Joined: 01 Jul 2006
 Posts: 190
 
 
 | 
			
				|  (Separately) Posted: Wed Aug 09, 2006 20:41    Post subject: |   |  
				| 
 |  
				| Спасибо и на этом... Со *.exe просто привёл пример... Давно не помню зачем мне это было нужно....
 А решение я уже нашел
   
 
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| StrangeRRor 
 
  
 Joined: 15 Jul 2006
 Posts: 214
 
 
 | 
			
				|  (Separately) Posted: Wed Aug 09, 2006 20:45    Post subject: |   |  
				| 
 |  
				| Предлагаю такое решение: 
  	  | Code: |  	  | @echo off
set path=%~dp0
 del %path%*.exe
 
 | 
 Если хочется, можно добавить /q.
 Переменная %0 в bat-файле соответствует нулевому аргументу командной строки, т.е. имени самого файла, %~d1-разворачивает %1 в букву диска,         %~p1-разворачивает %1 в путь. %~dp1-разворачивает %1 в букву диска и путь. Таким образом, сочетание %~dp0 будет раскрыто в полный путь к каталогу, где находится сценарий.
 З.Ы. Правда, при этом уничтожается и сам bat-файл.
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| A.N.T. 
 
  
 Joined: 01 Jul 2006
 Posts: 190
 
 
 | 
			
				|  (Separately) Posted: Wed Aug 09, 2006 20:57    Post subject: |   |  
				| 
 |  
				| StrangeRRor 
 Твой способ не работает если папка, в которой находится батник названа русскими буквами или в имени имеются пробелы или слишком длинное имя....
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		|  |