jercfd Posted May 1, 2008 Share Posted May 1, 2008 Hello. I seem to be having a problem with the IsArray function. In my code, when GUIGetCursorInfo returns an array, the If statements in "If IsArray($MouseInfo) = 1 Then" don't seem to respond when IsArray is sucessful. I don't know what is wrong and was wondering if someone here can please help me. expandcollapse popup#include <GUIConstants.au3> $MouseInfo = GUIGetCursorInfo() $Height = 600 $Width = 800 $GUI = GUICreate("Mac Os X Theme", $Width, $Height, -1, -1, BitOR($WS_SIZEBOX, $WS_POPUP)) GUISetBkColor(0xACACAC) GUICtrlCreatePic(@ScriptDir & "\Brushed Metal.jpg", -5, -5, $Width + 10, $Height + 10, $GUI_SS_DEFAULT_PIC, $GUI_WS_EX_PARENTDRAG) GUICtrlSetResizing(-1, $GUI_DOCKBORDERS) GUICtrlSetState(-1, $GUI_DISABLE) $Close = GUICtrlCreatePic(@ScriptDir & "\close_off.gif", 8, 4, 14, 14) GUICtrlSetResizing(-1, $GUI_DOCKHEIGHT + $GUI_DOCKWIDTH + $GUI_DOCKTOP + $GUI_DOCKLEFT) GUICtrlSetTip(-1, "Close") $Minimize = GUICtrlCreatePic(@ScriptDir & "\minimize_off.gif", 30, 4, 14, 14) GUICtrlSetResizing(-1, $GUI_DOCKHEIGHT + $GUI_DOCKWIDTH + $GUI_DOCKTOP + $GUI_DOCKLEFT) GUICtrlSetTip(-1, "Minimize") $Maximize = GUICtrlCreatePic(@ScriptDir & "\maximize_off.gif", 51, 4, 14, 14) GUICtrlSetResizing(-1, $GUI_DOCKHEIGHT + $GUI_DOCKWIDTH + $GUI_DOCKTOP + $GUI_DOCKLEFT) GUICtrlSetTip(-1, "Maximize") AdlibEnable("CMM", 250) GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() If IsArray($MouseInfo) = 1 Then If $MouseInfo[2] = 1 And $MouseInfo[4] = $Close Then Exit If $MouseInfo[2] = 1 And $MouseInfo[4] = $Minimize Then GUISetState(@SW_MINIMIZE, $GUI) If $MouseInfo[2] = 1 And $MouseInfo[4] = $Maximize Then GUISetState(@SW_MAXIMIZE, $GUI) EndIf Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd Func CMM() If IsArray($MouseInfo) = 1 Then If $MouseInfo[4] = $Close Or $MouseInfo[4] = $Minimize Or $MouseInfo[4] = $Maximize Then GUICtrlSetImage($Close, @ScriptDir & "\close_on.gif") GUICtrlSetImage($Minimize, @ScriptDir & "\minimize_on.gif") GUICtrlSetImage($Maximize, @ScriptDir & "\maximize_on.gif") Else GUICtrlSetImage($Close, @ScriptDir & "\close_off.gif") GUICtrlSetImage($Minimize, @ScriptDir & "\minimize_off.gif") GUICtrlSetImage($Maximize, @ScriptDir & "\maximize_off.gif") EndIf EndIf EndFunc ;==>CMM Link to comment Share on other sites More sharing options...
MrCreatoR Posted May 1, 2008 Share Posted May 1, 2008 Hi, How do you know if $MouseInfo is an array? you should use «$MouseInfo = GUIGetCursorInfo()» inside the main loop, so it will get needed information in "real time". Spoiler Using OS: Win 7 Professional, Using AutoIt Ver(s): 3.3.6.1 / 3.3.8.1 AutoIt Russian Community My Work... Spoiler Projects: ATT - Application Translate Tool {new}| BlockIt - Block files & folders {new}| SIP - Selected Image Preview {new}| SISCABMAN - SciTE Abbreviations Manager {new}| AutoIt Path Switcher | AutoIt Menu for Opera! | YouTube Download Center! | Desktop Icons Restorator | Math Tasks | KeyBoard & Mouse Cleaner | CaptureIt - Capture Images Utility | CheckFileSize ProgramUDFs: OnAutoItErrorRegister - Handle AutoIt critical errors {new}| AutoIt Syntax Highlight {new}| Opera Library! | Winamp Library | GetFolderToMenu | Custom_InputBox()! | _FileRun UDF | _CheckInput() UDF | _GUIInputSetOnlyNumbers() UDF | _FileGetValidName() UDF | _GUICtrlCreateRadioCBox UDF | _GuiCreateGrid() | _PathSplitByRegExp() | _GUICtrlListView_MoveItems - UDF | GUICtrlSetOnHover_UDF! | _ControlTab UDF! | _MouseSetOnEvent() UDF! | _ProcessListEx - UDF | GUICtrl_SetResizing - UDF! | Mod. for _IniString UDFs | _StringStripChars UDF | _ColorIsDarkShade UDF | _ColorConvertValue UDF | _GUICtrlTab_CoverBackground | CUI_App_UDF | _IncludeScripts UDF | _AutoIt3ExecuteCode | _DragList UDF | Mod. for _ListView_Progress | _ListView_SysLink | _GenerateRandomNumbers | _BlockInputEx | _IsPressedEx | OnAutoItExit Handler | _GUICtrlCreateTFLabel UDF | WinControlSetEvent UDF | Mod. for _DirGetSizeEx UDF Examples: ScreenSaver Demo - Matrix included | Gui Drag Without pause the script | _WinAttach()! | Turn Off/On Monitor | ComboBox Handler Example | Mod. for "Thinking Box" | Cool "About" Box | TasksBar Imitation Demo Like the Projects/UDFs/Examples? Please rate the topic (up-right corner of the post header: Rating ) * === My topics === * ================================================== ================================================== AutoIt is simple, subtle, elegant. © AutoIt Team Link to comment Share on other sites More sharing options...
jercfd Posted May 1, 2008 Author Share Posted May 1, 2008 That is what i am doing. The $MouseInfo is only an array when the mouse is in the application and it is on a control. Link to comment Share on other sites More sharing options...
therks Posted May 1, 2008 Share Posted May 1, 2008 Which is exactly how it's supposed to work, unless you provide it a handle to the GUI window you want to check. You are only checking that function once as well, you need to check and recheck and recheck, etc. Put $MouseInfo = GUIGetCursorInfo() at the top of your While loop. My AutoIt Stuff | My Github Link to comment Share on other sites More sharing options...
MrCreatoR Posted May 1, 2008 Share Posted May 1, 2008 That is what i am doingI can't see in your example that this variable is changed. You need to place that checking in the main loop, like this: While 1 $nMsg = GUIGetMsg() $MouseInfo = GUIGetCursorInfo() If IsArray($MouseInfo) = 1 Then If $MouseInfo[2] = 1 And $MouseInfo[4] = $Close Then Exit If $MouseInfo[2] = 1 And $MouseInfo[4] = $Minimize Then GUISetState(@SW_MINIMIZE, $GUI) If $MouseInfo[2] = 1 And $MouseInfo[4] = $Maximize Then GUISetState(@SW_MAXIMIZE, $GUI) EndIf Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd Spoiler Using OS: Win 7 Professional, Using AutoIt Ver(s): 3.3.6.1 / 3.3.8.1 AutoIt Russian Community My Work... Spoiler Projects: ATT - Application Translate Tool {new}| BlockIt - Block files & folders {new}| SIP - Selected Image Preview {new}| SISCABMAN - SciTE Abbreviations Manager {new}| AutoIt Path Switcher | AutoIt Menu for Opera! | YouTube Download Center! | Desktop Icons Restorator | Math Tasks | KeyBoard & Mouse Cleaner | CaptureIt - Capture Images Utility | CheckFileSize ProgramUDFs: OnAutoItErrorRegister - Handle AutoIt critical errors {new}| AutoIt Syntax Highlight {new}| Opera Library! | Winamp Library | GetFolderToMenu | Custom_InputBox()! | _FileRun UDF | _CheckInput() UDF | _GUIInputSetOnlyNumbers() UDF | _FileGetValidName() UDF | _GUICtrlCreateRadioCBox UDF | _GuiCreateGrid() | _PathSplitByRegExp() | _GUICtrlListView_MoveItems - UDF | GUICtrlSetOnHover_UDF! | _ControlTab UDF! | _MouseSetOnEvent() UDF! | _ProcessListEx - UDF | GUICtrl_SetResizing - UDF! | Mod. for _IniString UDFs | _StringStripChars UDF | _ColorIsDarkShade UDF | _ColorConvertValue UDF | _GUICtrlTab_CoverBackground | CUI_App_UDF | _IncludeScripts UDF | _AutoIt3ExecuteCode | _DragList UDF | Mod. for _ListView_Progress | _ListView_SysLink | _GenerateRandomNumbers | _BlockInputEx | _IsPressedEx | OnAutoItExit Handler | _GUICtrlCreateTFLabel UDF | WinControlSetEvent UDF | Mod. for _DirGetSizeEx UDF Examples: ScreenSaver Demo - Matrix included | Gui Drag Without pause the script | _WinAttach()! | Turn Off/On Monitor | ComboBox Handler Example | Mod. for "Thinking Box" | Cool "About" Box | TasksBar Imitation Demo Like the Projects/UDFs/Examples? Please rate the topic (up-right corner of the post header: Rating ) * === My topics === * ================================================== ================================================== AutoIt is simple, subtle, elegant. © AutoIt Team Link to comment Share on other sites More sharing options...
jercfd Posted May 1, 2008 Author Share Posted May 1, 2008 Okay. I understand now. Thanks for solving my problem. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now