Jump to content
JBeardNC

Preventing App (IE) from opening

Recommended Posts

JBeardNC

When I'm updating Flash or Java for example, I am closing IE for the user beforehand and IE must remain closed as to not interfere with the install. I'd like to see if there is a (better) way to prevent them from opening IE during the middle of the update. Currently, I launch a separate process/script that simply does a While loop and every 50 ms, it checks for IE using WinExists and if it finds it, kills the process. But what ends up happening is if it closes the process at the right moment, the user will get a message that looks like a permissions error or an error like the IE shortcut doesn't exist and prompts the user to remove the shortcut and its causing some confusion. It may be because I have the 50 ms interval too small but I wanted to reach out and see if there is a better way to block an application from opening temporarily while something finishes, in this case, block IE while Java or Flash install completes. I tried using If ProcessExists and got the same results. Here's the script I'm using. Any better ideas? I just need to block IE from opening for about 30 seconds. If it has a notification (like the toast pop-up I added), that's even better but its not required. 

#include <toast.au3>

$sMsg  = "Adobe Flash is being updated on your computer." & @CRLF & @CRLF & "Internet Explorer will open once the update is complete."

sleep (2000)

While ProcessExists ("AdobeFlashUpdate.exe")
    sleep(50)
    If WinExists ("Internet Explorer") Then
        WinClose ("Internet Explorer")
        OpenToast()
    EndIf
WEnd

Func OpenToast()

    _Toast_Set(5, 0xFFFF33, 0x000000, 0xCC0000, 0xFFFFFF, 10)
    $aRet = _Toast_Show(0, "Please wait...", $sMsg, 10, False)
    ;_Toast_Hide()

EndFunc

Run ("C:\Program Files (x86)\Internet Explorer\iexplore.exe")

Exit

Share this post


Link to post
Share on other sites
rudi

Hi.

A group policy setting could be used to temporary disallow starting iexplore.exe:

gpedit.exe

- Computer configuration

-- windows settings

--- security settings

---- software restriction policies --> new software restricion policies

 

activate prior you launch your upate, remove afterwards.

 

Users will receive a message like "your admin disallowed ..."

 

Regards, Rudi.


Earth is flat, pigs can fly, and Nuclear Power is SAFE!

Share this post


Link to post
Share on other sites
JBeardNC

Thanks for the idea but that won't work. It only needs to prevent it from opening for around 30-40 seconds while Flash or Java install. Plus, I don't want the user to receive any error message. If anything, I'd like for them to just see a message that another application is installing and IE will open when its complete.

Share this post


Link to post
Share on other sites
BrewManNH

BlockInput might also be an option to think about.


If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.
Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag Gude
How to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays.  -  ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script.  -  Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label.  -  _FileGetProperty - Retrieve the properties of a file  -  SciTE Toolbar - A toolbar demo for use with the SciTE editor  -  GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI.  -   Latin Square password generator

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

    • ohaya
      By ohaya
      Hi,
      I have a situation where I need to make one request to get a kind of pre-logon page, then click a link on that pre-logon page, which then returns a login form page, and then fill in information in the form page and submit it.
      How can I handle that using AutoIT?
      I can get the AutoIT script to tab to the link, then send an ENTER, which then causes the FORM page to appear in IE.  However, I cannot seem to get the form object from the FORM page (_IEFormGetObjByName fails when it searches for the form).  Why is that, and how can I get the AutoIT to process the FORM page?
      Thanks,
      Jim
    • seryth
      By seryth
      I have a script that opens some Excel books that  are stored in SharePoint .  Without getting to much into detail as its a very long story I have to open Internet Explorer to the SP site in order for all of this crap to work. 
       
      Anyway I have a bit of code in my script that i found via google-fu
      $ieList = ProcessList("iexplore.exe") If IsArray($ieList) Then For $I = 1 To Ubound($ieList) -1 ProcessWaitClose($ieList[$I][1]) Next EndIf Exit Now on Windows 7 this bit works great.  On Windows Server 2012 R2 where this things runs is another story.  I need to be able to force close all instances of Internet explorer that are running as part of my code. 
       
      Any help is appreciated. 
    • Joro
      By Joro
      Hi,
      I'm struggeling with the following:
      In a website I have to fill in several items. For the normal fields I am able to fill in the information by using UDF "_IEGetObjByName".
      But there is also a dropdown menu and I can't figure out how to choose te right information from it. I have searched the helpfile and the forum but I can't figure it out.
      Here's an excerpt  from the html-page of the site where the dropdown-menu is mentioned:
      <div class="col-md-10 padding-5">
       <div class="btn-group m-r">
        <input type="hidden" name="bedrijfId" class="bedrijfId" value="">
                  <button type="button" data-toggle="dropdown" class="btn btn-sm btn-default dropdown-toggle" >
                       <span class="dropdown-label">Choose Company</span>
                       <span class="caret"></span>
                  </button>
                        <ul class="dropdown-menu dropdown-select" >
                             <li  data-value="2" data-field="bedrijfId"><a href="#"><input type="radio" name="drp1" />Company 1</a></li>
                             <li  data-value="38" data-field="bedrijfId"><a href="#"><input type="radio" name="drp1" />Company 2</a></li>
                             <li  data-value="42" data-field="bedrijfId"><a href="#"><input type="radio" name="drp1" />Company 3</a></li>
                        </ul>
          </div>
      </div>
       
      How do I select one of the companies from the dropdown menu?
      Thanks
      Joost
    • rudi
      By rudi
      Hello,
      usually I do Win automations, so I have no skills at all to handle HTML forms :-/
      The script to catch and syntax check  the required information from Excel is done.
      Now I'd like to automate the upload using this form, too:
       
      http://flashcardsdeluxe.com/flashcards/Upload.aspx
      What browser is easiest to do so? (IE, Chrome, FF) The Values $DeckCode, $DeckName, $DeckDefinition shall go to their HTML form fields finally "click" the button "upload flashcards" <table width="70%" class="cssCenter" border="0"> <tr> <td style="width: 1%">Deck&nbsp;Code</td> <td style="width: 100%"><input name="ctlDeckCode" type="text" id="ctlDeckCode" style="width:50%;" /> (no spaces allowed)</td> <td></td> </tr> <tr> <td style="width: 1%">Deck&nbsp;Name</td> <td style="width: 100%"><input name="ctlDeckName" type="text" id="ctlDeckName" style="width:50%;" /> (optional)</td> <td style="width: 1%" align="right"><input type="submit" name="ctlUpload" value="Upload Flashcards" id="ctlUpload" /></td> </tr> <tr> <td valign="top" style="padding-top: 5px" >Flashcard&nbsp;Text</td> <td colspan="2"><textarea name="ctlFlashcardText" rows="2" cols="20" id="ctlFlashcardText" style="height:280px;width:100%;"></textarea></td> </tr> </table> If someone kindly could jump in showing how to address just one of the input fields and how to "click" the "upload flashcards" button, I should be able to do the rest myself.
      TIA, Rudi.

    • Pere
      By Pere
      Hi all,
      I've written the script below to automatically login to a website, in this case infusionsoft.com
      The auto login works fine. Is there a way for me to get errors from Internet explorer, if the login fails because of wrong login credentials. I have searched around, but cannot make sense of this.
      Please forgive me if I have overlooked something simple. I am new to autoit. Please see my script below.
      #include <IE.au3>
      #include <MsgBoxConstants.au3>

      Func AccountAutoLogin()
         ;This line sets the website page to open and inject information
         Global $oIE = _IECreate("https://signin.infusionsoft.com/login")
         ;set the variables to pull the username and password object names
         Local $username = _IEGetObjByName ($oIE, "username")
         Local $password = _IEGetObjByName ($oIE, "password")
         ;set the $oButtons variable to pull all the values of the button class
         Local $oButtons = _IETagnameGetCollection($oIE, "button")
         ;set the username and password values on the login form
         _IEFormElementSetValue ($username, "")
         _IEFormElementSetValue ($password, "")
         ; loop through the button class until we find the text on the login button, then click the button
         For $oButton in $oButtons
            If String($oButton.value) = " Log In " Then $test = $oButtons
               _IEAction($oButton, "click")
               _IELoadWait($oIE)
               if (@error) then MsgBox (0, "Error", @error)
            ExitLoop
         Next
      EndFunc
×