Что нового

Установка приложений по умолчанию

AmadeusEvg

Новичок
Сообщения
2
Репутация
1
Для автоматизации настройки программ по умалчиванию был написан следующий скрипт, но работает он хаотично - то перескочит, то не сработает. Просьба помочь усовершенствовать его работу, чтобы не было ложных срабатываний, т.е. добавить к примеру какие-либо проверки между переходами.

Код:
If @KBLayout=0419 Then Send("#ш"); открываем параметры Windows
If @KBLayout=0409 Then Send("#i");
Sleep(500)
Send("приложения по");поиск по тексту
Sleep(500)
Send("{ENTER}");открываем что нашлось
Sleep(500)
Send("{ENTER}")
Sleep(500)
Send("{TAB 2}")
Sleep(500)
Send("{ENTER}")
Sleep(1000)
Send("{ENTER}");выбираем AIMP
Sleep(2000)
Send("{TAB}");опускаемся вниз
Sleep(500)
Send("{ENTER}")
Sleep(1000)
Send("{ENTER}");выбираем первый пункт FASTSTONE
Sleep(2000)
Send("{TAB}");опускаемся вниз
Sleep(500)
Send("{ENTER}")
Sleep(1000)
Send("{TAB}");опускаемся вниз
Sleep(500)
Send("{ENTER}");выбираем POTPLAYER
Sleep(2000)
Send("{TAB}");опускаемся вниз
Sleep(500)
Send("{ENTER}")
Sleep(1000)
Send("{TAB}");опускаемся вниз
Sleep(500)
Send("{ENTER}");выбираем GOOGLECHROME
Sleep(2000)
WinClose("[CLASS:ApplicationFrameWindow]");закрываем окно
Exit
 

Glass4217

Продвинутый
Сообщения
285
Репутация
50
Не обязательно использовать в такой ситуации эмуляцию действий пользователя, можно пойти немного другим путем, а именно ассоциация файлов через cmd.
таким .bat файлом я сбиваю ассоциации у потенциально опасных исполняемых файлов на пк сотрудников, теперь вместо выполнения скрипта файл откроется в блокноте.
assoc .cmd=txtfile assoc .js=txtfile assoc .CMD=txtfile assoc .vbs=txtfile assoc .com=txtfile assoc .hta=txtfile assoc .bas=txtfile assoc .pif=txtfile assoc .GADGET=txtfile assoc .VBE=txtfile assoc .VB=txtfile assoc .jse=txtfile assoc .SCR=txtfile assoc .wsf=txtfile assoc .wsc=txtfile assoc .wsh=txtfile
так же есть решение через реестр.

попробую накропать вам нужное.
 

Glass4217

Продвинутый
Сообщения
285
Репутация
50
Накропал, 100% не работает на 10ке и выше. на 7ке надо проверять, у меня к сожалению сейчас нет подходящей виртуалки.
данная задача заинтересовала, буду копать)
вот сокращенная редакция кода. по всем заверениям справки операционной системы так должно работать, но.... все не так.
Код:
#include <Array.au3>
#RequireAdmin
;указываем путь до исполняемых файлов программ
Global $Aimp = "D:\Program Files (x86)\AIMP\AIMP.exe"
Global $PotPlayer = "C:\Program Files\DAUM\PotPlayer\PotPlayerMini64.exe"
Global $FSV = "C:\Program Files (x86)\FastStone Image Viewer\FSViewer.exe"
;~ ConsoleWrite($FSV)

Func assoc($filetype,$programm)
   ShellExecute(@ComSpec, ' /c ftype '&$filetype&'="'&$programm&'" "%1"')    ;присваем программе значения типа файлов (audio, video, image )
EndFunc

assoc("audio",$Aimp)
assoc("video",$PotPlayer)
assoc("image",$FSV)

а здесь полный вариант. но по факту он избыточен и совершенно без необходимости такое коромысло городить.
Код:
#include <Array.au3>
#RequireAdmin
;обявляем расширения файлов для программ
Global $ArrayAimp[] = [".AAC", ".AC3", ".APE", ".AIF", ".AIFF", ".AIFC", ".CDA", ".DFF", ".DSF", ".FLA", ".FLAC", ".IT", ".KAR", ".M4A", ".M4B", ".M4R", ".MAC", ".MID", ".MIDI", ".MO3", ".MOD", ".MKA", ".MP+", ".MP1", ".MP2", ".MP3", ".MPGA", ".MPC", ".MTM", ".OFR", ".OFS", ".OGA", ".OGG", ".OPUS", ".RMI", ".S3M", ".SPX", ".TAK", ".TTA", ".UMX", ".WAV", ".W64", ".WMA", ".WV", ".XM", ".ASX", ".AIMPPL", ".AIMPPL4", ".CUE", ".M3U", ".M3U8", ".PLS", ".WAX", ".XSPF", ".ACS2", ".ACS3", ".ACS4", ".ACS5", ".AIMPPACK"]
Global $ArrayPot[] = [".AVI", ".DIV", ".ASF", ".ASX", ".WM", ".WMP", ".WMV", ".WMX", ".WVX", ".M1V", ".M2V", ".MPE", ".MPE", ".MPG", ".TP", ".IFO", ".VOB", ".OGM", ".MKV", ".RM", ".RMV", ".MOV", ".MQV", ".MP4", ".M4V", ".LMP", ".3GP", ".K3G", ".SKM", ".DMS", ".FLV", ".TS", ".TRP", ".NSR", ".MPV", ".MP2", ".TPR", ".OGV", ".M4P", ".M4B", ".3GP", ".3G2", ".3GP", ".RAM", ".RPM", ".QT", ".NSV", ".DPG", ".M2T", ".M2T", ".MTS", ".DVR", ".EVO", ".AMV", ".WEB", ".WTV", ".F4V", ".MXF", ".WAV", ".WMA", ".MPA", ".MP2", ".M1A", ".M2A", ".MP3", ".OGG", ".M4A", ".AAC", ".MKA", ".RA", ".FLA", ".APE", ".MPC", ".MOD", ".AC3", ".EAC", ".DTS", ".DTS", ".WV", ".TAK", ".CDA", ".DSF", ".TTA", ".AIF", ".AIF", ".OPU", ".AMR", ".M3U", ".M3U", ".PLS", ".WAX", ".CUE", ".MPL", ".MPL", ".DPL", ".XSP", ".SMI", ".SRT", ".SUB", ".PSB", ".ASS", ".SSA", ".IDX", ".USF", ".XSS", ".SSF", ".RT", ".SUP", ".VTT", ".SBV", ".TTM", ".pbf"]
Global $ArrayFS[] = [".jpg", ".jpe", ".jpeg", ".bmp", ".gif", ".tif", ".tiff", ".fax", ".png", ".pcx", ".psd", ".wmf", ".tga", ".crw", ".cr2", ".cr3", ".nef", ".orf", ".raf", ".dng", ".mrw", ".pef", ".srf", ".arw", ".rw2", ".webp", ".heic"]
;указываем путь до исполняемых файлов программ
Global $Aimp = "D:\Program Files (x86)\AIMP\AIMP.exe"
Global $PotPlayer = "C:\Program Files\DAUM\PotPlayer\PotPlayerMini64.exe"
Global $FSV = "C:\Program Files (x86)\FastStone Image Viewer\FSViewer.exe"
;~ ConsoleWrite($FSV)

Func assoc($filetype,$programm,$array)
   For $a = 0 To UBound($array) -1
;~       ConsoleWrite($array[$a]& @CRLF)
      ShellExecute(@ComSpec, " /c assoc "&$array[$a]&"="&$filetype&">>D:\log.txt") ;сбиваем ассоциацию файла на нужный нам тип файлов
      sleep(10)
   Next
   ShellExecute(@ComSpec, ' /c ftype '&$filetype&'="'&$programm&'" "%1">>D:\log.txt')    ;присваем программе значения типа файлов
EndFunc

assoc("audio",$Aimp,$ArrayAimp)
assoc("video",$PotPlayer,$ArrayPot)
assoc("image",$FSV,$ArrayFS)

Повторюсь, обе редакции по факту не рабочие, я пока не выяснил причин почему инструмент встроенный в операционную систему не отрабатывает, но в итоге я найду решение. есть пара зацепок.
 
Последнее редактирование:
Автор
A

AmadeusEvg

Новичок
Сообщения
2
Репутация
1
Спасибо Glass4217 за рекомендации, но особо хочу поблагодарить AZJIO, который помог найти идеальное решение – SetUserFTA. Предлагаю итоговый вариант во вложении (исполнительный файл в виде sfx-архива с cfg)
 

Вложения

  • Default_programs.rar
    95.5 КБ · Просмотры: 4
Последнее редактирование:
Верх