Jump to content
nacerbaaziz

question about the GUICtrlCreateTab

Recommended Posts

nacerbaaziz

Hi dears

I've got a question in creating tabs in autoit
Usually in other programs you can move between tabs by pressing ctrl + tab or ctrl + shift + tab

I tried to create a window  which have a multy  tab but when i press one of the shortcuts
it does not move between the tabs
Is there an option to enable or disable this
Greetings
this is the example i tryed

#include <GUIConstants.au3>
#include <MsgBoxConstants.au3>
#include <TabConstants.au3>
#include <ComboConstants.au3>
#include <WindowsConstants.au3>
#include <GuiComboBox.au3>
effectsSettings()
func effectsSettings()
local $echoCombo[6], $reverbCombo[5],  $CHORUSCombo[8], $flangerCombo[8], $paramEQCombo[4], $distortionCombo[6], $gargleCombo[3]
$EffWindow = GUICreate("efects settings", 400, 400, -1, -1, $WS_TABSTOP)
local $BtOK = GUICtrlCreateButton("ok", 5, 360, 50, 30, 0x01)
GUIStartGroup("")
local $BTCancel = GUICtrlCreateButton("cancel", 340, 360, 50, 30)
GUIStartGroup("")
local $effectTabs =     GUICtrlCreateTab(10, 10, 380, 70)
GUICtrlSetState(-1, $GUI_focus)
        GUICtrlCreateTabItem("echo")
GUICtrlCreateLabel("fWetDryMix", 50, 100, 100, 60)
$echoCombo[1] = GUICtrlCreateCombo("", 60, 110, 80, 40)
GUICtrlCreateLabel("fFeedback", 180, 100, 100, 60)
$echoCombo[2] = GUICtrlCreateCombo("", 190, 110, 80, 40)
    GUICtrlCreateLabel("fLeftDelay", 290, 100, 100, 60)
$echoCombo[3] = GUICtrlCreateCombo("", 300, 110, 80, 40)
    GUICtrlCreateLabel("fRightDelay", 50, 180, 100, 60)
$echoCombo[4] = GUICtrlCreateCombo("", 60, 190, 80, 40)
    GUICtrlCreateLabel("lPanDelay", 180, 180, 100, 60)
$echoCombo[5] = GUICtrlCreateCombo("", 190, 190, 80, 40)
        GUICtrlCreateTabItem("reverb")
GUICtrlCreateLabel("fInGain", 50, 100, 100, 60)
$ReverbCombo[1] = GUICtrlCreateCombo("", 60, 110, 80, 40)
    GUICtrlCreateLabel("fReverbMix", 180, 100, 100, 60)
$ReverbCombo[2] = GUICtrlCreateCombo("", 190, 110, 80, 40)
    GUICtrlCreateLabel("fReverbTime", 290, 100, 100, 60)
$ReverbCombo[3] = GUICtrlCreateCombo("", 300, 110, 80, 40)
    GUICtrlCreateLabel("fHighFreqRTRatio", 50, 180, 100, 60)
$ReverbCombo[4] = GUICtrlCreateCombo("", 60, 190, 80, 40)
    GUICtrlCreateTabItem("chorus")
GUICtrlCreateLabel("fWetDryMix", 50, 100, 100, 60)
$ChorusCombo[1] = GUICtrlCreateCombo("", 60, 110, 80, 40)
    GUICtrlCreateLabel("fDepth", 180, 100, 100, 60)
$ChorusCombo[2] = GUICtrlCreateCombo("", 190, 110, 80, 40)
    GUICtrlCreateLabel("fFeedback", 290, 100, 100, 60)
$ChorusCombo[3] = GUICtrlCreateCombo("", 300, 110, 80, 40)
    GUICtrlCreateLabel("fFrequency", 50, 180, 100, 60)
$ChorusCombo[4] = GUICtrlCreateCombo("", 60, 190, 80, 40)
    GUICtrlCreateLabel("lWaveform", 180, 180, 100, 60)
$ChorusCombo[5] = GUICtrlCreateCombo("", 190, 190, 80, 40)
    GUICtrlCreateLabel("fDelay", 290, 180, 100, 60)
$ChorusCombo[6] = GUICtrlCreateCombo("", 300, 190, 80, 40)
    GUICtrlCreateLabel("lPhase", 50, 260, 100, 60)
$ChorusCombo[7] = GUICtrlCreateCombo("", 60, 270, 80, 40)
        GUICtrlCreateTabItem("flanger")
GUICtrlCreateLabel("fWetDryMix", 50, 100, 100, 60)
$FlangerCombo[1] = GUICtrlCreateCombo("", 60, 110, 80, 40)
    GUICtrlCreateLabel("fDepth", 180, 100, 100, 60)
$FlangerCombo[2] = GUICtrlCreateCombo("", 190, 110, 80, 40)
    GUICtrlCreateLabel("fFeedback", 290, 100, 100, 60)
$FlangerCombo[3] = GUICtrlCreateCombo("", 300, 110, 80, 40)
    GUICtrlCreateLabel("fFrequency", 50, 180, 100, 60)
$FlangerCombo[4] = GUICtrlCreateCombo("", 60, 190, 80, 40)
    GUICtrlCreateLabel("lWaveform", 180, 180, 100, 60)
$FlangerCombo[5] = GUICtrlCreateCombo("", 190, 190, 80, 40)
    GUICtrlCreateLabel("fDelay", 290, 180, 100, 60)
$FlangerCombo[6] = GUICtrlCreateCombo("", 300, 190, 80, 40)
    GUICtrlCreateLabel("lPhase", 50, 260, 100, 60)
$FlangerCombo[7] = GUICtrlCreateCombo("", 60, 270, 80, 40)
        GUICtrlCreateTabItem("paramatric eq")
GUICtrlCreateLabel("fCenter", 50, 100, 100, 60)
$parameqCombo[1] = GUICtrlCreateCombo("", 60, 110, 80, 40)
    GUICtrlCreateLabel("fBandwidth", 180, 100, 100, 60)
$ParamEqCombo[2] = GUICtrlCreateCombo("", 190, 110, 80, 40)
    GUICtrlCreateLabel("fGain", 290, 100, 100, 60)
$parameqCombo[3] = GUICtrlCreateCombo("", 300, 110, 80, 40)
        GUICtrlCreateTabItem("distortion")
GUICtrlCreateLabel("fGain", 50, 100, 100, 60)
$distortionCombo[1] = GUICtrlCreateCombo("", 60, 110, 80, 40)
    GUICtrlCreateLabel("fEdge", 180, 100, 100, 60)
$distortionCombo[2] = GUICtrlCreateCombo("", 190, 110, 80, 40)
    GUICtrlCreateLabel("fPostEQCenterFrequency", 290, 100, 100, 60)
$distortionCombo[3] = GUICtrlCreateCombo("", 300, 110, 80, 40)
    GUICtrlCreateLabel("fFrequency", 50, 180, 100, 60)
$distortionCombo[4] = GUICtrlCreateCombo("", 60, 190, 80, 40)
    GUICtrlCreateLabel("fPostEQBandwidth", 180, 180, 100, 60)
$distortionCombo[5] = GUICtrlCreateCombo("", 190, 190, 80, 40)
        GUICtrlCreateTabItem("gargle")
GUICtrlCreateLabel("dwRateHz", 50, 100, 100, 60)
$gargleCombo[1] = GUICtrlCreateCombo("", 60, 110, 80, 40)
    GUICtrlCreateLabel("dwWaveShape", 180, 100, 100, 60)
$gargleCombo[2] = GUICtrlCreateCombo("", 190, 110, 80, 40)
GUISetState(@sw_show, $EffWindow)
While 1
Switch GUIGetMSG()
case $GUI_Event_close, $BTCancel
exit
EndSwitch
Wend
return ""
endFunc

Share this post


Link to post
Share on other sites
water

Maybe this line of the help file for GUICtrlCreateTabItem explains waht you missed:

Quote

It is important to close the tab structure by creating a final tabitem control with a null text - GUICtrlCreateTabItem("").

 


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2018-10-19 - Version 1.4.10.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (2018-10-31 - Version 1.3.4.1) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
PowerPoint (2017-06-06 - Version 0.0.5.0) - Download - General Help & Support
Excel - Example Scripts - Wiki
Word - Wiki
 
Tutorials:

ADO - Wiki

 

Share this post


Link to post
Share on other sites
nacerbaaziz

The same problem dear

Share this post


Link to post
Share on other sites
TheXman
Posted (edited)

@nacerbaaziz

When the tab itself is highlighted, the left and right arrow keys allow you to move between tabs.

Edited by TheXman

Share this post


Link to post
Share on other sites
nacerbaaziz

@TheXman
I know this my dear

But the Feature wich i talking about it
it Works anywhere in the window

So for that I liked to ask about this Feature if it is exist  in autoit or no
I hope with all my heart that it exists because ,it is a very sweet feature

Greetings to all

Share this post


Link to post
Share on other sites
Deye
Posted (edited)

nacerbaaziz ,

#include <GUIConstants.au3>
#include <WinAPISys.au3>
#include <GuiTab.au3>

Global $hGui, $idUser

HotKeySet("^{1}", "_SwitchMode1")

HotKeySet("^{2}", "_SwitchMode2")
HotKeySet("^+{2}", "_SwitchMode2")

Example()

Func Example()
    $hGui = GUICreate("My GUI Tab", 350, 150) ; will create a dialog box that when displayed is centered

    GUISetBkColor(0x00E0FFFF)
    GUISetFont(9, 300)

    Local $idTab = GUICtrlCreateTab(10, 10, 300, 100)

    GUICtrlCreateTabItem("tab0")
    GUICtrlCreateLabel("label0", 30, 80, 50, 20)
    GUICtrlCreateButton("OK0", 20, 50, 50, 20)
    GUICtrlCreateInput("default", 80, 50, 70, 20)

    GUICtrlCreateTabItem("tab----1")
    GUICtrlCreateLabel("label1", 30, 80, 50, 20)
    GUICtrlCreateCombo("", 20, 50, 60, 120)
    GUICtrlSetData(-1, "Trids|CyberSlug|Larry|Jon|Tylo|guinness", "Jon") ; default Jon
    GUICtrlCreateButton("OK1", 80, 50, 50, 20)

    GUICtrlCreateTabItem("tab2")
    GUICtrlCreateLabel("label2", 30, 80, 50, 20)
    GUICtrlCreateButton("OK2", 140, 50, 50)

    GUICtrlCreateTabItem("tab3")
    GUICtrlCreateLabel("label3", 30, 80, 50, 20)
    GUICtrlCreateButton("OK3", 140, 50, 50)

    GUICtrlCreateTabItem("tab4")
    GUICtrlCreateLabel("label4", 30, 80, 50, 20)
    GUICtrlCreateButton("OK4", 140, 50, 50)

    GUICtrlCreateTabItem("") ; end tabitem definition

    GUICtrlCreateLabel("Click on tab and see the title", 20, 130, 250, 20)

    Local $iCount = _GUICtrlTab_GetItemCount($idTab) - 1, $bShift, $bCtrl, $imode = 0
    $idUser = GUICtrlCreateDummy()
    GUICtrlSetData($idUser, 0)

    Local $aAccelKeys[2][2] = [["^{TAB}", $idUser], ["^+{TAB}", $idUser]]
    GUISetAccelerators($aAccelKeys)

    GUISetState(@SW_SHOW)

    Local $idMsg
    ; Loop until the user exits.
    While 1
        $idMsg = GUIGetMsg()
        If $idMsg = $GUI_EVENT_CLOSE Then ExitLoop
        If $idMsg = $idTab Then
            ; display the clicked tab
            WinSetTitle("My GUI Tab", "", "My GUI Tab" & GUICtrlRead($idTab))
        EndIf
        If $idMsg = $idUser Then
            $bShift = (_WinAPI_GetAsyncKeyState(0x10) < 0 ? 1 : 0)
            $bCtrl = (_WinAPI_GetAsyncKeyState(0x11) < 0 ? 1 : 0)
            $iTab = GUICtrlRead($idTab)
            Switch (GUICtrlRead($idUser) <> 0 ? GUICtrlRead($idUser) : 0)
                Case 0                                  ; switch to next tab  +-
                     ControlFocus($hGui, "", "SysTabControl321")
                    If $iTab = $iCount Or $iTab = 0 Then
                        If Not $bShift And $iTab = 0 Then
                            _GUICtrlTab_ActivateTab($idTab, 1)
                        ElseIf Not $bShift Then
                            _GUICtrlTab_ActivateTab($idTab, ($iTab = 0 ? $idTab : 0))
                        Else
                            _GUICtrlTab_ActivateTab($idTab, ($iTab = $iCount ? $iCount - 1 : $iCount))
                        EndIf
                    Else
                        ControlSend($hGui, "", $idTab, _GUICtrlTab_ActivateTab($idTab, $iTab))
                    EndIf

                Case 1                                  ;send out a raw key combo to trigger screen reader
                    GUISetAccelerators("")
                    GUICtrlSetData($idUser, 0)
                    MsgBox(0, '', "Start screen Reader - hot key")
                    $bCtrl = ($bCtrl = 0 ? "" : "^")
                    $bShift = ($bShift = 0 ? "" : "+")

;~                      Send($bShift & "{b}")            ;in example can be anything else other than "{TAB}, omit $bCtrl or $bShift depending on what the outer program needs to recall"

                    Send($bCtrl & $bShift & "{TAB}")
                    Send("{CTRLUP}")
                    Send("{SHIFTUP}")
                    GUISetAccelerators($aAccelKeys)
                Case 2                                  ;HotKeySet to attach functions
                    GUICtrlSetData($idUser, 0)
                    If $bShift And $bCtrl Then ;"^+{*}"
                        _Test12()
                    ElseIf $bCtrl Then ;"^{*}"
                        _Test1()
                    EndIf
            EndSwitch
        EndIf
        Sleep(10)
    WEnd
EndFunc   ;==>Example

Func _SwitchMode1()                         ;send out a raw key combo to start screen reader (see : Case 1 )
    WinActivate($hGui, "")
    GUICtrlSendToDummy($idUser, 1)
EndFunc   ;==>_SwitchMode1

Func _SwitchMode2()                         ;HotKeySet to attach functions
    WinActivate($hGui, "")
    GUICtrlSendToDummy($idUser, 2)
EndFunc   ;==>_SwitchMode2

Func _Test1()
    MsgBox(262144, "Test 2", "Started function activated with " & @CRLF & "Hotkey : Ctrl + ")
EndFunc   ;==>_Test1

Func _Test12()
    MsgBox(262144, 'Test 2', "Started function activated with " & @CRLF & "Hotkey :  Ctrl + Shift")
EndFunc   ;==>_Test12

 

Edited by Deye
FInal edit

Share this post


Link to post
Share on other sites
nacerbaaziz

Unfortunately GUISetAccelerators do not work here because ctrl + tab and ctrl + shift + tab
Is a regular shortcut for the screen reader and its task is to move between the tabs
Thus, these two shortcut keys  can not be assigned to specific work
Greetings

Share this post


Link to post
Share on other sites
Deye
Posted (edited)

see above

 

Edited by Deye

Share this post


Link to post
Share on other sites
Deye
Posted (edited)

try my last edit in my posts above

Deye

Edited by Deye

Share this post


Link to post
Share on other sites
nacerbaaziz

@Deye
Thanks dear for your interaction with my subject.
Brother, in order to fully understand my point, i hope that you try to  open any window created using any other language but Provided  that it contain tabs.
For example
System Configuration Tool
I mean (msconfig.exe)
Then select any of the items by using the TAB key .
after that, please try pressing the keybord shortcut CTRL + TAB and the shortcut CTRL + SHIFT + TAB
and see the result
with all my regards and respect to you dear

Share this post


Link to post
Share on other sites
Subz

Don't know if this helps but why not something like:

#include <GuiTab.au3>

Global $effectTabs ;~ Remove the Local declaration in effectsSettings function

HotKeySet("^{Tab}", "_TabRight")
HotKeySet("^+{Tab}", "_TabRight")

;~ Rest of your code here..

Func _TabRight()
    Local $iTabItems = _GUICtrlTab_GetItemCount ($effectTabs) - 1
    Local $iTabItem = _GUICtrlTab_GetCurSel($effectTabs)
    If $iTabItem = $iTabItems Then _GUICtrlTab_SetCurSel($effectTabs, 0) ;~ If its the last tab, go to the first tab
    _GUICtrlTab_SetCurSel($effectTabs, $iTabItem + 1)
EndFunc

 

Share this post


Link to post
Share on other sites
Deye

nacerbaaziz,

I believe you can work it out to play nicely with your screen reader if you will understand the options of what can be done with the example i have edited above
Particularly follow up  HotKeySet "^{1}"  ..

Deye

Share this post


Link to post
Share on other sites
Deye
Posted (edited)

acerbaaziz,

I just tried out screen reader i noticed that it will be hard to follow some of the lines i have posted in my example
Hence, I incorporated the tab switching functionality into your example so you can first check what works ..

#include <GUIConstants.au3>
#include <MsgBoxConstants.au3>
#include <TabConstants.au3>
#include <ComboConstants.au3>
#include <WindowsConstants.au3>
#include <GuiComboBox.au3>
#include <WinAPISys.au3>
#include <GuiTab.au3>

effectsSettings()
func effectsSettings()
local $echoCombo[6], $reverbCombo[5],  $CHORUSCombo[8], $flangerCombo[8], $paramEQCombo[4], $distortionCombo[6], $gargleCombo[3]
$EffWindow = GUICreate("efects settings", 400, 400, -1, -1, $WS_TABSTOP)
local $BtOK = GUICtrlCreateButton("ok", 5, 360, 50, 30, 0x01)
GUIStartGroup("")
local $BTCancel = GUICtrlCreateButton("cancel", 340, 360, 50, 30)
GUIStartGroup("")
local $effectTabs =     GUICtrlCreateTab(10, 10, 380, 70)
GUICtrlSetState(-1, $GUI_focus)
     GUICtrlCreateTabItem("echo")
GUICtrlCreateLabel("fWetDryMix", 50, 100, 100, 60)
$echoCombo[1] = GUICtrlCreateCombo("", 60, 110, 80, 40)
GUICtrlCreateLabel("fFeedback", 180, 100, 100, 60)
$echoCombo[2] = GUICtrlCreateCombo("", 190, 110, 80, 40)
    GUICtrlCreateLabel("fLeftDelay", 290, 100, 100, 60)
$echoCombo[3] = GUICtrlCreateCombo("", 300, 110, 80, 40)
    GUICtrlCreateLabel("fRightDelay", 50, 180, 100, 60)
$echoCombo[4] = GUICtrlCreateCombo("", 60, 190, 80, 40)
    GUICtrlCreateLabel("lPanDelay", 180, 180, 100, 60)
$echoCombo[5] = GUICtrlCreateCombo("", 190, 190, 80, 40)
    GUICtrlCreateTabItem("reverb")
GUICtrlCreateLabel("fInGain", 50, 100, 100, 60)
$ReverbCombo[1] = GUICtrlCreateCombo("", 60, 110, 80, 40)
    GUICtrlCreateLabel("fReverbMix", 180, 100, 100, 60)
$ReverbCombo[2] = GUICtrlCreateCombo("", 190, 110, 80, 40)
    GUICtrlCreateLabel("fReverbTime", 290, 100, 100, 60)
$ReverbCombo[3] = GUICtrlCreateCombo("", 300, 110, 80, 40)
    GUICtrlCreateLabel("fHighFreqRTRatio", 50, 180, 100, 60)
$ReverbCombo[4] = GUICtrlCreateCombo("", 60, 190, 80, 40)
    GUICtrlCreateTabItem("chorus")
GUICtrlCreateLabel("fWetDryMix", 50, 100, 100, 60)
$ChorusCombo[1] = GUICtrlCreateCombo("", 60, 110, 80, 40)
    GUICtrlCreateLabel("fDepth", 180, 100, 100, 60)
$ChorusCombo[2] = GUICtrlCreateCombo("", 190, 110, 80, 40)
    GUICtrlCreateLabel("fFeedback", 290, 100, 100, 60)
$ChorusCombo[3] = GUICtrlCreateCombo("", 300, 110, 80, 40)
    GUICtrlCreateLabel("fFrequency", 50, 180, 100, 60)
$ChorusCombo[4] = GUICtrlCreateCombo("", 60, 190, 80, 40)
    GUICtrlCreateLabel("lWaveform", 180, 180, 100, 60)
$ChorusCombo[5] = GUICtrlCreateCombo("", 190, 190, 80, 40)
    GUICtrlCreateLabel("fDelay", 290, 180, 100, 60)
$ChorusCombo[6] = GUICtrlCreateCombo("", 300, 190, 80, 40)
    GUICtrlCreateLabel("lPhase", 50, 260, 100, 60)
$ChorusCombo[7] = GUICtrlCreateCombo("", 60, 270, 80, 40)
    GUICtrlCreateTabItem("flanger")
GUICtrlCreateLabel("fWetDryMix", 50, 100, 100, 60)
$FlangerCombo[1] = GUICtrlCreateCombo("", 60, 110, 80, 40)
    GUICtrlCreateLabel("fDepth", 180, 100, 100, 60)
$FlangerCombo[2] = GUICtrlCreateCombo("", 190, 110, 80, 40)
    GUICtrlCreateLabel("fFeedback", 290, 100, 100, 60)
$FlangerCombo[3] = GUICtrlCreateCombo("", 300, 110, 80, 40)
    GUICtrlCreateLabel("fFrequency", 50, 180, 100, 60)
$FlangerCombo[4] = GUICtrlCreateCombo("", 60, 190, 80, 40)
    GUICtrlCreateLabel("lWaveform", 180, 180, 100, 60)
$FlangerCombo[5] = GUICtrlCreateCombo("", 190, 190, 80, 40)
    GUICtrlCreateLabel("fDelay", 290, 180, 100, 60)
$FlangerCombo[6] = GUICtrlCreateCombo("", 300, 190, 80, 40)
    GUICtrlCreateLabel("lPhase", 50, 260, 100, 60)
$FlangerCombo[7] = GUICtrlCreateCombo("", 60, 270, 80, 40)
    GUICtrlCreateTabItem("paramatric eq")
GUICtrlCreateLabel("fCenter", 50, 100, 100, 60)
$parameqCombo[1] = GUICtrlCreateCombo("", 60, 110, 80, 40)
    GUICtrlCreateLabel("fBandwidth", 180, 100, 100, 60)
$ParamEqCombo[2] = GUICtrlCreateCombo("", 190, 110, 80, 40)
    GUICtrlCreateLabel("fGain", 290, 100, 100, 60)
$parameqCombo[3] = GUICtrlCreateCombo("", 300, 110, 80, 40)
    GUICtrlCreateTabItem("distortion")
GUICtrlCreateLabel("fGain", 50, 100, 100, 60)
$distortionCombo[1] = GUICtrlCreateCombo("", 60, 110, 80, 40)
    GUICtrlCreateLabel("fEdge", 180, 100, 100, 60)
$distortionCombo[2] = GUICtrlCreateCombo("", 190, 110, 80, 40)
    GUICtrlCreateLabel("fPostEQCenterFrequency", 290, 100, 100, 60)
$distortionCombo[3] = GUICtrlCreateCombo("", 300, 110, 80, 40)
    GUICtrlCreateLabel("fFrequency", 50, 180, 100, 60)
$distortionCombo[4] = GUICtrlCreateCombo("", 60, 190, 80, 40)
    GUICtrlCreateLabel("fPostEQBandwidth", 180, 180, 100, 60)
$distortionCombo[5] = GUICtrlCreateCombo("", 190, 190, 80, 40)
    GUICtrlCreateTabItem("gargle")
    GUICtrlCreateTabItem("") ; end tabitem definition
GUICtrlCreateLabel("dwRateHz", 50, 100, 100, 60)
$gargleCombo[1] = GUICtrlCreateCombo("", 60, 110, 80, 40)
    GUICtrlCreateLabel("dwWaveShape", 180, 100, 100, 60)
$gargleCombo[2] = GUICtrlCreateCombo("", 190, 110, 80, 40)
Local $iCount = _GUICtrlTab_GetItemCount($effectTabs) - 1, $bShift, $bCtrl
$idUser = GUICtrlCreateDummy()
GUICtrlSetData(-1, 0)
Local $aAccelKeys[2][2] = [["^{TAB}", $idUser], ["^+{TAB}", $idUser]]
GUISetAccelerators($aAccelKeys)
GUISetState(@sw_show, $EffWindow)
While 1
Switch GUIGetMSG()
case $GUI_Event_close, $BTCancel
exit
; the function that switches between tabs
case $idUser
$bShift = (_WinAPI_GetAsyncKeyState(0x10) < 0 ? 1 : 0)
$iTab = GUICtrlRead($effectTabs)
ControlFocus($EffWindow, "", "SysTabControl321")
If $iTab = $iCount Or $iTab = 0 Then
If Not $bShift And $iTab = 0 Then
_GUICtrlTab_ActivateTab($effectTabs, 1)
ElseIf Not $bShift Then
_GUICtrlTab_ActivateTab($effectTabs, ($iTab = 0 ? $iTab : 0))
Else
_GUICtrlTab_ActivateTab($effectTabs, ($iTab = $iCount ? $iCount - 1 : $iCount))
EndIf
Else
ControlSend($EffWindow, "", $effectTabs,  $iTab)
EndIf
EndSwitch
Wend
return ""
endFunc

 

Edited by Deye

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

  • Similar Content

    • SharpDressedMan
      By SharpDressedMan
      I have an array of subarrays, eg:
      local $a[3] = [ 1, 2, 3 ] local $b[3] = [ 4, 5, 6 ] local $c[2] = [ $a, $b ] I can read read a subarray element of the array, as follows:
      local $c12 = ($c[1])[2] ; result: $c12 = 6 However, when I try to set a subarray element as follows, it fails:
      ($c[1])[2] = 12 ; this fails to set subarray element local $c12 = ($c[1])[2] ; result: $c12 = 6 How to set a subarray element ?
      Thanks
    • nooneclose
      By nooneclose
      Good morning everyone, I thought I had already solved this issue but it turns out I did not. 
      My code finds unread emails with this specific subject line of "request" but when I change the subject to SKIPPED + "request" = ("SKIPPED request") the program still finds the email and tries to process it. I only want to process emails with the exact match subject of "request".
      Here is my code that "finds" the unread emails with the subject of "request" or so I thought. 
      Func ListUnreadEmails() ;******************************************************************************* ; Lists all unread E-mails from the folder Outlook-UDF-Test ;******************************************************************************* ; Stores all the unRead emails into an array Global $aItems = _OL_ItemFind($oOutlook, "*\Outlook-UDF-Test", $olMail, _ "[UnRead]=True", "Subject", "request", "EntryID,Subject", "", 1) ; Displays the array of unRead emails If IsArray($aItems) Then ;_ArrayDisplay($aItems, "OutlookEX UDF: _OL_ItemFind - Unread mails") Else MsgBox(48, "OutlookEX UDF: _OL_ItemFind Example Script", _ "Could not find an unread mail. @error = " & @error & ", @extended: " & @extended) EndIf ; Gets the number of unread emails Global $numberOfUnRead = UBound($aItems, $UBOUND_ROWS) - 1 ;MsgBox("", "Number of Unread emails", $numberOfUnRead) EndFunc It acts as if any part of the subject containing the word "request" and the email is unread that it will try to process it. (I think)
    • KhalidAnsari
      By KhalidAnsari
      Hi,
      I need to automate Java application using AutoIt, I have refer forum for the same, as per forum I am using Java Access Bridge to finding control name. But could not set value to control. Below is my sample code 
      Send("#r")
      sleep(1500)
      Send("D:\javaapplication\javaapplication\Hello.jar{Enter}")
      WinActivate("Penjumlahan")
      sleep(1500)
      ControlSetText("Penjumlahan", "", "Name:  A :", "demo")
      Java Application and Java Ferret screen

    • QaisBsharat
      By QaisBsharat
      Hello, 
      May i know how can i automation qt application?
      Using controlclick not mouse and positions
       
      Thanks
    • nooneclose
      By nooneclose
      Good afternoon, I am in need of some help. I am sure this is a stupid question requiring only one or two lines of code. However, I would greatly appreciate the help I cannot figure this out. I also tried searching for the answer on the internet but no one except me apparently seems to be having a hard time figuring this out and or is asking about it. 
      I simply want to change the "status" of an email from unread to read once I have processed it. My code is over 500 lines and I would like not to clutter this post with it. Assume I have all my includes and connections properly defined and stuff. 
      Here is the bit of code where I am trying to change the email that was used from unread to read:
      Func ChangeEmailStatus() ;******************************************************************************* ; changes the status of an email from unread to Read ;******************************************************************************* Local $iRows = UBound($aItems, $UBOUND_ROWS) MsgBox("", "Number of Unread emails (Before Change)", $iRows) _OL_ItemModify($oOutlook,$aItems[$i][0], Default, "Read=True") MsgBox("", "Array Display 1", $aItems[1][0]) MsgBox("", "Array Display 2", $aItems[2][0]) Local $iRows = UBound($aItems, $UBOUND_ROWS) MsgBox("", "Number of Unread emails (After Change)", $iRows) EndFunc  
×