Показать полную графическую версию : Как прописать ключи запуска для ярлыка
anton2887
09-04-2017, 15:42
Всем привет, помогите с командой для AutoIt, которая сможет прописать ключи запуска для ярлыка SpeedFan, который создается после установки на рабочем столе (/NOSMARTSCAN /NOPCISCAN). Заранее спасибо.
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)
Я попробовал написать свой первый скрипт для автоматической установки 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 битную систему. У меня все получилось, кроме прописи ключей в свойства ярлыка.
anton2887, ясно. Тем не менее, старайтесь сразу учитывать подобные моменты. И да — MouseClick() использовать следует в совсем уж крайних случаях, когда не работает ни обработка стандартных диалогов и сообщений, ни посылка клавиш.
anton2887
09-04-2017, 21:04
Спасибо Вам большое, буду учитывать на будущее, но этот язык уж очень сложно дается, хотя попробовав-стало интересно. И еще тогда можно вопрос, как вы узнали в какой именно раздел реестра нужно импортировать настройки?
Установил и посмотрел. Только никакого импорта в коде нет. Простой запрос значения параметра.
anton2887, Создание ярлыка с параметрами запуска делайте с помощью FileCreateShortcut
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.