Valnurat

Mainform is set to "Hide"

13 posts in this topic

#1 ·  Posted

I have a mainform with a listview and a button. If I press the button a childform is showed.

If I press the [X] in the childform, childform is deleted, but the mainform set to "BringsToBack" or is getting "hide" back of the other applications that's running on my computer.

I hope you understand what I mean. :)

How can I avoid that for happing?

#include <GuiListView.au3>
#include <GUIConstantsEx.au3>


Global $idListview, $idOKay, $hMainForm, $idNewEntry, $idEditEntry, $aMsg, $hNewEntry, $idNewOKay, $idNewCancel


_MainFormCreate()
_Main()


Func _MainFormCreate()
    ; Create GUI
    $hMainForm = GUICreate("Computer Asset", 1027, 400)
    $idListview = GUICtrlCreateListView("", 2, 2, 1024, 268,BitOR($LVS_SHOWSELALWAYS, $LVS_REPORT))

    ; Add columns
    _GUICtrlListView_AddColumn($idListview, "Computername", 100,2)
    _GUICtrlListView_AddColumn($idListview, "Tkt No.", 100,2)
    _GUICtrlListView_AddColumn($idListview, "Req No.", 100,2)
    _GUICtrlListView_AddColumn($idListview, "Order Date", 100,2)
    _GUICtrlListView_AddColumn($idListview, "Costcenter", 100,2)
    _GUICtrlListView_AddColumn($idListview, "Username", 100,2)
    _GUICtrlListView_AddColumn($idListview, "Model", 100,2)
    _GUICtrlListView_AddColumn($idListview, "Current Location", 100,2)
    _GUICtrlListView_AddColumn($idListview, "Option", 100,2)
    _GUICtrlListView_AddColumn($idListview, "Shipdate", 100,2)
    $idNewEntry = GUICtrlCreateButton("New", 310, 290, 85, 25)
    GUISetState()
EndFunc

Func _NewFormCreate()
    $hNewEntry = GUICreate("Create New", 500, 500, -1, -1,-1,-1,$hMainForm)
    $idNewOKay = GUICtrlCreateButton("Ok", 110, 290, 85, 25)
    $idNewCancel = GUICtrlCreateButton("Cancel", 310, 290, 85, 25)
    GUISetState()
EndFunc

Func _Main()
    While 1
        $aMsg = GUIGetMsg(1)
        Switch $aMsg[1]
            Case $hMainForm
                Switch $aMsg[0]
                    Case $GUI_EVENT_CLOSE
                        ExitLoop
                    Case $idNewEntry
                        _NewFormCreate()
                        GUISetState(@SW_DISABLE,$hMainForm)
                    Case $idListview
                        MsgBox($MB_SYSTEMMODAL, "listview", "clicked=" & GUICtrlGetState($idListview), 2)
                EndSwitch
            Case $hNewEntry
                Switch $aMsg[0]
                    Case $GUI_EVENT_CLOSE
                        GUIDelete($hNewEntry)
                        GUISetState(@SW_ENABLE, $hMainForm)
                EndSwitch
        EndSwitch
    WEnd
    GUIDelete()
EndFunc

 


Yours sincerely

Kenneth.

Share this post


Link to post
Share on other sites



#3 ·  Posted

I did think about that too, but is it necessary to use that kind of trix?


Yours sincerely

Kenneth.

Share this post


Link to post
Share on other sites

#4 ·  Posted (edited)

1 hour ago, Valnurat said:

I did think about that too, but is it necessary to use that kind of trix?

It's one way to do it, give the window focus. Another way would be instead if disabling the mainform, you could hide it then show it after. You can just change the GUISetState parameters you already use

#include <GuiListView.au3>
#include <GUIConstantsEx.au3>


Global $idListview, $idOKay, $hMainForm, $idNewEntry, $idEditEntry, $aMsg, $hNewEntry, $idNewOKay, $idNewCancel


_MainFormCreate()
_Main()


Func _MainFormCreate()
    ; Create GUI
    $hMainForm = GUICreate("Computer Asset", 1027, 400)
    $idListview = GUICtrlCreateListView("", 2, 2, 1024, 268,BitOR($LVS_SHOWSELALWAYS, $LVS_REPORT))

    ; Add columns
    _GUICtrlListView_AddColumn($idListview, "Computername", 100,2)
    _GUICtrlListView_AddColumn($idListview, "Tkt No.", 100,2)
    _GUICtrlListView_AddColumn($idListview, "Req No.", 100,2)
    _GUICtrlListView_AddColumn($idListview, "Order Date", 100,2)
    _GUICtrlListView_AddColumn($idListview, "Costcenter", 100,2)
    _GUICtrlListView_AddColumn($idListview, "Username", 100,2)
    _GUICtrlListView_AddColumn($idListview, "Model", 100,2)
    _GUICtrlListView_AddColumn($idListview, "Current Location", 100,2)
    _GUICtrlListView_AddColumn($idListview, "Option", 100,2)
    _GUICtrlListView_AddColumn($idListview, "Shipdate", 100,2)
    $idNewEntry = GUICtrlCreateButton("New", 310, 290, 85, 25)
    GUISetState()
EndFunc

Func _NewFormCreate()
    $hNewEntry = GUICreate("Create New", 500, 500, -1, -1,-1,-1,$hMainForm)
    $idNewOKay = GUICtrlCreateButton("Ok", 110, 290, 85, 25)
    $idNewCancel = GUICtrlCreateButton("Cancel", 310, 290, 85, 25)
    GUISetState()
EndFunc

Func _Main()
    While 1
        $aMsg = GUIGetMsg(1)
        Switch $aMsg[1]
            Case $hMainForm
                Switch $aMsg[0]
                    Case $GUI_EVENT_CLOSE
                        ExitLoop
                    Case $idNewEntry
                        _NewFormCreate()
;~                         GUISetState(@SW_DISABLE,$hMainForm)
                        GUISetState(@SW_HIDE,$hMainForm)
                    Case $idListview
                        MsgBox($MB_SYSTEMMODAL, "listview", "clicked=" & GUICtrlGetState($idListview), 2)
                EndSwitch
            Case $hNewEntry
                Switch $aMsg[0]
                    Case $GUI_EVENT_CLOSE
                        GUIDelete($hNewEntry)
;~                         GUISetState(@SW_ENABLE, $hMainForm)
                        GUISetState(@SW_SHOW, $hMainForm)
                EndSwitch
        EndSwitch
    WEnd
    GUIDelete()
EndFunc

 

Edited by benners

Share this post


Link to post
Share on other sites

#5 ·  Posted (edited)

Ok. I see your point. Thank you. :)

I hope I can ask another question that's off topic.

If I add this:

Func _MainFormCreate()
    ; Create GUI
    $hMainForm = GUICreate("Computer Asset", 1027, 400)
    $idListview = GUICtrlCreateListView("", 2, 2, 1024, 268,BitOR($LVS_SHOWSELALWAYS, $LVS_REPORT))

    ; Add columns
    _GUICtrlListView_AddColumn($idListview, "Computername", 100,2)
    _GUICtrlListView_AddColumn($idListview, "Tkt No.", 100,2)
    _GUICtrlListView_AddColumn($idListview, "Req No.", 100,2)
    _GUICtrlListView_AddColumn($idListview, "Order Date", 100,2)
    _GUICtrlListView_AddColumn($idListview, "Costcenter", 100,2)
    _GUICtrlListView_AddColumn($idListview, "Username", 100,2)
    _GUICtrlListView_AddColumn($idListview, "Model", 100,2)
    _GUICtrlListView_AddColumn($idListview, "Current Location", 100,2)
    _GUICtrlListView_AddColumn($idListview, "Option", 100,2)
    _GUICtrlListView_AddColumn($idListview, "Shipdate", 100,2)
    $idNewEntry = GUICtrlCreateButton("New", 310, 290, 85, 25)
    $idEditEntry = GUICtrlCreateButton("Edit", 410, 290, 85, 25)        ;<------- This 
    GUISetState(@SW_SHOW,$hMainForm)
EndFunc
Case $hNewEntry
                Switch $aMsg[0]
                    Case $GUI_EVENT_CLOSE
                        GUIDelete($hNewEntry)
                        GUISetState(@SW_ENABLE, $hMainForm)
                        WinActivate($hMainForm)
                    Case $idNewCancel                   ;<----------------------- And this
                        msgbox(0,"","test")             ;<----------------------- and this
                EndSwitch
Func _NewFormCreate()
    $hNewEntry = GUICreate("Create New", 500, 500, -1, -1,-1,-1,$hMainForm)
    $idNewOKay = GUICtrlCreateButton("Ok", 110, 290, 85, 25)
    $idNewCancel = GUICtrlCreateButton("Cancel", 310, 290, 85, 25)          ;<--- and this
    GUISetState(@SW_SHOW, $hNewEntry)
EndFunc

 

and I run it. It shows me the msgbox as the 1st thing on top of my mainform.

No matter if a press the ok button on the msgbox it still show me the msgbox.

How can that be?

Edited by Valnurat

Yours sincerely

Kenneth.

Share this post


Link to post
Share on other sites

#6 ·  Posted

During the while loop, GUIGetMsg is polled to see if any actions have happened. The values in aMsg do change (not sure why, maybe in built sleep returns something?) and one of the changes is the window handle the event is from returns 0, this triggers the switch case to check for controls matching that value. When you initialize the Global variables there are no values for the variables. The default it used, which is 0. As $hNewEntry is 0, it matches in the loop and fires events based on the control. The buttons are also 0 which then fires the msgbox. If you add a msgbox to the $idNewOKay button this will fire before the test msgbox.

To stop this from happening set $hNewEntry to non zero, like 999 this will stop the event firing, when the gui is created in _NewFormCreate a handle will be returned which will replaced the 999.

Global $idListview, $idOKay, $hMainForm, $idNewEntry, $idEditEntry, $aMsg, $hNewEntry = 999, $idNewOKay, $idNewCancel

 

Share this post


Link to post
Share on other sites

#7 ·  Posted

So you are telling me that this is a commen and known error?


Yours sincerely

Kenneth.

Share this post


Link to post
Share on other sites

#8 ·  Posted (edited)

No it's not an error. Looking at the help file if no event has occurred GUIGetMsg returns $GUI_EVENT_NONE whose value is 0, (all the values in the array are 0). As your second GUI hasn't been created and you don't assign it a value it is given one  ($hNewEntry = 0). The switch value is then 0 which matches Case $hNewEntry. The next Switch value is 0 so matches the first control who's value is 0

#include <GuiListView.au3>
#include <GUIConstantsEx.au3>
#include <array.au3>

Global $idListview, $idOKay, $hMainForm, $idNewEntry, $idEditEntry, $aMsg, $hNewEntry, $idNewOKay, $idNewCancel
;~ Global $idListview, $idOKay, $hMainForm, $idNewEntry, $idEditEntry, $aMsg, $hNewEntry = 999, $idNewOKay, $idNewCancel
_MainFormCreate()
_Main()

Func _MainFormCreate()
    ; Create GUI
    $hMainForm = GUICreate("Computer Asset", 1027, 400)
    $idListview = GUICtrlCreateListView("", 2, 2, 1024, 268, BitOR($LVS_SHOWSELALWAYS, $LVS_REPORT))

    ; Add columns
    _GUICtrlListView_AddColumn($idListview, "Computername", 100, 2)
    _GUICtrlListView_AddColumn($idListview, "Tkt No.", 100, 2)
    _GUICtrlListView_AddColumn($idListview, "Req No.", 100, 2)
    _GUICtrlListView_AddColumn($idListview, "Order Date", 100, 2)
    _GUICtrlListView_AddColumn($idListview, "Costcenter", 100, 2)
    _GUICtrlListView_AddColumn($idListview, "Username", 100, 2)
    _GUICtrlListView_AddColumn($idListview, "Model", 100, 2)
    _GUICtrlListView_AddColumn($idListview, "Current Location", 100, 2)
    _GUICtrlListView_AddColumn($idListview, "Option", 100, 2)
    _GUICtrlListView_AddColumn($idListview, "Shipdate", 100, 2)
    $idNewEntry = GUICtrlCreateButton("New", 310, 290, 85, 25)
    $idEditEntry = GUICtrlCreateButton("Edit", 410, 290, 85, 25)
    GUISetState()
EndFunc   ;==>_MainFormCreate

Func _NewFormCreate()
    $hNewEntry = GUICreate("Create New", 500, 500, -1, -1, -1, -1, $hMainForm)
    $idNewOKay = GUICtrlCreateButton("Ok", 110, 290, 85, 25)
    $idNewCancel = GUICtrlCreateButton("Cancel", 310, 290, 85, 25) ;<--- and this
    GUISetState()
EndFunc   ;==>_NewFormCreate

Func _Main()
    While 1
        $aMsg = GUIGetMsg(1) ; has anything happened?

        Switch $aMsg[1] ; no so $aMsg[1] = 0

            Case $hMainForm ; I have been created so I have a handle and it isn't 0
                Switch $aMsg[0]
                    Case $GUI_EVENT_CLOSE
                        ExitLoop
                    Case $idNewEntry
                        _NewFormCreate()
                        GUISetState(@SW_HIDE, $hMainForm)
                    Case $idListview
                        MsgBox($MB_SYSTEMMODAL, "listview", "clicked=" & GUICtrlGetState($idListview), 2)
                EndSwitch
            Case $hNewEntry ; I haven't been created so no handle, and I haven't been assigned a non zero value. So I match $aMsg[1]
                Switch $aMsg[0] ; I am zero
                    Case $GUI_EVENT_CLOSE ; I am -3 so I don't match the switch value
                        GUIDelete($hNewEntry)

                        GUISetState(@SW_SHOW, $hMainForm)
                    case $idNewOKay ; I am 0 as I haven't been created so no ID and I haven't been assigned a non zero value when declared (Global $hNewEntry). So I match $aMsg[0]
                        MsgBox(0,'ok', 'ok')
                    Case $idNewCancel  ; I am 0 as I haven't been created so no ID and I haven't been assigned a non zero value So I match $aMsg[0]
                        MsgBox(0, "", "cancel")
                EndSwitch
        EndSwitch
    WEnd

    GUIDelete()
EndFunc   ;==>_Main

This is as I understand it. Hopefully I have explained it correctly.

Edited by benners

Share this post


Link to post
Share on other sites

#9 ·  Posted

So you are telling me that everyone that is using more forms than 1 and as child, are setting the variables to non zero, for this not to happen?

 


Yours sincerely

Kenneth.

Share this post


Link to post
Share on other sites

#10 ·  Posted

This is working, but do I really have to do this?

#include <GuiListView.au3>
#include <GUIConstantsEx.au3>


Global $idListview, $aMsg
Global $hMainForm, $idNewEntry, $idEditEntry
Global $hEditForm = 999, $idEditCancel, $idEditOKay
Global $hNewForm = 999, $idNewOKay, $idNewCancel


_MainFormCreate()
_Main()


Func _MainFormCreate()
    ; Create GUI
    $hMainForm = GUICreate("Computer Asset", 1027, 400)
    $idNewEntry = GUICtrlCreateButton("New", 310, 290, 85, 25)
    $idEditEntry = GUICtrlCreateButton("Edit", 410, 290, 85, 25)
    GUISetState(@SW_SHOW,$hMainForm)
EndFunc

Func _NewFormCreate()
    $hNewForm = GUICreate("Create New", 500, 500, -1, -1,-1,-1,$hMainForm)
    $idNewOKay = GUICtrlCreateButton("Ok", 110, 290, 85, 25)
    $idNewCancel = GUICtrlCreateButton("Cancel", 310, 290, 85, 25)
    GUISetState(@SW_SHOW, $hNewForm)
EndFunc

Func _EditFormCreate()
    $hEditForm = GUICreate("Edit", 500, 500, -1, -1,-1,-1,$hMainForm)
    $idEditOKay = GUICtrlCreateButton("Ok", 110, 290, 85, 25)
    $idEditCancel = GUICtrlCreateButton("Cancel", 310, 290, 85, 25)
    GUISetState(@SW_SHOW, $hEditForm)
EndFunc

Func _Main()
    While 1
        $aMsg = GUIGetMsg(1)
        Switch $aMsg[1]
            Case $hMainForm
                Switch $aMsg[0]
                    Case $GUI_EVENT_CLOSE
                        ExitLoop
                    Case $idNewEntry
                        msgbox(0,"NewEntry",$aMsg[1] & @CRLF & $aMsg[0])
                        GUISetState(@SW_DISABLE, $hMainForm)
                        _NewFormCreate()
                    Case $idEditEntry
                        msgbox(0,"EditEntry",$aMsg[1] & @CRLF & $aMsg[0])
                        GUISetState(@SW_DISABLE, $hMainForm)
                        _EditFormCreate()
                EndSwitch
            Case $hEditForm
                Switch $aMsg[0]
                    Case $GUI_EVENT_CLOSE
                        msgbox(0,"GUI_EVENT_CLOSE",$aMsg[0] & @CRLF & $aMsg[1])
                        GUIDelete($hEditForm)
                        GUISetState(@SW_ENABLE, $hMainForm)
                        WinActivate($hMainForm)
                    Case $idEditCancel
                        msgbox(0,"EditCancel",$aMsg[0] & @CRLF & $aMsg[1])
                        GUIDelete($hEditForm)
                        GUISetState(@SW_ENABLE, $hMainForm)
                        WinActivate($hMainForm)
                    Case $idEditOKay
                        msgbox(0,"EditOKay",$aMsg[0] & @CRLF & $aMsg[1])
                EndSwitch
            Case $hNewForm
                Switch $aMsg[0]
                    Case $GUI_EVENT_CLOSE
                        msgbox(0,"GUI_EVENT_CLOSE",$aMsg[0] & @CRLF & $aMsg[1])
                        GUIDelete($hNewForm)
                        GUISetState(@SW_ENABLE, $hMainForm)
                        WinActivate($hMainForm)
                    Case $idNewCancel
                        msgbox(0,"NC",$aMsg[0] & @CRLF & $aMsg[1])
                        GUIDelete($hNewForm)
                        GUISetState(@SW_ENABLE, $hMainForm)
                        WinActivate($hMainForm)
                    Case $idNewOKay
                        msgbox(0,"NewOKay",$aMsg[0] & @CRLF & $aMsg[1])
                EndSwitch
        EndSwitch
    WEnd
    GUIDelete()
EndFunc

 


Yours sincerely

Kenneth.

Share this post


Link to post
Share on other sites

#11 ·  Posted

On 03/03/2017 at 11:22 AM, Valnurat said:

This is working, but do I really have to do this?

Unless you want the the msgboxes popping up all the time. You don't have to use 999, any non zero  positive number should work.

You could also draw the forms $hEditForm etc and hide them until needed. When the GUI is created it will assign a handle to the $hEditForm variable and this will also stop the msgbox code (or any other) from running

Share this post


Link to post
Share on other sites

#12 ·  Posted (edited)

I personally think the best way to do a multi GUI script is to build out the entire GUI first and then just show/hide windows as you need them, but barring that, you could simply handle the $GUI_EVENT_NONE value before the others and have it skip the loop, then it will bypass even checking those uninitialized variables.

#include <GUIConstantsEx.au3>

Global $id_Uninitialized

GUICreate('', 300, 200)
GUISetState()

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_NONE
            ContinueLoop
        Case $id_Uninitialized
            MsgBox(0, '', 'This will never happen, until the variable is non-zero.')
        Case $GUI_EVENT_CLOSE
            ExitLoop
    EndSwitch
WEnd

 

*** And just to provide an example of prebuilding the whole GUI, I whipped this up:

#include <GuiListView.au3>
#include <GUIConstantsEx.au3>

Global $idListview, $aMsg
Global $hMainForm, $idNewEntry, $idEditEntry
Global $hEditForm, $idEditCancel, $idEditOKay
Global $hNewForm, $idNewOKay, $idNewCancel

_Main()

Func _Main()
    $hMainForm = GUICreate("Computer Asset", 1027, 400)
    $idNewEntry = GUICtrlCreateButton("New", 310, 290, 85, 25)
    $idEditEntry = GUICtrlCreateButton("Edit", 410, 290, 85, 25)
    GUISetState(@SW_SHOW,$hMainForm)

    $hNewForm = GUICreate("Create New", 500, 500, -1, -1,-1,-1,$hMainForm)
    $idNewOKay = GUICtrlCreateButton("Ok", 110, 290, 85, 25)
    $idNewCancel = GUICtrlCreateButton("Cancel", 310, 290, 85, 25)

    $hEditForm = GUICreate("Edit", 500, 500, -1, -1,-1,-1,$hMainForm)
    $idEditOKay = GUICtrlCreateButton("Ok", 110, 290, 85, 25)
    $idEditCancel = GUICtrlCreateButton("Cancel", 310, 290, 85, 25)

    While 1
        $aMsg = GUIGetMsg(1)
        Switch $aMsg[1]
            Case $hMainForm
                Switch $aMsg[0]
                    Case $GUI_EVENT_CLOSE
                        ExitLoop
                    Case $idNewEntry
                        msgbox(0,"NewEntry",$aMsg[1] & @CRLF & $aMsg[0])
                        GUISetState(@SW_DISABLE, $hMainForm)
                        GUISetState(@SW_SHOW, $hNewForm)
                    Case $idEditEntry
                        msgbox(0,"EditEntry",$aMsg[1] & @CRLF & $aMsg[0])
                        GUISetState(@SW_DISABLE, $hMainForm)
                        GUISetState(@SW_SHOW, $hEditForm)
                EndSwitch
            Case $hEditForm
                Switch $aMsg[0]
                    Case $GUI_EVENT_CLOSE
                        msgbox(0,"GUI_EVENT_CLOSE",$aMsg[0] & @CRLF & $aMsg[1])
                        GUISetState(@SW_HIDE, $hEditForm)
                        GUISetState(@SW_ENABLE, $hMainForm)
                        WinActivate($hMainForm)
                    Case $idEditCancel
                        msgbox(0,"EditCancel",$aMsg[0] & @CRLF & $aMsg[1])
                        GUISetState(@SW_HIDE, $hEditForm)
                        GUISetState(@SW_ENABLE, $hMainForm)
                        WinActivate($hMainForm)
                    Case $idEditOKay
                        msgbox(0,"EditOKay",$aMsg[0] & @CRLF & $aMsg[1])
                EndSwitch
            Case $hNewForm
                Switch $aMsg[0]
                    Case $GUI_EVENT_CLOSE
                        msgbox(0,"GUI_EVENT_CLOSE",$aMsg[0] & @CRLF & $aMsg[1])
                        GUISetState(@SW_HIDE, $hNewForm)
                        GUISetState(@SW_ENABLE, $hMainForm)
                        WinActivate($hMainForm)
                    Case $idNewCancel
                        msgbox(0,"NC",$aMsg[0] & @CRLF & $aMsg[1])
                        GUISetState(@SW_HIDE, $hNewForm)
                        GUISetState(@SW_ENABLE, $hMainForm)
                        WinActivate($hMainForm)
                    Case $idNewOKay
                        msgbox(0,"NewOKay",$aMsg[0] & @CRLF & $aMsg[1])
                EndSwitch
        EndSwitch
    WEnd
    GUIDelete()
EndFunc

 

Edited by therks

Share this post


Link to post
Share on other sites

#13 ·  Posted

1 hour ago, therks said:

I personally think the best way to do a multi GUI script is to build out the entire GUI first and then just show/hide windows as you need them, but barring that, you could simply handle the $GUI_EVENT_NONE value before the others and have it skip the loop, then it will bypass even checking those uninitialized variables

That's how I normally do multiple GUI's if it is going to be frequently used. If not, then I'll draw it when needed.

Didn't even cross my mind to handle the $GUI_EVENT_NONE :doh: Bad Dobby!

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

    • Valnurat
      By Valnurat
      Hi.
      A user have to be a member of specific groups. If the user is a member of 1 of the below groups it has to a member of "Mailuser_". If not then I need to add user to the "Mailuser_".
      But how can I search in the array. In the code I do If...then, but it will just jump to my next if...then and search in that "index". But that is not what I want. It seems that I have to do a new For...To, right? But there have to be a easier way to do this.
       
      Func FindADInfo() Local $sUsersSource, $sBackupFolder, $sSiteHomePath, $sFileOpenDialog Local $aSamAccountName[1][1], $aTempSamAccountName[1] For $i = 0 to UBound($aAllMailSites) - 1 if $aAllMailSites[$i] <> "" then if $bDebugMode Then ConsoleWrite("Collecting AD info for " & StringRight($aAllMailSites[$i], 2) & StringMid($aAllMailSites[$i], StringInStr($aAllMailSites[$i], ",") - 2, 2) & @CRLF) Else _FileWriteLog($hFile, "Collecting AD info for " & StringRight($aAllMailSites[$i], 2) & StringMid($aAllMailSites[$i], StringInStr($aAllMailSites[$i], ",") - 2, 2)) EndIf $aSamAccountName = _AD_GetObjectsInOU($aAllMailSites[$i] & ",OU=company,DC=AD,DC=company,DC=ORG", "(&(objectcategory=person)(objectclass=user))",2, "sAMAccountName,distinguishedName,displayname", "displayname") _ArrayDelete($aSamAccountName, 0) for $x = 0 to UBound($aSamAccountName) -1 if StringInStr($aSamAccountName[$x][1],"Resources") = 0 Then local $aUserGroups = _AD_GetUserGroups($aSamAccountName[$x][1]) _ArrayDisplay($aUserGroups,$aSamAccountName[$x][0]) if IsArray($aUserGroups) Then for $y = 1 to UBound($aUserGroups) -1 ;MsgBox(0,"",$aUserGroups[$y]) If StringInStr($aUserGroups[$y],"Office365_E3_SharedMailBox") <> 0 Or StringInStr($aUserGroups[$y],"Office365_E3_OPP_EXO_SPO") <> 0 Or StringInStr($aUserGroups[$y],"Office365_E3_OPP_EXO_SFBPLUS") <> 0 Or StringInStr($aUserGroups[$y],"Office365_E3_OPP_EXO_SFB") <> 0 Or StringInStr($aUserGroups[$y],"Office365_E3_OPP") <> 0 Or StringInStr($aUserGroups[$y],"Office365_E3_FULL") <> 0 Or StringInStr($aUserGroups[$y],"Office365_E1_EXO") <> 0 Then If StringInStr($aUserGroups[$y],"Mailuser_") = 0 Then ConsoleWrite($aSamAccountName[$x][0] & " Add to mailgroup") EndIf EndIf Next EndIf EndIf Next EndIf Next EndFunc ;==>FindADInfo  
    • VaishnaviBUtpat
      By VaishnaviBUtpat
      <!DOCTYPE html> <html lang="en" xml:lang="en" style="height: 100%;" xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <style> * { margin: 0; padding: 0; } .th-lk { color: #3665d0; font-family: Arial; font-size: small; text-decoration: none; } .th-lk { vertical-align: 0px; } .th-menu2 .th-lk { line-height: 2em; margin-bottom: 0px; margin-right: 0px; overflow: hidden; padding: 0; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; width: 100%; } .th-menu2 .th-lk { color: black; font-weight: bold; } .th-menu2 > li > .th-lk { display: block; padding-left: 8px; width: auto; } .th-menu2 .th-menu2-sub-item .th-lk, .th-menu2 .th-menu2-sub-item-hov .th-lk { margin-right: 20px; } .th-menu2-sub-item { position: relative !important; } .th-menu2 .th-menu2-item, .th-menu2 .th-menu2-item-hov, .th-menu2 .th-menu2-sub-item, .th-menu2 .th-menu2-sub-item-hov { background-repeat: repeat-x; border-left-style: solid; border-left-width: 1px; border-right-style: solid; border-right-width: 1px; border-top-style: solid; border-top-width: 1px; height: 2em; list-style: none; margin-bottom: 0px; padding: 0; width: 100%; } .th-menu2 .th-menu2-item, .th-menu2 .th-menu2-item-hov, .th-menu2 .th-menu2-sub-item, .th-menu2 .th-menu2-sub-item-hov { background-color: #ECECEC; background-image: url(sap_skins/default/styling/lshape/chg_butt_det_nav.gif); border-left-color: #d3d1ce; border-right-color: #d3d1ce; border-top-color: #d3d1ce; border-top-width: 0px; } .th-menu2 { border: 0 solid black; left: 0px; list-style: none; margin: 0; padding: 0; position: relative; } .th-menu2 { z-index: 10006; } .th-menu2 { background-color: white; } div { zoom: 1; } .th-sc-content { left: 0px; position: absolute; top: 0px; } .th-sc-container { left: 0px; overflow: hidden; position: relative; top: 0px; } .th-sc-top { position: relative; } .th-sc-top, .th-sc-content, .th-sc-container, .th-sc-buttondown, .th-sc-buttonup { width: 172px; } .th-sc-buttonup, .th-sc-container { z-index: 10101; } .th-sc-top { z-index: 10100; } body, td, th { font-family: Arial,Helvetica,sans-serif; font-size: small; } .th-l-navcontainer, .th_l_downcontainer { border-right-style: solid; border-right-width: 1px; width: 172px; } .th-l-navcontainer, .th_l_downcontainer { background-color: white; border-right-color: #d3d1ce; } body, html { margin: 0px; border: 0; margin: 0; } </style> </head> <body><form name="myFormId" id="myFormId" action="/sap(ZT1TVVJEWDFWVFVsOWZYMTlmTWpNNU9UWmZXWTlwZG5telZ1RGhBSUFBQ3Nyc2tBPT0=)/bc/bsp/sap/crm_ui_frame/BSPWDApplication.do?sap-client=100&amp;sap-language=EN&amp;sap-domainrelax=min" method="post" target="WorkAreaFrame2"><div class="th-ajax-area" id="rootAreaDiv"><div id="C1_W1_V2" tgt="" dhe="false"><table width="100%" style="table-layout: fixed;" cellspacing="0" cellpadding="0"><tbody><tr><td><table width="100%" style="table-layout: fixed;" cellspacing="0" cellpadding="0"><tbody><tr valign="top"><td class="th-l-navcontainer" id="th_l_navcontainer"><div class="th-sc-top" id="C1_W1_V2_thescroll" style="height: 786px;"><div class="th-sc-container" id="C1_W1_V2_thescroll_scbox" style="height: 786px;"><div class="th-sc-content" id="C1_W1_V2_thescroll_sccontent"><div class="th-ajax-area" id="C1_W1_V2_$navbar"><div id="C7_W35_V36" tgt="" dhe="true" excevt="" intevt="c:C7_W35_V36:C1_W1_V2_C7_W35_V36_MainNavigationLinks.do;" automode="true"><div class="th-ajax-area" id="C1_W1_V2_C7_W35_V36_MainNavigationLinks.do"><ul class="th-menu2" id="C7_W35_V36_mainmenu" style="width: 171px;"><li class="th-menu2-sub-item"><a title="Sales Cycle" class="th-lk" id="C7_W35_V36_UTL-SLS" onclick="htmlbSubmitLib('htmlb',this,'thtmlb:link:click:0','myFormId','C7_W35_V36_UTL-SLS','UTL\x2dSLS\x2dWC',0);return false" onfocus="thSaveKbFocus(this);" oncontextmenu="return false;" href="javascript:void(0)">Sales Cycle</a></li></ul></div></div></div></div></div></div></td></tr></tbody></table></td></tr></tbody></table></div></div></form></body> </html> How to capture above HTML element using AutoIT
    • cu0x
      By cu0x
      Hello guys,
       
      im trying to solved a problem that I have.
       
      Need to get some chinese text from an old Wise script, and in the wise file says f.e. Ù×÷ϵͳ¡£ ÇëÉý¼¶Ä. Is there any way to convert it to traditional chinese?
       
      Already tryied the following code...
       
      #include <MsgBoxConstants.au3> Example() Func Example() ; Define the string that will be converted later. ; NOTE: This string may show up as ?? in the help file and even in some editors. ; This example is saved as UTF-8 with BOM. It should display correctly in editors ; which support changing code pages based on BOMs. Local Const $sString = "Ù×÷ϵͳ¡£ ÇëÉý¼¶Ä" ; Temporary variables used to store conversion results. $dBinary will hold ; the original string in binary form and $sConverted will hold the result ; afte it's been transformed back to the original format. Local $dBinary = Binary(""), $sConverted = "" ; Convert the original UTF-8 string to an ANSI compatible binary string. $dBinary = StringToBinary($sString) ; Convert the ANSI compatible binary string back into a string. $sConverted = BinaryToString($dBinary) ; Display the resulsts. Note that the last two characters will appear ; as ?? since they cannot be represented in ANSI. DisplayResults($sString, $dBinary, $sConverted, "ANSI") ; Convert the original UTF-8 string to an UTF16-LE binary string. $dBinary = StringToBinary($sString, 2) ; Convert the UTF16-LE binary string back into a string. $sConverted = BinaryToString($dBinary, 2) ; Display the resulsts. DisplayResults($sString, $dBinary, $sConverted, "UTF16-LE") ; Convert the original UTF-8 string to an UTF16-BE binary string. $dBinary = StringToBinary($sString, 3) ; Convert the UTF16-BE binary string back into a string. $sConverted = BinaryToString($dBinary, 3) ; Display the resulsts. DisplayResults($sString, $dBinary, $sConverted, "UTF16-BE") ; Convert the original UTF-8 string to an UTF-8 binary string. $dBinary = StringToBinary($sString, 4) ; Convert the UTF8 binary string back into a string. $sConverted = BinaryToString($dBinary, 4) ; Display the resulsts. DisplayResults($sString, $dBinary, $sConverted, "UTF8") EndFunc ;==>Example ; Helper function which formats the message for display. It takes the following parameters: ; $sOriginal - The original string before conversions. ; $dBinary - The original string after it has been converted to binary. ; $sConverted- The string after it has been converted to binary and then back to a string. ; $sConversionType - A human friendly name for the encoding type used for the conversion. Func DisplayResults($sOriginal, $dBinary, $sConverted, $sConversionType) MsgBox($MB_SYSTEMMODAL, "", "Original:" & @CRLF & $sOriginal & @CRLF & @CRLF & "Binary:" & @CRLF & $dBinary & @CRLF & @CRLF & $sConversionType & ":" & @CRLF & $sConverted) EndFunc ;==>DisplayResults Thanks a lot!
    • nacerbaaziz
      By nacerbaaziz
      Hi dear
      I want create retractable bar using autoit
      I tried creating slider, but there's a problem with screen reader for the blind, so is there another retractable tape?
      It is advisable to not accept dragging with the keybord only with  mouse
      note:
      This bar is needed in the process of raising and lowering the volume
      I hope that there is a solution to do that
      i waiting your responses.
      Thanks in advance to all members and administrators
    • XanzyX
      By XanzyX
      Is there a function out there that will edit an existing file witha a "Save" and "Cancel" at the bottom?
      Example: Funcrion("TestFile.txt")