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

    • sree161
      By sree161
      Hi,
      i have a code which generates two numeric outputs.i have to save them in excel.
      Is there any way to export them to specific cells in excel???
    • TotalAuto
      By TotalAuto
      Howdy All
      I've gone around and around in circles wasting hours trying to fix this problem to no avail so I thought I would try posting for help given there are some real smart people in this forum.
      Background
      I have 5 separate .au3 scripts that all do different basic tasks. For example:
      1.au3 = opens Chrome browser to obtain information from a specific website then closes
      2.au3 = opens an Excel workbook to run a macro then saves and closes
      3.au3 = Open two seperate workbooks and transfers data from one to the other then saves and closes
      4.au3 = .......etc
      5.au3 = .......etc
      These 5 separate scripts, doing completely different tasks, need to each run once per day at 5 different designated times within a day and then close. For example:
      1.au3 = 10am
      2.au3 = 12pm
      3.au3 = 2pm
      4.au3 = 4pm
      5.au3 = 5pm
      Problem
      I can not get these different scripts to reliably run at their designated times. When I manually run these scripts individually by using 'Go F5' they work perfectly. If I convert these scripts to an .exe and manually run each one they work about 98% of time.
      How can I schedule these different .au3 files or associated .exe files to reliably run each day at different times?
      Attempts To Fix The Issue
      1. I have tried converting each .au3 script into their own .exe file and use Window's Task Scheduler to run these .exe files at their designated time but the success rate  of running each .exe in full, to completion, without error is very low at about 30%. Things that commonly go wrong include a browser not opening but movement still continues on the desk top. Other times things just do not happen at all.
      2. I have Windows 7 64 bit and have tried creating and running both (x86) and (x64) .exe files but again reliability problems exist;
      3. I have also tried moving each .exe file to the My Documents folder as I read someone that keeping your files on your desktop ties your files to individual Windows user profiles which can cause AutoIt operating errors. Not sure if this is correct but thought I would try it anyway. It did not fix my issue.
      4. I installed a program called AlwaysUp which supposedly always reliably runs in the background and will reliably execute your AutoIt script or .exe files. Still have significant reliability issues.
      Therefore, can someone please provide advice on how I can get my 5 different .au3 files to run at 5 designated times through the day, every day, without fail? Overtime I will be creating more and more different .au3 files to run certain tasks throughout the day and do not want to create one large AutoIt file that continually runs and attempts to do all the different tasks itself.
      Any help is very appreciated.
      Thanks
      Dan
       
       
    • hugomito
      By hugomito
      Hi all,
      I built an AutoIt application that interacts with several other applications/software. Now, it's turn to interfact with Visual Studio Team Services (VSTS).
      Does anyone has a blog, demo, script to share?
      Thanks!
    • Viki
      By Viki
      This is my first time here so please dont bombard me that what a silly question I am asking!!
      I have 500 rows (A1:A500) in a spreadsheet and I just want to copy one by one row and then paste into another application and then press enter, loop should repeat this until finishes all 500 rows.
      I have looked at clipget(), clip(put() but dont know how to select next row in next turn. I also looked at Array to store but again no luck. Can some guide me please..
    • DineshPawar
      By DineshPawar
      0down votefavorite   In my current project, Excel macro open AutoIt script using a function Call Shell("location of autoit script").
      For proper functioning of AutoIt script it's need to be close parent Excel workbook, so this closing Excel action is written in AutoIt script itself.
      But as soon as AutoIt script close parent Excel workbook then script get pause and it do nothing.
      How open the AutoIt script from Excel workbook and after that parent Workbook get close?