Sign in to follow this  
Followers 0
Shocker

How disable Buttons if ProcessExists?

5 posts in this topic

Hi there,

how can i disable all Buttons (except Exit [X]) if a Process started later than MyGUI and enable if Process was closed?

Share this post


Link to post
Share on other sites



#2 ·  Posted (edited)

Please have a look at GUICtrlSetState function.

more specifically: $GUI_ENABLE and $GUI_DISABLE.

Good luck,

Omga4000.

Edited by Omga4000

Share this post


Link to post
Share on other sites

Something like this...

Local $aState[$GUI_DISABLE, $GUI_ENABLE]
GUICtrlSetState($iControlID, $aState[ProcessExists('SciTE.exe')]) ; ProcessExists returns 1 or 0, so they can be used as index values for the array.

_AdapterConnections()_AlwaysRun()_AppMon()_AppMonEx()_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: 04/09/2015

Share this post


Link to post
Share on other sites

Shocker,

If you want to disable/enable controls based on whether or not a process is running it can be done like this (I use Windows Live Mail in the example):

#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>

#AutoIt3Wrapper_Add_Constants=n

Local $gui010 = GUICreate('', 100, 100)
Local $btn010 = GUICtrlCreateButton('My Button', 10, 20, 80, 50)
GUISetState()

AdlibRegister("_check_process", 250)

While 1
    Switch GUIGetMsg()
        Case $gui_event_close
            Exit
    EndSwitch
WEnd

Func _check_process()

    Switch ProcessExists('wlcomm.exe')
        Case 0
            If BitAND(GUICtrlGetState($btn010), $gui_disable) = $gui_disable Then GUICtrlSetState($btn010, $gui_enable)
        Case Else
            If BitAND(GUICtrlGetState($btn010), $gui_enable) = $gui_enable Then GUICtrlSetState($btn010, $gui_disable)
    EndSwitch

EndFunc   ;==>_check_process

If you are trying to disable/enable the minimize/maximize gui controls then I have not been able to find anything that will do that.  Maybe one of the gui experts will advise.

Good Luck,

kylomas

1 person likes this

Forum Rules         Procedure for posting code

"I like pigs.  Dogs look up to us.  Cats look down on us.  Pigs treat us as equals."

- Sir Winston Churchill

Share this post


Link to post
Share on other sites

Thx 4 reply to all!

@Omga4000

I know GUICtrlSetState, but i had no idea for a loop to check whether ProcessExists.

@guinness

Got an error... :blink:

syntax error
Local $aState[$GUI_DISABLE,
~~~~~~~~~~~~~~~~~~~~~~~~~~^

@kylomas

Thx, works fine :thumbsup: add all my Buttons to this Func and when ProcessExists all are disabled but i can still close MyGui.

Func _check_process()

    Switch ProcessExists('wlcomm.exe')
        Case 0
            ;from Button1
            If BitAND(GUICtrlGetState($btn010), $gui_disable) = $gui_disable Then GUICtrlSetState($btn010, $gui_enable)
            If BitAND(GUICtrlGetState($btn020), $gui_disable) = $gui_disable Then GUICtrlSetState($btn020, $gui_enable)
            ;till Button8...
            If BitAND(GUICtrlGetState($btn080), $gui_disable) = $gui_disable Then GUICtrlSetState($btn080, $gui_enable)
        Case Else
            ;from Button1
            If BitAND(GUICtrlGetState($btn010), $gui_enable) = $gui_enable Then GUICtrlSetState($btn010, $gui_disable)
            If BitAND(GUICtrlGetState($btn020), $gui_enable) = $gui_enable Then GUICtrlSetState($btn020, $gui_disable)
            ;till Button8...
            If BitAND(GUICtrlGetState($btn080), $gui_enable) = $gui_enable Then GUICtrlSetState($btn080, $gui_disable)
    EndSwitch

EndFunc   ;==>_check_process

Share this post


Link to post
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
Sign in to follow this  
Followers 0