disable mouse and keyboard

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • Alireza355
    New Member
    • Feb 2009
    • 86

    disable mouse and keyboard

    Dear friends,

    I have a command button that when clicked, runs tens of queries, millions of calculations, etc.

    This process takes about 10 seconds each time, and the mouse pointer rapidly changes into hourglass and changes back to pointer during this process.

    If the user opens other forms or does other things while the main calculations are not finished yet, the results would be disaster. So I want to disarm the user by disabling mouse and keyboard before starting calculations, and re-enable them after finishing the calculations.


    Possible??????? ????????
  • ChipR
    Recognized Expert Top Contributor
    • Jul 2008
    • 1289

    #2
    Making the form with the command button Modal would prevent other windows from being opened. Just disable other controls on that one form until the operations are complete.

    Comment

    • Alireza355
      New Member
      • Feb 2009
      • 86

      #3
      Not yet getting the results needed

      some of the calculations are done after the form is closed, and no form is open.

      I need a more """""""reliable """""""" way!!!!

      Comment

      • ChipR
        Recognized Expert Top Contributor
        • Jul 2008
        • 1289

        #4
        Why do you close the form if you don't want the user doing anything? Just display a message saying Please Wait, or a progress bar, or something.

        Comment

        • NeoPa
          Recognized Expert Moderator MVP
          • Oct 2006
          • 32653

          #5
          Keep the form open (invisible if you prefer) and handle any events that may fire.

          In essense, the code that has already been invoked should run through without interruption anyway.

          Keyboard and mouse events should be queued to run later if code is already executing.

          Comment

          • OldBirdman
            Contributor
            • Mar 2007
            • 675

            #6
            So I want to disarm the user by disabling mouse and keyboard before starting calculations, and re-enable them after finishing the calculations
            I wouldn't think this is a good idea. User could not do something else, like check email. Also, if something goes wrong, computer is effectively locked, and must be rebooted, causing loss in any other open programs.

            I have a command button that when clicked, runs tens of queries, millions of calculations, etc.
            This sounds as if the results of calculations are stored in tables, and not re-calculated 'on-the-fly'. Without more information, we don't know if this is appropriate.

            If this button opened a New Form as modal, this new form could have a status bar and/or "Please Wait". It might also have a "Cancel" button if cancelling is possible. This form would be closed on completion. This would allow the user to change programs, but not continue to work in the current program while the
            tens of queries, millions of calculations
            are being executed.

            Warning, if another Access program uses the same tables, they would still be accessable to the user with any of the proposed solutions in this thread. The issues raised in the original post will then need to be addressed.

            Comment

            • ADezii
              Recognized Expert Expert
              • Apr 2006
              • 8834

              #7
              Originally posted by Alireza355
              Dear friends,

              I have a command button that when clicked, runs tens of queries, millions of calculations, etc.

              This process takes about 10 seconds each time, and the mouse pointer rapidly changes into hourglass and changes back to pointer during this process.

              If the user opens other forms or does other things while the main calculations are not finished yet, the results would be disaster. So I want to disarm the user by disabling mouse and keyboard before starting calculations, and re-enable them after finishing the calculations.


              Possible??????? ????????
              Very possible. I know that I will probably raise a few eyebrows on this one, but I can actually see the need to Block Keyboard and Mouse Input during intensive operations in order to maintain a sort of System Modality. This is only acceptable, at least to me, if there is some kind of visual cue for the User indicating this Inactive Input State, in this case the 'Olde Hourglass'. In any event, here it goes:
              • Declare the following API Function:
                Code:
                Public Declare Function BlockInput Lib "USER32.dll" (ByVal fBlockIt As Long) As Long
              • Write Code 'similar to' the following. I would strongly assume writing the Code within the context of an Error Trap to Unblock Input and also to turn the Hourglass OFF shound an Error occur:
                Code:
                Private Sub ImpData_Click()
                On Error GoTo Err_ImpData_Click
                Dim intCounter As Long
                
                DoCmd.Hourglass True
                
                BlockInput True
                
                For intCounter = 1 To 2147000000
                  'take a nap!
                Next
                
                BlockInput False
                
                DoCmd.Hourglass False
                
                Exit_ImpData_Click:
                  Exit Sub
                
                Err_ImpData_Click:
                  BlockInput False: DoCmd.Hourglass False
                    MsgBox Err.Description, vbExclamation, "Error in Pic Names"
                    Resume Exit_ImpData_Click
                End Sub
              • BTW, there is an Escape Route, ALT + CTRL + DEL will effectively Disable Input Blocking.
              • Good Luck, and let us know how you make out should you attempt this controversial approach.

              Comment

              • NeoPa
                Recognized Expert Moderator MVP
                • Oct 2006
                • 32653

                #8
                Originally posted by ADezii
                Very possible. ...
                I just should'a known you'd 'a known :D

                We won't talk about the potential for dodginess here. I'm just impressed you would know such an apposite answer.

                Comment

                • ADezii
                  Recognized Expert Expert
                  • Apr 2006
                  • 8834

                  #9
                  Originally posted by NeoPa
                  I just should'a known you'd 'a known :D

                  We won't talk about the potential for dodginess here. I'm just impressed you would know such an apposite answer.
                  I also knew that the 1st eyebrow to be raised would be yours (LOL)!

                  Comment

                  • NeoPa
                    Recognized Expert Moderator MVP
                    • Oct 2006
                    • 32653

                    #10
                    My judgement was that it was definitely worth posting. Eyebrows firmly settled ;)

                    Comment

                    • FishVal
                      Recognized Expert Specialist
                      • Jun 2007
                      • 2656

                      #11
                      MSDN: BlockInput()

                      Oh, yeah. Hangs as good as possible.

                      Comment

                      • ADezii
                        Recognized Expert Expert
                        • Apr 2006
                        • 8834

                        #12
                        Originally posted by NeoPa
                        My judgement was that it was definitely worth posting. Eyebrows firmly settled ;)
                        BTW, what Degree of dodginess am I (1, 2, or 3)?

                        dodg·y (dj)
                        adj. dodg·i·er, dodg·i·est Chiefly British
                        1. Evasive; shifty.
                        2. Unsound, unstable, and unreliable.
                        3. So risky as to require very deft handling

                        Comment

                        • NeoPa
                          Recognized Expert Moderator MVP
                          • Oct 2006
                          • 32653

                          #13
                          Not you ADezii.

                          The potential is for the information you make available to be misused.

                          Obviously, you're well dodgy, but that's not the point :D

                          Comment

                          • Alireza355
                            New Member
                            • Feb 2009
                            • 86

                            #14
                            Thanx a lot

                            Thank you all, specially ADezii

                            Thank you so much.

                            Comment

                            • ADezii
                              Recognized Expert Expert
                              • Apr 2006
                              • 8834

                              #15
                              Originally posted by Alireza355
                              Thank you all, specially ADezii

                              Thank you so much.
                              You are quite welcome. Be careful in the use of this code, and 'always' provide a mechanism for enabling Keyboard/Mouse Input once again should an Error occur midstream. Good Luck, and let us know how it all works out.

                              Comment

                              Working...