Search the Community
Showing results for tags 'WinMove'.
-
Hey Why does Windows 10 "AutoIt Window Info" give the wrong window position? WinMove() moves the window to a different point than parameters? -look script The test script moves the notepad.exe window to 0, 0, the real window coordinates are 8, 0 Modified script add WinGetPos() and MouseMove() and MouseGetPos() #include <ScreenCapture.au3> Local $iPID = Run("notepad.exe", "") WinWait("[CLASS:Notepad]", "", 10); Wait 10 seconds for the Notepad window to appear. WinMove ("[CLASS:Notepad]", "", 0, 0, 600, 400) WinActivate("[CLASS:Notepad]") Send("WinMove ('[CLASS:Notepad]', "", 0, 0, 600, 400){ENTER}") Send("@DesktopWidth: " & @DesktopWidth & "{ENTER}") Send("@DesktopHeight: " & @DesktopHeight & "{ENTER}") Send("@DesktopDepth: " & @DesktopDepth & "{ENTER}") Send("@OSArch: " & @OSArch & "{ENTER}") Send("@OSBuild: " & @OSBuild & "{ENTER}") Send("@OSServicePack: " & @OSServicePack & "{ENTER}") Send("@OSType: " & @OSType & "{ENTER}") Send("@OSVersion: " & @OSVersion & "{ENTER}") Send(WinGetPos("[CLASS:Notepad]") & "{ENTER}") Send("X: " & WinGetPos("[CLASS:Notepad]")[0] & "{ENTER}") Send("Y: " & WinGetPos("[CLASS:Notepad]")[1] & "{ENTER}") Send("Width: " & WinGetPos("[CLASS:Notepad]")[2] & "{ENTER}") Send("Height: " & WinGetPos("[CLASS:Notepad]")[3] & "{ENTER}") MouseMove(0,400) Send("MouseMove(0,400){ENTER}") Send("MouseGetPos() X: " & MouseGetPos()[0] & "Y: " & MouseGetPos()[1]) Sleep(100) _ScreenCapture_Capture('C:\temp\screen.bmp',0,0,800,600) MsgBox(0,"Info","Save screen to C:\temp\screen.bmp" & @CRLF & "Click OK to view the bitmap") Run("explorer.exe C:\temp\screen.bmp") Is ALWAYS such a difference 8px (in every Windows 7, 8, Server)?
-
Hello, first of all i searched in the forum but i didn't found any solution to my problem. I am using windows 10. I made a script that is supposed to change the title to the active window, resize it to the smallest size possible (should be around 800 x 600) and move to (0, 0). I can change the title but i fail to do the other 2 tasks. i use wingettitle [active] copied from the F1 help tool (and this works), i i put the title in a variable and than i use winsettitle ($variable, "one") (this works too) winmove ("one", 0, 0, 800, 600) (doesn't do anything) i also tried local $x = winget ( "one") msgbox (0, "", $x) (i get a completely white box so i suppose winget can't have any data about my window ??) any suggestion ?
-
Hi guys, I'm trying to move and resize a program call CPUID HWMonitor (http://www.cpuid.com/softwares/hwmonitor.html) but WinMove() doesn't work. Can someone tell me how to get this to work for this program? I've successfully moved other programs using WinMove(), and I've used WinGetTitle ("[ACTIVE]") to confirm the title is correct. WinActivate("CPUID HWMonitor") does work. If I run the following code nothing happens, doesn't move or resize, but AutoIt doesn't complain about the code either: WinMove("CPUID HWMonitor", 0, 0, 475, 715) The class changes every time the program opens (and I've nevery had a lot of success with classes tbh, bit hit and miss for me). Thanks all!
-
Hey guys, I could need your help aggain .. Is there a way to clip GUIs together (child GUIs - in one script). So if I use WinMove with speed set to one of those GUIs, the others follow at the same speed like they where one block? I can't think of an option to do this in pure Autoit. Creating an adlib for each GUI won't help I'm afraid, because adlibs are paused on GUI-move? And using this type of function didn't help either: I can't imagine any other way of achieving multiple GUI moves at once using Autoit, because Autoit waits for the WinMove command to finish .. Any thoughts? Maybe a build in windows function for clipping GUIs together? Thanks for your help
-
Hello, Below is a code whish i made for this problem i've. (code 1) The problem is that iff i try Winmove to to show the hidden button it's not working as i tought. What i try to do is just simple expand the GUI to make the hidden button visible. (code 2) I've already looked into GUICoordMode but don't think that's the problem.(or I don't understand it properly) Also tried to look into the forum but din't find anything around this subject but could't find anything around this subject. Does somebody knows what I'm doing wrong? Code 1 (winmove prblem) : #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> $Form1 = GUICreate("Form1", 134, 103, 192, 124) $Button1 = GUICtrlCreateButton("1", 8, 8, 75, 25) $Button2 = GUICtrlCreateButton("2", 8, 40, 75, 25) $Button3 = GUICtrlCreateButton("3", 8, 72, 75, 25) $expand_button = GUICtrlCreateButton("EXP", 96, 40, 27, 25) $hidden_button = GUICtrlCreateButton("Hidden", 160, 40, 75, 25) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $expand_button WinMove($Form1, "From1", 192, 124, 300, 103) EndSwitch WEnd Code 2 What I'm trying to expand to : #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> $Form1 = GUICreate("Form1", 265, 114, 192, 124) $Button1 = GUICtrlCreateButton("1", 8, 8, 75, 25) $Button2 = GUICtrlCreateButton("2", 8, 40, 75, 25) $Button3 = GUICtrlCreateButton("3", 8, 72, 75, 25) $expand_button = GUICtrlCreateButton("EXP", 96, 40, 27, 25) $hidden_button = GUICtrlCreateButton("Hidden", 160, 40, 75, 25) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd
-
Hi all, Can anyone tell me please, how to make my GUI stop moving/resizing elements that lays below $hInput (editbox) when I am trying to change the window size? The problem is that when I try to initialize my GUI 23px high I dont even get the buttons drawn, and if I try to redraw the window to smaller one, all elements get stuck together. All I want to do is to have a simple GUI, initialized with edit box only, and to have a window slowly expand if user type: add %s (command). ; INCLUDES #Region - INCLUDES #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <Misc.au3> #include <Array.au3> #include <WinAPI.au3> #EndRegion #Region - OPTIONS Opt("GUIOnEventMode", 1) Opt("GUIEventOptions", 1) ;0=default, 1=just notification, 2=GUICtrlRead tab index #endregion #Region - GLOBAL VARIABLES Global Enum $Title, $Handle, $X, $Y, $Width, $Height, $isVisible, $isActive Global Enum $Short, $Long Global Enum $Len=0, $Client, $Order, $Year Global $hGUI Global $AI[7], $HP[8] $AI[$Title] = "Illustrator" $HP[$Title] = "Helper" $HP[$Handle] = $hGUI $HP[$isVisible] = True $HP[$isActive] = True $HP[$Y] = 2 $HP[$Width] = 160 $HP[$Height] = 23 Global $aClient[][] = [ ["SHORT", "LONG"], ["1st", "First client"], ["2nd", "Second client"] ] Global $tAutoExit = TimerInit() #EndRegion #Region - GUI ; GUI INITIALIZATION $hGUI = GUICreate("Helper", 160, 110, Default, 2, $WS_POPUP, BitOR($WS_EX_TOOLWINDOW,$WS_EX_TOPMOST,$WS_EX_TRANSPARENT)) ;~ GUISetBkColor(0x3399FF) $hInput = GUICtrlCreateInput("", 0, 0, 160, 23) GUICtrlSetOnEvent($hInput, "InputHandler") $Button1 = GUICtrlCreateButton("File", 8, 28, 145, 22) $Button2 = GUICtrlCreateButton("Folder", 8, 50, 145, 22) $Button3 = GUICtrlCreateButton("Win Search", 8, 72, 145, 22) GUISetState(@SW_SHOW) Sleep(2000) WinMove($HP[$Title], "", Default, Default, Default, 23, 3) #EndRegion GUI #Region - MAIN LOOP While 1 CheckForRequest($HP) AutoExit(10) Sleep(10) WEnd #EndRegion #Region - FUNCTIONS Func AutoExit($iSeconds) If TimerDiff($tAutoExit) > $iSeconds*1000 Then Exit EndFunc Func CheckForRequest($vObject) If $vObject[$isActive] And _IsPressed("1B") Then Fade($HP) If (_IsPressed("12") And _IsPressed("C0")) Then Fade($HP) EndFunc Func InputHandler() Local $sMsg = GUICtrlRead(@GUI_CtrlId) ConsoleWrite("+ Command: " & $sMsg & @CRLF) Switch $sMsg Case "bye" ConsoleWrite("> Exiting... " & @CRLF) Exit Case "ai" ConsoleWrite("> " & $AI[$Title] & @CRLF) Case "hp" ConsoleWrite("> " & $HP[$Title] & @CRLF) Case StringInStr($sMsg, " ") <> False GetArgs($sMsg) Case Else EndSwitch Fade($HP) EndFunc Func GetArgs($sMsg) Local $aMsg = StringSplit($sMsg, " ") Switch $aMsg[0] Case 2 To 3 isClientFolder($aMsg) isNewCommand($aMsg) EndSwitch EndFunc Func isNewCommand($aArgs) If $aArgs < 2 Then Return -1 Switch $aArgs[1] Case "add" CommandAdd($aArgs[2]) Case "del" CommandDel($aArgs[2]) EndSwitch EndFunc Func CommandAdd($vVar) Local $t = 0 ConsoleWrite("-> Adding new command..." & @CRLF) WinMove($HP[$Title], "", Default, Default, Default, 140, 1) GUICtrlSetState($Button1, $GUI_SHOW) While $t < 4 $t += 1 Sleep(1000) WEnd EndFunc Func CommandDel($vVar) ConsoleWrite("-> Removing existing command..." & @CRLF) EndFunc Func isClientFolder($aArgs) Local $aSearch = _ArraySearch($aClient, $aArgs[$Client]) Local $hSearch, $sFileName = "" Local $aOrderNo, $sOrderNo, $sOrderName, $nOrder=1 Local $sPath = "D:\" Local $iYear = "2015" ; Check if user is looking for client folder If $aSearch=-1 Then Return -1 ; Check if user have specified the year If ($aArgs[$Len]=3 And ($aArgs[3]>11 And $aArgs[3]<15)) Then $iYear = "20" & $aArgs[$Year] EndIf ; Set up new working path $sPath &= $iYear & "\" $sPath &= $aClient[$aSearch][$Long] & "\" ; Reorder? $aOrder = StringSplit($aArgs[$Order], ".") $sOrderNo = $iYear ; Deep search Do FileChangeDir($sPath) $sOrderNo &= "."& $aOrder[$nOrder] $hSearch = FileFindFirstFile($sOrderNo &"*") $sFileName = FileFindNextFile($hSearch) FileClose($hSearch) If $sFileName = "" Then Return -1 Else $sPath &= "\" & $sFileName &"\" EndIf $nOrder += 1 Until $nOrder > $aOrder[$Len] ShellExecute($sPath, "", "", "open") EndFunc Func Fade(ByRef $vObject) If $HP[$isVisible] Then For $i=255 To 0 Step -1 WinSetTrans($vObject[$Title], "", $i) If IsInt($i/10) Then Sleep(2) Next GUICtrlSetData($hInput, "") Else For $i=0 To 255 Step 1 WinSetTrans($vObject[$Title], "", $i) If IsInt($i/10) Then Sleep(2) Next EndIf $vObject[$isVisible] = Not $vObject[$isVisible] $vObject[$isActive] = Not $vObject[$isActive] EndFunc #endregion
-
I'm having a problem using winmove with WordPerfect X5. WordPerfect X5 is on top and is the active window. I run the following code Opt("ExpandVarStrings", 1) $WinTitle = WinGetTitle("[active]") $Err = WinMove ($WinTitle, "", 10, 10) MsgBox (0, 'Move', "$WinTitle$ $Err$")The WordPerfect window does NOT move and the msgbox shows: $WinTitle= "WordPerfect X5 - Document 1" $Err = 0, which means: "Failure: 0 if the window is not found." Any other program I've tried works fine. I then tried the following: Opt("ExpandVarStrings", 1) $WinTitle = WinGetTitle("[active]") $WinHandle = WinGetHandle( $WinTitle) MsgBox (0, 'Handle', "$WinTitle$ $WinHandle$")Again the msgbox showed $WinTitle= "WordPerfect X5 - Document 1" $WinHandle = 0 So I now assume that WordPerfect does NOT respond to the standard windows commands. Any suggestions of a work-around, or am I missing something? Thanks, Marc
-
Hello i got trouble when i try to move the CMD windows in the picture attached Anyhelp apreciated... not my first winmove... * Here the used code Case $ControlCPL GUISetState(@SW_SHOW, $hGUI2) GUISetState(@SW_HIDE, $hGUI) RunAs ( $UID&"", @ComputerName&"",$Password&"", "" , "C:\Windows\System32\Cmd.exe" ) Sleep (2000) WinMove("Administrateur : C:\Windows\System32\Cmd.exe","",0,0) WinMove("Administrator: C:\Windows\System32\Cmd.exe","",0,0) WinMove("Console ADMIN","",660,0) I got the both language in my PC Park so that's why i use administrator and administrateur line It work with administrator but not administrateur....
-
I am having an interesting problem with WinMove() when moving multiple windows. Running this code WinMove("Session A - [24 x 80]", "", 170, 80, 735, 413, 1) WinMove("Session B - [24 x 80]", "", 915, 80, 735, 413, 1) WinMove("Session C - [24 x 80]", "", 170, 480, 735, 413, 1) WinMove("Session D - [24 x 80]", "", 915, 480, 735, 413, 1) both moves AND resizes the first window, but only moves the remaining windows without resizing them. I tried interjecting a Sleep(100) between each WinMove() call, but no change in behavior. However, if I double up the calls, Global $a $a = WinMove("Session A - [24 x 80]", "", 170, 80, 735, 413, 1) If $a <> 0 Then WinMove("Session A - [24 x 80]", "", 170, 80, 735, 413, 1) WinMove("Session B - [24 x 80]", "", 915, 80, 735, 413, 1) If $a <> 0 Then WinMove("Session B - [24 x 80]", "", 915, 80, 735, 413, 1) WinMove("Session C - [24 x 80]", "", 170, 480, 735, 413, 1) If $a <> 0 Then WinMove("Session C - [24 x 80]", "", 170, 480, 735, 413, 1) WinMove("Session D - [24 x 80]", "", 915, 480, 735, 413, 1) If $a <> 0 Then WinMove("Session D - [24 x 80]", "", 915, 480, 735, 413, 1) then everything seems to work, but it seems a rather uneligant solution. Any thoughts? (Using AutoIt 3.3.12.0 on a Win7-64bit machine)
-
I am seeing a buttons position change when the following happens. 1. GUI created at 800 x 600 2. GUI info is stored using WinGetPos 3. GUI changed to full-screen using WinMove 4. Button info is stored using ControlGetPos 5. Button is deleted 6. Button is re-created using the stored data from item 4. 7. GUI is restored to the info gathered in item 2. The button starts with this info: Button Left: 408 Button Top: 84 Button Width: 80 Button Height: 24 and after the events above the button has this info: Button Left: 409 Button Top: 83 Button Width: 80 Button Height: 24 Here is some code that can reproduce the issue: (press space, f, space, f, then look in the console) #Region Includes #include <WindowsConstants.au3> #include <StaticConstants.au3> #include <GUIConstantsEx.au3> #include <Array.au3> #EndRegion Includes Const $HT_KEY_FULLSCREEN = "f" Const $HT_KEY_SPACE = "{SPACE}" Global $btnAddRebuy[21] Global $btnRemovePlayer[21] Global $fFullscreen = False Global $aGuiInfo Global $aGuiInfo2 Global $guiWidth = 800 Global $guiHeight = 600 #Region Dimensions for Settings Screen ; Player Global $lblPlayerTop = 60 Global $playerLabelSpace = 24 ; Add Rebuy Button Global $btnRebuyLeft = 320 Global $btnRebuyWidth = 80 Global $btnRebuyHeight = 24 ; Remove Player Global $btnRemoveLeft = 408 Global $btnRemoveWidth = 80 Global $btnRemoveHeight = 24 #EndRegion Dimensions for Settings Screen $hMain = GUICreate("Timer", $guiWidth, $guiHeight, -1, -1, BitOR($WS_MAXIMIZEBOX,$WS_MINIMIZEBOX,$WS_SIZEBOX,$WS_THICKFRAME,$WS_SYSMENU,$WS_CAPTION,$WS_OVERLAPPEDWINDOW,$WS_TILEDWINDOW,$WS_POPUP,$WS_POPUPWINDOW,$WS_GROUP,$WS_TABSTOP,$WS_BORDER,$WS_CLIPSIBLINGS)) For $i = 1 To 5 Step 1 $btnAddRebuy[$i] = GUICtrlCreateButton("Button", $btnRebuyLeft, $lblPlayerTop + ($playerLabelSpace * $i), $btnRebuyWidth, $btnRebuyHeight) GUICtrlSetResizing($btnAddRebuy[$i], $GUI_DOCKAUTO) GuiCtrlSetState($btnAddRebuy[$i], $GUI_DISABLE) $btnRemovePlayer[$i] = GUICtrlCreateButton("Button", $btnRemoveLeft, $lblPlayerTop + ($playerLabelSpace * $i), $btnRemoveWidth, $btnRemoveHeight) ;GUICtrlSetResizing($btnRemovePlayer[$i], $GUI_DOCKAUTO) Next GUISetState(@SW_SHOW) HotKeySet($HT_KEY_FULLSCREEN, "Fullscreen") HotKeySet($HT_KEY_SPACE, "Redraw") While 1 $msg = GUIGetMsg() If $msg = $GUI_EVENT_CLOSE Then ExitLoop EndIf WEnd Func Fullscreen() If WinActive($hMain) Then If $fFullscreen Then ;GUISetStyle(BitOR($WS_MAXIMIZEBOX,$WS_MINIMIZEBOX,$WS_SIZEBOX,$WS_THICKFRAME,$WS_SYSMENU,$WS_CAPTION,$WS_OVERLAPPEDWINDOW,$WS_TILEDWINDOW,$WS_POPUP,$WS_POPUPWINDOW,$WS_GROUP,$WS_TABSTOP,$WS_BORDER,$WS_CLIPSIBLINGS), Default, $hMain) $aGuiInfo2 = WinGetPos($hMain) ConsoleWrite("******* Fullscreen *******" & @LF) ConsoleWrite("Win Left: " & $aGuiInfo2[0] & @LF) ConsoleWrite("Win Top: " & $aGuiInfo2[1] & @LF) ConsoleWrite("Win Width: " & $aGuiInfo2[2] & @LF) ConsoleWrite("Win Height: " & $aGuiInfo2[3] & @LF & @LF) ;WinMove($hMain, Default, $aGuiInfo[0], $aGuiInfo[1], $aGuiInfo[2], $aGuiInfo[3]) WinMove($hMain, Default, 238, 179, 816, 638) $fFullscreen = False $aCtrlInfo = ControlGetPos($hMain, "", $btnRemovePlayer[1]) ConsoleWrite("******* Button Info after Restored *******" & @LF) ConsoleWrite("Button Left: " & $aCtrlInfo[0] & @LF) ConsoleWrite("Button Top: " & $aCtrlInfo[1] & @LF) ConsoleWrite("Button Width: " & $aCtrlInfo[2] & @LF) ConsoleWrite("Button Height: " & $aCtrlInfo[3] & @LF & @LF) Else ;GUISetStyle($WS_POPUP, Default, $hMain) $aGuiInfo = WinGetPos($hMain) ConsoleWrite("******* Start Size *******" & @LF) ConsoleWrite("Win Left: " & $aGuiInfo[0] & @LF) ConsoleWrite("Win Top: " & $aGuiInfo[1] & @LF) ConsoleWrite("Win Width: " & $aGuiInfo[2] & @LF) ConsoleWrite("Win Height: " & $aGuiInfo[3] & @LF & @LF) WinMove($hMain, Default, 0, 0, @DesktopWidth, @DesktopHeight) $fFullscreen = True $aCtrlInfo = ControlGetPos($hMain, "", $btnRemovePlayer[1]) ConsoleWrite("******* Button Info after Fullscreened *******" & @LF) ConsoleWrite("Button Left: " & $aCtrlInfo[0] & @LF) ConsoleWrite("Button Top: " & $aCtrlInfo[1] & @LF) ConsoleWrite("Button Width: " & $aCtrlInfo[2] & @LF) ConsoleWrite("Button Height: " & $aCtrlInfo[3] & @LF & @LF) EndIf Else HotKeySet($HT_KEY_FULLSCREEN) Send($HT_KEY_FULLSCREEN) HotKeySet($HT_KEY_FULLSCREEN, "Fullscreen") EndIf EndFunc Func Redraw() Local $aCtrlInfo $aCtrlInfo = ControlGetPos($hMain, "", $btnRemovePlayer[1]) ConsoleWrite("******* Button Info before Redraw *******" & @LF) ConsoleWrite("Button Left: " & $aCtrlInfo[0] & @LF) ConsoleWrite("Button Top: " & $aCtrlInfo[1] & @LF) ConsoleWrite("Button Width: " & $aCtrlInfo[2] & @LF) ConsoleWrite("Button Height: " & $aCtrlInfo[3] & @LF & @LF) GuiCtrlDelete($btnRemovePlayer[1]) $btnRemovePlayer[1] = GUICtrlCreateButton("Button", $aCtrlInfo[0], $aCtrlInfo[1], $aCtrlInfo[2], $aCtrlInfo[3]) ;GUICtrlSetResizing(-1, $GUI_DOCKAUTO) $aCtrlInfo = ControlGetPos($hMain, "", $btnRemovePlayer[1]) ConsoleWrite("******* Button Info after Redraw *******" & @LF) ConsoleWrite("Button Left: " & $aCtrlInfo[0] & @LF) ConsoleWrite("Button Top: " & $aCtrlInfo[1] & @LF) ConsoleWrite("Button Width: " & $aCtrlInfo[2] & @LF) ConsoleWrite("Button Height: " & $aCtrlInfo[3] & @LF & @LF) EndFunc Is there a way to fix this, or is the issue built in to how windows get resized?
- 5 replies
-
- fullscreen
- button
-
(and 5 more)
Tagged with:
-
Real Window Width/Height, WindowBlinds
MarkRobbins posted a topic in AutoIt General Help and Support
I'm using WindowBlinds, VOX 2 Style. When I WinMove() the width and height show quite a bit short when measured on screen (14px!), WinGetPos() returns the proper numbers, but when attempting placement of windows this is quite a pain. Is there a solution for this other than constant compensation?- 9 replies
-
- WindowBlinds
- WinMove
-
(and 1 more)
Tagged with:
-
I hate asking basic questions, however I have spent 2 days and hours reading the forums and trying everything I can think of and I am stuck. This whittled down simple winmove script works in XP and Win7 but does not work in desktop windows 8. Any hints? ;#RequireAdmin ;<-- makes no difference #AutoIt3Wrapper_run_debug_mode=Y ; use this to debug in console window <--- LOOK Opt("WinTitleMatchMode", -2) ;nocase partial match okay $pgm_title = "Run" Send("#r") ;open run box ;wait for it WinWait($pgm_title) ;partial match If Not WinActive($pgm_title) Then WinActivate($pgm_title) WinWaitActive($pgm_title) ;WinSetState($pgm_title, "", @SW_SHOW) ;make sure we can see it - makes no difference MsgBox(0,"Debug","Ready to move.") $hl = WinMove($pgm_title, "", 0, 0) ;WinSetState($pgm_title, "", @SW_ENABLE) ;enable it - makes no difference ;WinSetState($pgm_title, "", @SW_SHOW) ;make sure we can see it - makes no difference MsgBox(0,"Debug","Should be at 0,0 and handle = " & $hl & " 0=not found") $hl = WinMove($pgm_title, "", 100, 100, Default, Default, 100) ;move slowly keep current size ;WinSetState($pgm_title, "", @SW_ENABLE) ;enable it - makes no difference ;WinSetState($pgm_title, "", @SW_SHOW) ;make sure we can see it - makes no difference MsgBox(0,"Debug","Should be at 100,100 and handle = " & $hl & " 0=not found") MsgBox(0,"Debug","Move completed.") Send("{ESC}") ;be polite and close run box Exit #cs Works on XP Pro SP3 x32 (x86) Works on Win 7 Pro x32 (x86) Fails in Windows 8 Pro x64 desktop mode #RequireAdmin ;<-- makes no difference all versions seem to wait a time for the move but do NOT actually move the box #ce
-
So I'm making this gui with an embedded IE object. It all goes well until I add some functionality, one in particular and it's a big one, the window will be in the same place and same size as you left it when you last exited the program. No big deal until I found that when I resize the window programmatically the controls below the IE Object seemingly disappear. Look a little closer and I find that they're not invisible, just white. I messed around and found out that it has something to do with having the style $WS_CLIPCHILDREN on the gui. I take it off and the controls show up no problem, but then the whole IE object freezes so that's definitely not the solution I'm looking for. I've tried searching the forums, the internet, and the help file, but I can't find the answer to this evil problem. One thing I noticed was that if I resized the window just the slightest with the mouse all the controls would reappear, or if I hovered on them they parts of the control would reappear piece by piece. So I tried using some window redraw / repaint functions, I've tried several different winmove functions, and I even went so far as to try to emulate resizing the window through the mouse by using the _SendMessage function to send the individual WM_ENTERSIZEMOVE, WM_SIZING, WM_SIZE, and WM_EXITSIZEMOVE messages to the window, but to no avail. However if I set a certain size of window with the WM_SIZE message that wasn't the window size it would show up in the window with a bunch of whitespace because it wasn't taking up the whole window, but that isn't germane and I digress. If anyone knows any rerendering messages I could send the the window please post them here! I'm willing to try anything at the moment. I assume there's a message I'm missing in the resizing emulation since it isn't coming out right. Oh, another thing that would be helpful is if someone knew how to monitor all the messages going to my gui, instead of just specific individual messages defined by the GUIRegisterMsg function. Below is a far shortened example of my code along with the screen shot of it with a few citations. #include <IE.au3> #include <Array.au3> #include <WinAPI.au3> #include <Constants.au3> #include <ButtonConstants.au3> #include <ComboConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> $name = @UserName $opts = " |Me ("&$name&")" $oIE = _IECreateEmbedded() $Main = GUICreate("Example of Frustration", 795, 610, 192, 124, BitOR($GUI_SS_DEFAULT_GUI,$WS_SIZEBOX,$WS_THICKFRAME,$WS_CLIPCHILDREN)) $ObjectIE = GUICtrlCreateObj($oIE, 8, 8, 777, 561) GUICtrlSetResizing(-1, $GUI_DOCKTOP+$GUI_DOCKRIGHT+$GUI_DOCKBOTTOM+$GUI_DOCKLEFT) GUICtrlCreateLabel("Follow", 8, 580, 34, 17, $WS_CLIPSIBLINGS) GUICtrlSetResizing(-1, $GUI_DOCKLEFT+$GUI_DOCKBOTTOM+$GUI_DOCKWIDTH+$GUI_DOCKHEIGHT) $ComboFollow = GUICtrlCreateCombo("", 48, 578, 145, 25, BitOR($CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL,$WS_CLIPSIBLINGS)) $default = " " GUICtrlSetData(-1, $opts, $default) GUICtrlSetResizing(-1, $GUI_DOCKLEFT+$GUI_DOCKBOTTOM+$GUI_DOCKWIDTH+$GUI_DOCKHEIGHT) $SliderOpacity = GUICtrlCreateSlider(280, 576, 150, 25) GUICtrlSetLimit(-1, 255, 55) GUICtrlSetData(-1, 255) GUICtrlSetResizing(-1, $GUI_DOCKLEFT+$GUI_DOCKBOTTOM+$GUI_DOCKWIDTH+$GUI_DOCKHEIGHT) $ButtonFullscreen = GUICtrlCreateButton("Faux Fullscreen", 680, 576, 107, 25, $WS_CLIPSIBLINGS) GUICtrlSetResizing(-1, $GUI_DOCKRIGHT+$GUI_DOCKBOTTOM+$GUI_DOCKWIDTH+$GUI_DOCKHEIGHT) _IENavigate($oIE, "http://google.com") GUISetState(@SW_SHOW) _WinAPI_MoveWindow($Main, 100, 100, 450, 350) While 1 If GUIGetMsg() = $GUI_EVENT_CLOSE Then Exit WEnd Thanks for your time! -Brian