Jump to content

Save and Restore Window Positions


Recommended Posts

I'm trying to see if someone has already written a script like this. I would like to manually arrange my open program windows, then have the script take a snapshot of the size and position of all of the windows. After time passes and I've moved things around I would like to be able to run a script to restore my windows to the position and size previously saved. Taking it further, I would like it to start applications that aren't started if they're part of the collection of windows (for example if Outlook is one of the windows and I closed it while working, then the restore script would restart Outlook when necessary), and save and restore between multiple snapshots. These different snapshots could be for different types of tasks (development, emailing, browsing, or whatever).

Thanks,

Link to comment
Share on other sites

Here is an idea, edit for your own needs though.

Func _GetCurrentPosition()
    Local $aINISection[4] = ['SizeW', 'SizeH', 'PosX', 'PosY'], $aReturn[4] = [360, 230, -1, -1], $sINI = @ScriptDir & 'Settings.ini'
    For $i = 0 To 3
        $aReturn[$i] = IniRead($sINI, 'General', $aINISection[$i], $aReturn[$i])
    Next
    Return $aReturn
EndFunc   ;==>_GetCurrentPosition

Func _SetCurrentPosition($hHandle)
    Local $aINISection[4] = ['SizeW', 'SizeH', 'PosX', 'PosY'], $aReturn[4] = [360, 230, -1, -1]
    Local $aWinGetPos = WinGetPos($hHandle)
    If @error = 0 Then
        $aReturn[2] = $aWinGetPos[0]
        $aReturn[3] = $aWinGetPos[1]
    EndIf
    Local $aWinGetClientSize = WinGetClientSize($hHandle)
    If @error = 0 Then
        $aReturn[0] = $aWinGetClientSize[0]
        $aReturn[1] = $aWinGetClientSize[1]
    EndIf
    For $i = 0 To 3
        If $aReturn[$i] > 0 Then
            IniWrite(@ScriptDir & 'Settings.ini', 'General', $aINISection[$i], $aReturn[$i])
        Else
            IniDelete(@ScriptDir & 'Settings.ini', 'General', $aINISection[$i])
        EndIf
    Next
    Return $aReturn
EndFunc   ;==>_SetCurrentPosition

UDF List:

 
_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_ArrayFilter/_ArrayReduce_BinaryBin()_CheckMsgBox()_CmdLineRaw()_ContextMenu()_ConvertLHWebColor()/_ConvertSHWebColor()_DesktopDimensions()_DisplayPassword()_DotNet_Load()/_DotNet_Unload()_Fibonacci()_FileCompare()_FileCompareContents()_FileNameByHandle()_FilePrefix/SRE()_FindInFile()_GetBackgroundColor()/_SetBackgroundColor()_GetConrolID()_GetCtrlClass()_GetDirectoryFormat()_GetDriveMediaType()_GetFilename()/_GetFilenameExt()_GetHardwareID()_GetIP()_GetIP_Country()_GetOSLanguage()_GetSavedSource()_GetStringSize()_GetSystemPaths()_GetURLImage()_GIFImage()_GoogleWeather()_GUICtrlCreateGroup()_GUICtrlListBox_CreateArray()_GUICtrlListView_CreateArray()_GUICtrlListView_SaveCSV()_GUICtrlListView_SaveHTML()_GUICtrlListView_SaveTxt()_GUICtrlListView_SaveXML()_GUICtrlMenu_Recent()_GUICtrlMenu_SetItemImage()_GUICtrlTreeView_CreateArray()_GUIDisable()_GUIImageList_SetIconFromHandle()_GUIRegisterMsg()_GUISetIcon()_Icon_Clear()/_Icon_Set()_IdleTime()_InetGet()_InetGetGUI()_InetGetProgress()_IPDetails()_IsFileOlder()_IsGUID()_IsHex()_IsPalindrome()_IsRegKey()_IsStringRegExp()_IsSystemDrive()_IsUPX()_IsValidType()_IsWebColor()_Language()_Log()_MicrosoftInternetConnectivity()_MSDNDataType()_PathFull/GetRelative/Split()_PathSplitEx()_PrintFromArray()_ProgressSetMarquee()_ReDim()_RockPaperScissors()/_RockPaperScissorsLizardSpock()_ScrollingCredits_SelfDelete()_SelfRename()_SelfUpdate()_SendTo()_ShellAll()_ShellFile()_ShellFolder()_SingletonHWID()_SingletonPID()_Startup()_StringCompact()_StringIsValid()_StringRegExpMetaCharacters()_StringReplaceWholeWord()_StringStripChars()_Temperature()_TrialPeriod()_UKToUSDate()/_USToUKDate()_WinAPI_Create_CTL_CODE()_WinAPI_CreateGUID()_WMIDateStringToDate()/_DateToWMIDateString()Au3 script parsingAutoIt SearchAutoIt3 PortableAutoIt3WrapperToPragmaAutoItWinGetTitle()/AutoItWinSetTitle()CodingDirToHTML5FileInstallrFileReadLastChars()GeoIP databaseGUI - Only Close ButtonGUI ExamplesGUICtrlDeleteImage()GUICtrlGetBkColor()GUICtrlGetStyle()GUIEventsGUIGetBkColor()Int_Parse() & Int_TryParse()IsISBN()LockFile()Mapping CtrlIDsOOP in AutoItParseHeadersToSciTE()PasswordValidPasteBinPosts Per DayPreExpandProtect GlobalsQueue()Resource UpdateResourcesExSciTE JumpSettings INISHELLHOOKShunting-YardSignature CreatorStack()Stopwatch()StringAddLF()/StringStripLF()StringEOLToCRLF()VSCROLLWM_COPYDATAMore Examples...

Updated: 22/04/2018

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...