Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Автоматическая установка приложений (http://forum.oszone.net/forumdisplay.php?f=61)
-   -   [решено] Команды после установки (http://forum.oszone.net/showthread.php?t=241821)

бУРов 01-09-2012 23:30 1981340

Команды после установки
 
Нужно после установки приложения скопировать ярлык приложения в автозагрузку.
Так и не пойму возможно ли и как выполнить команды после установки приложения.

бУРов 02-09-2012 01:17 1981371

Но куда этот код поместить?

boss911 02-09-2012 01:28 1981374

Цитата:

Цитата бУРов
куда этот код поместить? »

Автоматическая установка Windows XP

Примеры установки приложений
Пакетные и командные файлы (*. bat и *.cmd)
Создание SFX архива
Мeтод svcpack.inf
RunOnceEx
Запуск RunOnceEx с CD
$OEM$ директории
CMDLINES.TXT

Изучайте и выбирайте.

бУРов 02-09-2012 02:08 1981384

Есть пара файлов
- App.MSI
- Setup.exe
Созданы в VS
Я не нашел опций, куда поместить код.
Я просто нажимаю на App.MSI или на Setup.exe

А тут более сложные варианты запуска

Вот правда sfx-архив что-то подходящее

boss911 02-09-2012 04:19 1981394

Запакуйте дистрибутив в SFX с распаковкой во временную папку, укажите, какой файл после распаковки запустить (exe или msi), а так же укажите запуск VBS скрипта (он вам создаст ярлык в нужном вам месте).

Код:

Set Shell = CreateObject("WScript.Shell")
StartupPath = Shell.SpecialFolders("Startup")
Set link = Shell.CreateShortcut(StartupPath & "\TEST.lnk")
link.Arguments = ""
link.Description = "Test Shortcut"
link.HotKey = "CTRL+ALT+SHIFT+X"
link.IconLocation = "%ProgramFiles%\MyProg\app.exe,0"
link.TargetPath = "%ProgramFiles%\MyProg\app.exe"
link.WindowStyle = 1
link.WorkingDirectory = "%ProgramFiles%\MyProg "
link.Save

- редактируем параметры под себя и сохраняем файл с расширением VBS.

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

Dodj16 03-09-2012 13:05 1982115

Вариант А: при инсталяции создается запись в реестре на автозапуск нужного вам приложения
Отредактировать в msi файле таблицу Registry путем добавления новой строки с параметрами
Registry: NameOfYourRegEntry - имя вашей новой записи в данной таблице
Root: 2 для записи в HKLM или 1 для HKCU
Key: Software\Microsoft\Windows\CurrentVersion\Run
Name: ProductName - имя собственное нарицательное
Value: "[INSTALLDIR]Application.exe" -путь к исполняемому файлу. Путь можно указать и хардлинком "c:\Program Files\Install dir\Application.exe"
Component_: Component name - имя компонента, при инсталяции которого данная реестровая запись будет внесена в реестр. Если планируете писать в HKLM найдите компонент к которому привязан ваш исполняймый файл, если в HKCU то найдите любую запись в таблице Registry с Root= 1 и возьмите Component name оттуда- в большинстве случаев будет работать.
Для нахождения к какому компаненту привязан ваш ЕХЕ, таблица File смотрите связку Component_ - FileName.

В варианте Б, запись добавляется в таблицу Shortcut. Если будет интересно-спрашивайте, распишу подробней.

бУРов 03-09-2012 13:13 1982120

Цитата:

Цитата boss911
Совсем подзабыл, ведь средства SFX позволяют создать ярлык в автозагрузке. »

Позволять-то позволяют, но нет возможности запустить в полноэкранном режиме, только обычный ((
Я сейчас как раз SFX разбираю.

Цитата:

Цитата Dodj16
Отредактировать в msi файле таблицу Registry »

А как эта таблица редактируется ? В Visual Studio?

Dodj16 03-09-2012 13:18 1982123

InstED или Orca

Первый более usability

boss911 03-09-2012 14:23 1982155

Цитата:

Цитата бУРов
но нет возможности запустить в полноэкранном режиме, только обычный »

Приведений мною скрипт выше это позволяет сделать (WindowStyle = 3). Что не так?

бУРов 03-09-2012 14:36 1982162

[q=boss911]Приведений мною скрипт выше это позволяет сделать »[/Мое незнание VB (( Кстати у меня всегда было мнение что для VB-скриптов нужны доп-модули. Я не прав?

Цитата:

Цитата Dodj16
Вариант А: ... »

Интересная возможность, но тут ручная работа.

Dodj16 03-09-2012 15:45 1982201

Если добавите скрины для таблиц Shortcut, Registry, File , то можно разжевать сразу на примерах.

бУРов 03-09-2012 16:03 1982210

А Registry нет ((

boss911 03-09-2012 16:05 1982212

Цитата:

Цитата бУРов
Я не прав? »

Не правы. Что мешает запустить этот скрипт и посмотреть в автозагрузку? Мне кажется ваши знания позволяют скопировать текст в блокнот и сохранить файл с расширение VBS, остается его потом только запустить. Отредактировать скрипт, подставив ваши пути, то же думаю не сложно.

бУРов 03-09-2012 16:34 1982229

Работает кажется

бУРов 03-09-2012 17:02 1982243

Похоже путь полный нужен

K.A.V. 03-09-2012 17:07 1982245

Цитата:

Цитата бУРов
RunProgram="tuning.vbs" »

Вы не приложение исполняете...
Указывайте исполнение wscript.exe (он в системной директории) и ссылайтесь на ваш файл, вот так:

Код:

wscript.exe "путь к файлу\tuning.vbs"

бУРов 03-09-2012 17:21 1982255

Да. Уже понял. Снмаю шляпу.

Цитата:

Цитата K.A.V.
wscript.exe "путь к файлу\tuning.vbs »

А зачем wscscript? Вот так - "путь к файлу\tuning.vbs" - тоже работает.

Попробую ответить сам себе что ли. Видимо не всегда можно ожидать, что в системе настроена связь по типу.

бУРов 03-09-2012 19:07 1982309

Господа! Если уж на то пошло, давайте доделаем работу.
Дело в том, что нужно вызывать приложение развернутым на весь экран.

Iska 03-09-2012 19:24 1982322

Цитата:

Цитата бУРов
Дело в том, что нужно вызывать приложение развернутым на весь экран. »

Цитата:

Цитата boss911
Код:

link.WindowStyle = 1
»

Замените «1» на «3»: WindowStyle Property.

А вообще:
Цитата:

Цитата Shell Link (.LNK) Binary File Format
ShowCommand (4 bytes): A 32-bit unsigned integer that specifies the expected window state of an application launched by the link. This value SHOULD be one of the following.

Value Meaning
SW_SHOWNORMAL (0x00000001) The application is open and its window is open in a normal fashion.
SW_SHOWMAXIMIZED (0x00000003) The application is open, and keyboard focus is given to the application, but its window is not shown.
SW_SHOWMINNOACTIVE (0x00000007) The application is open, but its window is not shown. It is not given the keyboard focus.

All other values MUST be treated as SW_SHOWNORMAL.


бУРов 03-09-2012 19:33 1982329

Цитата:

Цитата Iska
Замените «1» на «3» »

Точно, уже и сам допер!

boss911 04-09-2012 01:51 1982533

Цитата:

Цитата бУРов
нужно вызывать приложение развернутым на весь экран. »

Вы не внимательны:
Цитата:

Цитата boss911
Приведений мною скрипт выше это позволяет сделать (WindowStyle = 3). »


Iska 04-09-2012 09:54 1982659

boss911, увы, не только он :(.

бУРов 14-09-2012 10:10 1988458

Нашел возможность в самом Visual Studio при создании MSI-пакета создавать ярдык в автозагрузке. Можно управлять и размером окна. Это удобно еще и тем, что при деинсталляции, он также удаляется.

Если нажать правой кнопку во вкладке "Файловая система", можно "Добавить специальную папку".

Вот только что-то в моей системе случилось. MSI-пакет исполняется.
Но в меню "Автозагрузка" ярлык не появляется.
В журналах тоже все чисто.

Как понять, где тут засада?


Время: 15:46.

Время: 15:46.
© OSzone.net 2001-