Войти

Показать полную графическую версию : Как прописать ключи запуска для ярлыка


anton2887
09-04-2017, 15:42
Всем привет, помогите с командой для AutoIt, которая сможет прописать ключи запуска для ярлыка SpeedFan, который создается после установки на рабочем столе (/NOSMARTSCAN /NOPCISCAN). Заранее спасибо.

Iska
09-04-2017, 16:07
anton2887, на каком именно Рабочем столе создаётся ярлык при установке — на Общем или Пользовательском? Какое имя носит файл ярлыка?

anton2887
09-04-2017, 17:08
На пользовательском рабочем столе. Имя ярлыка SpeedFan. Я попробовал написать свой первый скрипт для автоматической установки speedFan. Когда программа устанавливается, то в папку кидаются файлы конфигурации, но мне нужно прописать ключи запуска для этой программы, чтобы она быстрее загружалась.
#RequireAdmin

AutoItSetOption('MouseCoordMode', 0)

Run(@ScriptDir & "\SpeedFan 4.52 Final.exe")

WinWaitActive("SpeedFan Setup: License Agreement")
MouseClick("primary", 376, 270, 1, 0)

WinWaitActive("SpeedFan Setup: Installation Options")
MouseClick("primary", 374, 269, 1, 0)

WinWaitActive("SpeedFan Setup: Installation Folder")
MouseClick("primary", 376, 269, 1, 0)

WinWaitActive("SpeedFan Setup: Completed")
MouseClick("primary", 377, 268, 1, 0)

FileCopy("D:\speed\speedfanevents.cfg", "C:\Program Files (x86)\SpeedFan", 0)
FileCopy("D:\speed\speedfanparams.cfg", "C:\Program Files (x86)\SpeedFan", 0)
FileCopy("D:\speed\speedfansens.cfg", "C:\Program Files (x86)\SpeedFan", 0)

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

В данном случае вообще нет никакой нужды в играх с кнопконажимательством, поскольку инсталлятор NSIS предусматривает штатный способ «тихой» установки — Common Options (http://nsis.sourceforge.net/Docs/Chapter3.html#installerusagecommon):
"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)

anton2887
09-04-2017, 18:57
Это мой первый скрипт, осваиваю это дело пару дней и делаю только для собственного компьютера, использую только x64 битную систему. У меня все получилось, кроме прописи ключей в свойства ярлыка.

Iska
09-04-2017, 19:03
anton2887, ясно. Тем не менее, старайтесь сразу учитывать подобные моменты. И да — MouseClick() использовать следует в совсем уж крайних случаях, когда не работает ни обработка стандартных диалогов и сообщений, ни посылка клавиш.

anton2887
09-04-2017, 21:04
Спасибо Вам большое, буду учитывать на будущее, но этот язык уж очень сложно дается, хотя попробовав-стало интересно. И еще тогда можно вопрос, как вы узнали в какой именно раздел реестра нужно импортировать настройки?

Iska
09-04-2017, 21:32
Установил и посмотрел. Только никакого импорта в коде нет. Простой запрос значения параметра.

-TRM-
14-06-2017, 11:55
anton2887, Создание ярлыка с параметрами запуска делайте с помощью FileCreateShortcut




© OSzone.net 2001-2012