Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Открытие фото программой по-умолчанию и размещение его в определенном месте экрана

Ответить
Настройки темы
Открытие фото программой по-умолчанию и размещение его в определенном месте экрана

Новый участник


Сообщения: 1
Благодарности: 0

Профиль | Отправить 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
Благодарности: 39

Профиль | Отправить 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



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Открытие фото программой по-умолчанию и размещение его в определенном месте экрана

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - Как сделать, чтобы окно открывалось в определенном месте экрана denny7794 Microsoft Windows 7 13 13-10-2015 13:02
Фото сделали очень темное, специально затемнили, какой программой осветлить его? 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




 
Переход