Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата anton2887:
Я попробовал написать свой первый скрипт для автоматической установки speedFan. »
Не вполне удачно попробовали. Почему "Program Files (x86)"? А если установка будет производиться на x86 ОС, тогда что?

В данном случае вообще нет никакой нужды в играх с кнопконажимательством, поскольку инсталлятор NSIS предусматривает штатный способ «тихой» установки — Common Options:
Код: Выделить весь код
"instspeedfan452.exe" /S
В общем и целом это может выглядеть примерно так:
Скрытый текст
Код: Выделить весь код
#pragma compile(ExecLevel, requireAdministrator)
#pragma compile(x64, false)


#include <FileConstants.au3>
#include <File.au3>


AutoItSetOption("MustDeclareVars", 1)


Local $sSourceFile = _PathFull("instspeedfan452.exe", @ScriptDir)
Local $aConfigFiles = ["speedfanevents.cfg", "speedfanparams.cfg", "speedfansens.cfg"]
Local $sFile

Local $sInstallPath


If FileExists($sSourceFile) Then
	If RunWait("""" & $sSourceFile & """ /S") = 0 Then
		$sInstallPath = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\SpeedFan", "")

		For $sFile In $aConfigFiles
			$sSourceFile = _PathFull($sFile, @ScriptDir)

			If FileExists($sSourceFile) Then
				FileCopy($sSourceFile, $sInstallPath & "\")
			Else
				ConsoleWriteError("Can't find source file [" & $sSourceFile & "]." & @CRLF)
			EndIf
		Next

		With ObjCreate("WScript.Shell").CreateShortcut(_PathFull("SpeedFan.lnk", @DesktopDir))
			.Arguments = "/NOSMARTSCAN /NOPCISCAN"
			.Save()
		EndWith
	Else
		ConsoleWriteError("Can't install SpeedFan 4.52 correctly." & @CRLF)
		Exit(2)
	EndIf
Else
	ConsoleWriteError("Can't find source file [" & $sSourceFile & "]." & @CRLF)
	Exit(1)
EndIf

Exit(0)
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:35, 09-04-2017 | #4