Что нового

Новое окно в нужных размерах

saraconor

Новичок
Сообщения
404
Репутация
3
Допустим на столе лежит файл .txt
Как можно открыть окно блокнота СРАЗУ в нужном размере и в нужных координатах, чтобы скрипт после открытия не таскал по экрану окно?
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Запускайте блокнот в скрытом режиме (см. функцию Run()), меняйте координаты, а потом делайте окно видимым.
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
HKEY_CURRENT_USER\Software\Microsoft\Notepad
пробовать запись в реестр новых координат а потом запуск блокнота
iWindowPosX - верхняя координата
iWindowPosY - координата слева
iWindowPosDX - ширина
iWindowPosDY - высота
 
Автор
S

saraconor

Новичок
Сообщения
404
Репутация
3
Хорошо, а если это не блокнот а картинка?

Код:
Run ('rundll32.exe C:\WINDOWS\System32\shimgvw.dll, C:\путь к картинке','',@SW_HIDE)

WinWait('[CLASS:Photo_Lightweight_Viewer]')
WinMove('[CLASS:Photo_Lightweight_Viewer]','',0,0,@DesktopWidth/3,@DesktopHeight)
WinSetState('[CLASS:Photo_Lightweight_Viewer]','',@SW_SHOW)


То работает то нет.

А где в реестре найти такие-же параметры для "Средства просмотра фотографий Windows" ?
Вот, нашлось:
hit5vgwt.png

Помогите пожалуйста внести эти данные в реестр через autoit, у меня совсем мало опыта работы с реестром таким образом.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
saraconor сказал(а):
То работает то нет.
Значит нужно дождаться полной загрузки изображения.

saraconor сказал(а):
А где в реестре найти такие-же параметры для "Средства просмотра фотографий Windows" ?
HKEY_CURRENT_USER\Software\Microsoft\Windows Photo Viewer\Viewer
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
saraconor [?]
Помогите пожалуйста внести эти данные в реестр через autoit, у меня совсем мало опыта работы с реестром таким образом.
См. функцию
Код:
RegWrite
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Получить координаты можно так, запись производится в обратном порядке.

Код:
$bData = RegRead('HKCU\Software\Microsoft\Windows Photo Viewer\Viewer', 'MainWndPos')
$tData = DllStructCreate('byte[16]')
$tPos = DllStructCreate('dword[4]', DllStructGetPtr($tData))
DllStructSetData($tData, 1, $bData)
For $i = 1 To 4
	ConsoleWrite(DllStructGetData($tPos, 1, $i) & @CRLF)
Next
 
Автор
S

saraconor

Новичок
Сообщения
404
Репутация
3
alex33 сказал(а):
См. функцию
Код:
RegWrite
Д, я знаю эту функцию, но до сего момента мне приходилось только встраивать файлы в автозагрузку через нее.
Код:
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows Photo Viewer\Viewer", 'MainWndPos',............

а что дальше делать не понятно...
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Код:
$tData = DllStructCreate('byte[20]')
$tPos = DllStructCreate('dword[4]', DllStructGetPtr($tData))
DllStructSetData($tPos, 1, 0, 1) ; X
DllStructSetData($tPos, 1, 0, 2) ; Y
DllStructSetData($tPos, 1, @DesktopWidth, 3) ; Width
DllStructSetData($tPos, 1, @DesktopHeight / 2, 4) ; Height

RegWrite('HKCU\Software\Microsoft\Windows Photo Viewer\Viewer', 'MainWndPos', 'REG_BINARY', DllStructGetData($tData, 1))
 
Автор
S

saraconor

Новичок
Сообщения
404
Репутация
3
Yashied сказал(а):
Получить координаты можно так, запись производится в обратном порядке.

Код:
$bData = RegRead('HKCU\Software\Microsoft\Windows Photo Viewer\Viewer', 'MainWndPos')
$tData = DllStructCreate('byte[16]')
$tPos = DllStructCreate('dword[4]', DllStructGetPtr($tData))
DllStructSetData($tData, 1, $bData)
For $i = 1 To 4
	ConsoleWrite(DllStructGetData($tPos, 1, $i) & @CRLF)
Next

Я извините не смогу инвертировать ваш скрипт (т.к. с dll опыта еще меньше чем с реестром). а нужна именно запись в реестр.
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
См. выше.
 
Верх