Jump to content
Sign in to follow this  
Shocker

How disable Buttons if ProcessExists?

Recommended Posts

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

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.

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

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


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  

×
×
  • Create New...