Что нового

Как запомнить координаты окна на состояние при закрытии?

agikon

Знающий
Сообщения
789
Репутация
16
пожалуйста наведите то ли на раздел справки, толи на форуме здесь тыкните мне где это обсуждалось, если обсуждалось.
но я вводил в поиск "координаты окна" "сохранить положение окна" но ничего по теме не нашел.
и в справке тоже не могу найти.
 

Zaramot

I ♥ AutoIt
Сообщения
1 160
Репутация
659
Вот:
Код:
#NoTrayIcon
#include <GUIConstantsEx.au3>

Global $X = -1, $Y = -1

If FileExists(@ScriptDir & '\settings.ini') Then
	$X = IniRead(@ScriptDir & '\settings.ini', 'POS', 'X', '')
	$Y = IniRead(@ScriptDir & '\settings.ini', 'POS', 'Y', '')
EndIf

$Form1 = GUICreate("Form1", 400, 300, $X, $Y)
GUISetState(@SW_SHOW)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			$WS = WinGetState($Form1)
			If Not BitAND($WS, 16) Then
				$WP = WinGetPos($Form1)
				IniWrite(@ScriptDir & '\settings.ini', 'POS', 'X', $WP[0])
				IniWrite(@ScriptDir & '\settings.ini', 'POS', 'Y', $WP[1])
			EndIf
			Exit
	EndSwitch
WEnd


Если надо, можно запомнить и высоту окна, и ширину окна.
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
16
просто обалдеть!
Zaramot спасибо.
madmasles спасибо что протестировали :ok:
 

XpycT

Скриптер
Сообщения
380
Репутация
132
Еще вот так можно

Код:
#include <GUIConstantsEx.au3>
OnAutoItExitRegister("_Close")
#NoTrayIcon

$X = IniRead(@ScriptDir & '\settings.ini', 'POS', 'X', -1)
$Y = IniRead(@ScriptDir & '\settings.ini', 'POS', 'Y', -1)

$Form1 = GUICreate("Form1", 400, 300, $X, $Y)
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd

Func _Close()
	$aWinPos = WinGetPos($Form1)
	IniWrite(@ScriptDir & '\settings.ini', 'POS', 'X', $aWinPos[0])
	IniWrite(@ScriptDir & '\settings.ini', 'POS', 'Y', $aWinPos[1])

	Exit
EndFunc
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
16
XpycT,
согласен тоже довольно интересный вариант :ok:
 

madmasles

Модератор
Глобальный модератор
Сообщения
7 790
Репутация
2 320
XpycT,
ИМХО,
Код:
;...
OnAutoItExitUnRegister("_Close")
;...
;не надо
 

XpycT

Скриптер
Сообщения
380
Репутация
132
madmasles
Согласен не надо
 
Верх