Что нового

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

agikon

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

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Вот:
Код:
#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
Репутация
17
просто обалдеть!
Zaramot спасибо.
madmasles спасибо что протестировали :ok:
 

XpycT

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

Код:
#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
Репутация
17
XpycT,
согласен тоже довольно интересный вариант :ok:
 

madmasles

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