|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Открытие фото программой по-умолчанию и размещение его в определенном месте экрана |
|
Открытие фото программой по-умолчанию и размещение его в определенном месте экрана
|
Новый участник Сообщения: 1 |
Профиль | Отправить PM | Цитировать Добрый вечер.
Помогите решить проблему. Хотел заставить скрипт Автоит - открывать фото-файлы jpg - программой по-умолчанию и размещать его в определенном месте экрана (задав размеры окна этой программы). По идее я хотел, чтобы программа открывала фото-файл, затем размещала его в определенной части монитора, затем устанавливала определенные размеры окна. (Адрес папки с файлами C:\111111 ) (Координаты расположения программы: 100,200 (примерно левый верхний угол). (Размеры окна (программы по-умолчанию) 200х150. ) Подскажите - как подправить код, чтобы он открывал файлы jpg - как я описал ? #include <File.au3> #include <WinAPIReg.au3> #include <WinAPIProc.au3> Local $sDir = 'C:\111111' ; Папка Local $sFileType = '*.jpg' ; Расширение файла для поиска Local $aPos[4] = [100, 200, 200, 150] ; Координаты окна программы Local $hWnd, $aFiles, $sRunProgram, $iPID, $hTimer, $aProgWindows, $sRunFile $aFiles = _FileListToArrayRec($sDir, $sFileType, $FLTA_FILES, $FLTAR_NORECUR, $FLTAR_NOSORT, $FLTAR_FULLPATH) If @error Then Exit -1 $sRunFile = $aFiles[0] > 1 ? $aFiles[Random(1, $aFiles[0], 1)] : $aFiles[1] $sRunProgram = _WinAPI_AssocQueryString(StringRight($sRunFile, 4), $ASSOCSTR_EXECUTABLE) ; Редактор по умолчанию, ассоциированный в ОС с данным типом If @error Or StringRight($sRunProgram, 4) = '.dll' Then Exit -2 $iPID = Run('"' & $sRunProgram & '" "' & $sRunFile & '"') If Not $iPID Then Exit -3 $hTimer = TimerInit() Do ; $aProgWindows = _WinAPI_EnumProcessWindows($iPID) If Not @error Then For $i = 1 To $aProgWindows[0][0] If WinActive($aProgWindows[$i][0]) Then $hWnd = $aProgWindows[$i][0] $aProgWindows = '' ExitLoop 2 EndIf Next Sleep(200) EndIf Until TimerDiff($hTimer) > 5000 ; Ждем ~ 5 секунд If Not $hWnd Then Exit -4 WinMove($hWnd, '', Default, Default, $aPos[2], $aPos[3]) If Not WinMove($hWnd, '', $aPos[0], $aPos[1]) Then Exit -5 |
|
Отправлено: 17:37, 12-07-2017 |
Старожил Сообщения: 168
|
Профиль | Отправить PM | Цитировать visors, почему не ShellExecute()? То же самое, только ОС всё сама сделает. В случае, если JPEG открываются стандартным средством просмотра, имя файла без расширения будет в начале заголовка окна:
$sRunFile = $aFiles[0] > 1 ? $aFiles[Random(1, $aFiles[0], 1)] : $aFiles[1] ShellExecute($sRunFile) If @error Then Exit -2 $hWnd = WinWait(StringRight(StringRegExpReplace($sRunFile, '^.*\\', ''), 4), '', 5) If $hWnd = 0 Then Exit -3 If WinMove($hWnd, '', $aPos[0], $aPos[1], $aPos[2], $aPos[3]) = 0 Then Exit -4 |
------- Последний раз редактировалось oz84, 20-09-2017 в 22:11. Причина: Убрал использование лишней переменной Отправлено: 22:10, 20-09-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интерфейс - Как сделать, чтобы окно открывалось в определенном месте экрана | denny7794 | Microsoft Windows 7 | 16 | 25-07-2021 21:56 | |
Фото сделали очень темное, специально затемнили, какой программой осветлить его? | micro8 | Цифровое изображение | 5 | 04-10-2011 13:05 | |
[решено] The Bat не становится почтовой программой по умолчанию | ProkVS | Microsoft Windows Vista | 10 | 09-04-2010 17:29 | |
Медиа - [решено] как сделать winamp программой по умолчанию? | Miroed | Microsoft Windows Vista | 12 | 18-10-2008 08:36 | |
Открытие папки по умолчанию | Alexander Z | Microsoft Windows 2000/XP | 5 | 17-11-2005 09:37 |
|