Здравствуйте
Помогите скриптом автоит назначить расширениям jpg, bmp - программу для открытия по-умолчанию "C:\AVT 2\Paint.NETPortable\Paint.NETPortable.exe"
Перерыл весь форум но ничего подходящего не нашел.
При нестандартных именах типов ассоциаций (а их можно проверить командой assoc в командной строке), подставить другие имена, при отсутствии назначений, сначала той же командой assoc назначить имена.
Код:
assoc .jpg &:: Проверка командной строкой, назначено ли имя типа файла расширению jpg
assoc .bmp &:: Проверка командной строкой, назначено ли имя типа файла расширению bmp
По желанию можно такую проверку выполнить тоже подобным скриптом Autoit. Если имена типов файлов присутствуют, но отличные от тех, что в скрипте, то просто в скрипт подставляются другие имена. Если имена типов фалов вообще не назначены, то скрипт сначала должен их назначить.
Теоретически возможен также вариант, что для двух требующихся расширений ситуация различна. Понятно, что требуется сделать в таких случаях, но всё становится сложнее, если проверку ситуации нужно заготовить для скрипта автоматически на все случаи жизни, а не проделать вручную. Если такая потребность реально возникнет, то можно и над такой задачкой подумать. Для этого можно, например, перенаправлять вывод в файл, откуда легко считывать и обрабатывать.
$sText='"C:\AVT 2\Paint.NETPortable\Paint.NETPortable.exe" %1'$sText1="ftype jpg="&$sText; ошибочно сначала было "assoc" вместо "ftype"$sText2="ftype bmp="&$sTextRunWait(@ComSpec&" /c "&$sText1)RunWait(@ComSpec&" /c "&$sText2)
Пробую параллельно у себя переназначить другое расширение. Вспомнилось, что команда ftype требует #RequireAdmin в скрипте, но почему-то открытие файла стало зацикливаться на этапе согласия на открытие своей программой, поэтому неплохо бы уметь вернуть назад, если произойдёт то же самое.
А права администратора запрашивались? Были выданы скрипту по запросу?
Сообщение автоматически объединено:
Как по мне, проще такие задачи решать BAT-файлами, а не в AutoIt. Да и отладка была бы попроще: прямо командной строкой из консоли. Нужно всего лишь изучить две команды: assoc и ftype.
Так как же сменить скриптом программу по-умолчанию для файлов ?
Сообщение автоматически объединено:
Здравствуйте
Помогите скриптом автоит назначить расширениям jpg, bmp - программу для открытия по-умолчанию "C:\AVT 2\Paint.NETPortable\Paint.NETPortable.exe"
Перерыл весь форум но ничего подходящего не нашел.
если вин 10, то никак. с текстовыми файлами проходит назначение, а вот с картинками и звуками проблема. запрет записи в реестр, к тому же, в десятке пишется хэш-ключ приложения.
короче, в инете я не нашел решения.
если вин 10, то никак. с текстовыми файлами проходит назначение, а вот с картинками и звуками проблема. запрет записи в реестр, к тому же, в десятке пишется хэш-ключ приложения.
короче, в инете я не нашел решения.
Или вот эта строчка:
REG ADD "HKLM\SOFTWARE\HamsterSoft\HamsterPDFReader\Capabilities\FileAssociations" /v ".djvu" /t REG_SZ /d "HamsterPDFReader.AssocFile.djvu" /f
Чем ее заменить ?
Откуда взят вот этот адрес?
HKLM\SOFTWARE\HamsterSoft\HamsterPDFReader\Capabilities\FileAssociations
#RequireAdmin$sAppPath='C:\AVT 2\Paint.NETPortable\'$sAppName='Paint.NETPortable'$sAppExe=$sAppPath&$sAppName&'.exe'_RegSetFileExt('jpg',$sAppExe&' %1','Open With '&$sAppName,True,$sAppExe,'JPG File')_RegSetFileExt('bmp',$sAppExe&' %1','Open With '&$sAppName,True,$sAppExe,'BMP File'); #FUNCTION# ====================================================================================================================; Name ..........: _RegSetFileExt; Description ...: Registers a file type in Explorer.; Syntax ........: _RegSetFileExt($sExt, $sCommand, $sVerb[, $fDefault = False[, $sIcon = ""[, $sDescription = ""]]]); Parameters ....: $sExt - File Extension without period eg. "zip".; $sCommand - Program path with arguments eg. (%1 is 1st argument, %2 is 2nd, etc.).; $sVerb - Name of action to perform on file, eg. "Open with ProgramName" or "Extract Files".; $fDefault - [optional] If True, Action is the default action for this filetype. Default is False.; If the file is not already associated, this will be the default.; $sIcon - [optional] Default icon for filetype including resource # if needed; eg. "C:\test\testprog.exe,0" or "C:\test\filetype.ico".; Default is "".; $sDescription - [optional] File Description eg. "Zip File" or "ProgramName Document". Default is "".; Return values .: 1.; Author ........: G.Sandler; Modified ......: ; Remarks .......: ; Related .......: ; Link ..........: ; Example .......: No; ===============================================================================================================================Func_RegSetFileExt($sExt,$sCommand,$sVerb,$fDefault=False,$sIcon="",$sDescription="")Local$sExtRead=RegRead("HKCR\."&$sExt,"")If@errorThenRegWrite("HKCR\."&$sExt,"",$g_REGTYPE_REG_SZ,$sExt&"file")$sExtRead=$sExt&"file"EndIfLocal$sCurrentDescription=RegRead("HKCR\"&$sExtRead,"")If@errorThenIf$sDescription<>""ThenRegWrite("HKCR\"&$sExtRead,"",$g_REGTYPE_REG_SZ,$sDescription)ElseIf$sDescription<>""And$sCurrentDescription<>$sDescriptionThenRegWrite("HKCR\"&$sExtRead,"",$g_REGTYPE_REG_SZ,$sDescription)RegWrite("HKCR\"&$sExtRead,"olddesc",$g_REGTYPE_REG_SZ,$sCurrentDescription)EndIfIf$sCurrentDescription=""And$sDescription<>""ThenRegWrite("HKCR\"&$sExtRead,"",$g_REGTYPE_REG_SZ,$sDescription)EndIfLocal$sCurrentVerb=RegRead("HKCR\"&$sExtRead&"\shell","")Local$iError=@errorIf$fDefaultThenRegWrite("HKCR\"&$sExtRead&"\shell\Open\Command","",$g_REGTYPE_REG_EXPAND_SZ,$sCommand)If$iErrorThenRegWrite("HKCR\"&$sExtRead&"\shell","",$g_REGTYPE_REG_SZ,$sVerb)ElseRegWrite("HKCR\"&$sExtRead&"\shell","",$g_REGTYPE_REG_SZ,$sVerb)RegWrite("HKCR\"&$sExtRead&"\shell","oldverb",$g_REGTYPE_REG_SZ,$sCurrentVerb)EndIfEndIfLocal$sCurrentCommand=RegRead("HKCR\"&$sExtRead&"\shell\"&$sVerb&"\command","")IfNot@errorThenRegRead("HKCR\"&$sExtRead&"\shell\"&$sVerb&"\command","oldcmd")If@errorThenRegWrite("HKCR\"&$sExtRead&"\shell\"&$sVerb&"\command","oldcmd",$g_REGTYPE_REG_SZ,$sCurrentCommand)EndIfRegWrite("HKCR\"&$sExtRead&"\shell\"&$sVerb&"\command","",$g_REGTYPE_REG_SZ,$sCommand)If$sIcon<>""ThenLocal$sCurrentIcon=RegRead("HKCR\"&$sExtRead&"\DefaultIcon","")If@errorThenRegWrite("HKCR\"&$sExtRead&"\DefaultIcon","",$g_REGTYPE_REG_SZ,$sIcon)ElseRegWrite("HKCR\"&$sExtRead&"\DefaultIcon","",$g_REGTYPE_REG_SZ,$sIcon)RegWrite("HKCR\"&$sExtRead&"\DefaultIcon","oldicon",$g_REGTYPE_REG_SZ,$sCurrentIcon)EndIfEndIfReturn1EndFunc;==>_RegSetFileExt