Показать полную графическую версию : Вопросы По WPI
Аааа..., что-то грустно совсем... Вобщем, вот с 2884,
Надо найти на просторах инет файл mshta.exe или скопировать с другой винды (на крайний случай прикрепляю к сообщению) и кинуть его в системный раздел WINDOWS\system32. Для своей сборки, как советовал мне stasys44, я бросил этот файл в папку с WPI.hta и запускаю install.cmd: start /wait "%wpipath%\mshta.exe" WPI.hta. » тоже запарка.......
Значится, попробовал запускать из вот такого@echo off
FOR %%d IN (c d e f g h i j k l m n o p q r s t u v w x y z) DO IF EXIST %%d:\WIN51 SET CDROM=%%d:
start /wait "%CDROM%\WPI\mshta.exe" WPI.hta
exit, но на Т-13 прилетает птичка обломинго с сообщением "Windows не удалось найти 'WPI.hta'. Проверьте, что имя было введено правильно..." и т.д. При этом, и WPI.hta и mshta.exe лежат рядом, в одной папке %CDROM%\WPI\
Что же делать? Как запустить WPI?
Возможно дело в рабочей директории, попробуйте так:
@echo off
FOR %%d IN (c d e f g h i j k l m n o p q r s t u v w x y z) DO IF EXIST %%d:\WIN51 SET CDROM=%%d:
start /wait /D "%CDROM%\WPI" "%CDROM%\WPI\mshta.exe" "WPI.hta"
exit
ключ /D указывает на рабочую директорию.
а вообще я использую другой скрипт для запуска HTA файлов:
@ECHO OFF
TITLE %~n0
IF EXIST "%~dpn0.HTA" (
ECHO START %~n0.HTA
START /WAIT "%~n0" /D "%~dp0" "%WINDIR%\SYSTEM32\MSHTA.EXE" "%~dpn0.HTA"
)
EXIT /B
коммандный файл должен называться также как и HTA файл т.е. "WPI.cmd"
-SK-, коммандный файл должен называться также как и HTA файл т.е. "WPI.cmd" »
ммм..., а расположить его (ком.файл) можно где угодно? Или он должен быть в той же папке где и .hta ?
должен быть в той же папке
S.T.R.E.L.O.K.
04-06-2009, 19:37
хммм... странно, у меня вообще идёт просто запуск файла mshta.exe, а последующего запуска hta файла таким образом вообще не происходит.
Наблюдаю у себя интересную вещь с WPI. На винде с которой я сейчас пишу это сообщение WPI запускается на ура из RunOnceEx. Когда я ставлю винду на другой веник то WPI запускается после загрузки рабочего стола. Как я заметил, это происходи из за того, что на моей винде, которую я ставлю, почему то процесс mshta.exe при запуске WPI запускается ДВА раза, а на винде что стоит ОДИН раз. То есть получается, когда из RunOnceEx запускается WPI, то винда видя что mshta.exe исчезает из диспетчера задач на секунду начинает грузить рабочий стол, и в это же время mshta.exe снова появляется и грузит WPI. У кого нибудь подобное наблюдается? Есть ли решение против двойного запуска mshta.exe?
Решил свою проблему. Возможно еще кому поможет. Сейчас WPI запускается у меня на ура. Для этого на 13 минуте у меня срабатывает автоит скрипт содержания:
#NOtrayIcon
#include <GuiConstantsEx.au3>
#include <ComboConstants.au3>
;
$sWPI_Drives = ""
$sSel_Drive = ""
$sFirst_Drive = ""
$sKey = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx"
$aDrives = DriveGetDrive("All")
RegWrite($sKey &"\910", "1", "REG_SZ", "REGEDIT /S " & @HomeDrive & "\HKLM.reg")
RegWrite($sKey &"\920", "" , "REG_SZ", "Перезагрузка...")
RegWrite($sKey &"\920", "1", "REG_SZ", "hidcon.exe Shutdown -r -f -t 0")
RegWrite($sKey &"\995", "1", "REG_SZ", @HomeDrive & "\WPI.exe")
;=============================================================================
For $i = 1 To $aDrives[0]
If DriveStatus($aDrives[$i]) <> "READY" Then ContinueLoop
If FileExists($aDrives[$i] & "\WPI\WPI.hta") Then
If $sWPI_Drives = "" Then $sFirst_Drive = $aDrives[$i]
$sWPI_Drives &= StringUpper($aDrives[$i]) & "|"
EndIf
Next
$sWPI_Drives = StringRegExpReplace($sWPI_Drives, "\|+$", "")
If StringInStr($sWPI_Drives, "|") Then
$hGUI = GUICreate("Выберите диск запуска WPI", 240, 50)
$Drives_Combo = GUICtrlCreateCombo("", 20, 20, 40, 20, $CBS_DROPDOWNLIST)
GUICtrlSetData(-1, $sWPI_Drives, $sFirst_Drive)
$OK_Button = GUICtrlCreateButton("OK", 80, 19, 60, 25)
$Cancel_Button = GUICtrlCreateButton("Cancel", 160, 19, 60, 25)
GUISetState(@SW_SHOW, $hGUI)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE, $Cancel_Button
Exit
Case $OK_Button
$sSel_Drive = GUICtrlRead($Drives_Combo)
ExitLoop
EndSwitch
WEnd
ElseIf $sWPI_Drives <> "" Then
$sSel_Drive = $sWPI_Drives
EndIf
If $sSel_Drive <> "" Then RegWrite($sKey & "\999", "1", "REG_SZ", $sSel_Drive & "\WPI\WPI.exe")
Скрипт можно конечно же упростить. Но главное что он делает выделил. То есть на 995 ключ назначается запуск самоудоляющегося файла с диска С (естественно он там должен уже быть) который вносит в реестр:
Reg Add "HKCU\Software\Microsoft\Internet Explorer\Main" /v Disable Script Debugger /d "no" /F >Nul
Reg Add "HKCU\Software\Microsoft\Internet Explorer\Main" /v DisableScriptDebuggerIE /d "no" /F >Nul
exit
и только потом с ключа 999 запускается WPI. Также скрипт заменяет x-Reset от горы и перегружает комп. Без перезагрузки не тестил.
в принципе можно еще проще. Используя скрипт -SK- можно так:
Reg Add "HKCU\Software\Microsoft\Internet Explorer\Main" /v Disable Script Debugger /d "no" /F >Nul
Reg Add "HKCU\Software\Microsoft\Internet Explorer\Main" /v DisableScriptDebuggerIE /d "no" /F >Nul
@ECHO OFF
TITLE %~n0
IF EXIST "%~dpn0.HTA" (
ECHO START %~n0.HTA
START /WAIT "%~n0" /D "%~dp0" "%WINDIR%\SYSTEM32\MSHTA.EXE" "%~dpn0.HTA"
)
EXIT /B
а запуск данного CMD в 999 ключ вносить любым удобным способом.
Ошибочка. В обоих моих сообщениях параметр "Disable Script Debugger" нужно брать в кавычки
denis121991
15-06-2009, 22:09
Такой вопрос, если взять программы wpi взятые с одной сборки поставить на другую то глючить не будет ?
Dmitrijan
15-06-2009, 23:08
По идее нет :) Но надо внимательно переносить, чтоб не пропустить все папки связанные с WPI . Ну и в самой сборке запуск WPI прописать. А если запуск где-то уже прописан, то посмотреть совпадают ли пути к wpi.hta.
Cibersoft Prolex
16-06-2009, 00:02
denis121991
Такой вопрос, если взять программы wpi взятые с одной сборки поставить на другую то глючить не будет ? »
Нет, не будет, если Вы правильно все сделаете.
Нужно взять программы из папки WPI - "Install" и перенести их в аналогичную папку Вашего WPI, при этом, если все программы поддержуют "тихую" инсталляцию, необходимо просто прописать в настрайках WPI адресацию к ним, если программы не поддерживают "тихую" инсталляцию, то можно:
1). Сделать к ним "тихие" инсталляторы.
2). Или воспользоваться приложением WPI, для автоматичной подборки ключей "тихой" инсталляции. (Не помню как называется)
Dmitry_K
16-06-2009, 00:18
при этом, если все программы поддержуют "тихую" инсталляцию, необходимо просто прописать в настрайках WPI адресацию к ним, если программы не поддерживают "тихую" инсталляцию, то можно:
1). Сделать к ним "тихие" инсталляторы.
2). Или воспользоваться приложением WPI, для автоматичной подборки ключей "тихой" инсталляции. (Не помню как называется) »
слишком долго, проще дополнительно перенести или всю папку WPIScripts или возможно будет достаточно перенести файл WPIScripts\config.js, в котором и хранятся пути к программам и ключи для их тихой установки
p.s. опять же надо все "это дело" тестировать
Dmitrijan
16-06-2009, 00:30
Приложение называется USSF, расположено оно по такому пути : WPI\Tools\
здраствуйте , я конечно понимаю что вопрос наверное уже был задан раз 100,но всё-же..
елси программа USSF не находит ключ к инсталяшке,то что делать? у меня она не находит ключи к большинству..
Cibersoft Prolex
19-06-2009, 00:42
onedal
Гляньте эту (http://forum.oszone.net/thread-63218.html) тему.
Поищите решения "тихой" установке программ на этом (http://forum.oszone.net/forum-61.html) форуме.
Ознакомьтесь с этой (http://www.oszone.net/2766) темой.
Cibersoft Prolex
19-06-2009, 18:38
onedal
У нас на форуме спасибо говорится кнопкой "Полезное сообщение":)
denis52261
26-06-2009, 20:34
Здравствуйте, я хочу сделать тихий инстал, какой програмой можно отследить куда были скопированы файлы установленной программой, чтоб в последствии их собрать и создать из них тихий инстал!
Habetdin
26-06-2009, 20:44
denis52261, отслеживайте с помощью FileMon (http://soft.oszone.net/program/2370/FileMon/)
Но лучше использовать оригинальные установщики, запуская их с ключами для тихой установки
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC