Launching and Closing the Internet Explorer from Your VC++ App

Environment: Visual C++

Introduction

The Vice President (academic) of Valley View University (in Ghana) wanted me to develop a software application to monitor the transactions that go on in our newly established Internet cafe center.

The problem definition or specification requires launching and closing the IE from the application. Initially, I decided to create a custom browser, but I felt it would be more convient to use the standard browser. The ShellExecute() function could launch the IE from my program, but what about closing the IE from my program? With the help of MSDN, I found that the BroadcastSystemMessage() fuction could do the job. For more on BroadcastSystemMessage(), check MSDN.

I chose BSF_POSTMESSAGE, WM_CLOSE, BSM_APPLICATIONS, NULL, and NULL as parameters of BroadcastSystemMessage() function.

The codes are below:

/*lounching IE, you need an html file on your pc or if you
  have access to the net you can use a remote address*/
void lounchIE()
{
  HWND h=FindWindowEx(NULL,NULL,NULL,
                      "Microsoft Internet Explorer") ;
  ShellExecute(h,"open","C:\\simple.html",
               NULL,NULL,SW_SHOWNORMAL);

}

//closing IE and all applications

void CloseIE()
{
  int app=BSM_APPLICATIONS;
  unsigned long  bsm_app=(unsigned long )app;
  BroadcastSystemMessage(BSF_POSTMESSAGE,&bsm_app,
                         WM_CLOSE,NULL,NULL);

}

Problem: The shot-down window may display. When you choose Cancel, you can only run your application from the icons of the applications on the Desktop.



Comments

  • A solution for the release version...

    Posted by Legacy on 06/07/2002 12:00am

    Originally posted by: BN37

    After looking closer at my code, I found out that the function itself was not the problem. I checked the ON_COMMAND line used to initiate the block of code. At that time, I had found my mistake: it said ON_COMMAND_EX(...) instead of ON_COMMAND(...). If any of you programmers have a similar problem, it wouldn't hurt to check the simplest things.

    Reply
  • Compiled Release Version Errors

    Posted by Legacy on 06/06/2002 12:00am

    Originally posted by: BN37

    I have been looking for code that will open other apps on the user's computer and web pages/sites on the net but every version of code when compiled into the release version through VC++6 (though debug version seems to work just fine)and executed loads the desired target but then brings up an error and then closes the app which the newly opened app or page has been called from.  Could someone help me here.  I would greatly appreciate it.
    
    

    Below are some versions of the code that I have experiemented with:

    (Version 1)
    {
    HWND h=FindWindowEx(NULL,NULL,NULL,
    "Microsoft Internet Explorer") ;

    ShellExecute(h,"open","C:\\",
    NULL,NULL,SW_SHOWNORMAL);
    }

    (Version 2)

    {
    CString strFile = "C:/";
    ShellExecute(NULL, "open", (LPCTSTR)strFile, "", "", SW_SHOW);
    }

    Reply
  • Alternative simple way to close explorer

    Posted by Legacy on 06/04/2002 12:00am

    Originally posted by: Martynas

    Hello,

    I close epxlorer in simple way:

    HWND hExplorer = ::FindWindow( "IEFrame", NULL );
    if ( hExplorer == NULL )
    hExplorer = ::FindWindow( "CabinetWClass", NULL );

    if( hExplorer != NULL )
    {
    ::PostMessage( hExplorer, WM_CLOSE, 0, 0 );
    }

    This can also be put into a loop (with some precautions) to close all explorer instances. If you want I can present full code for it.

    • Important

      Posted by ammar_amk on 07/13/2004 09:58am

      Can I please know how to send the selected text from Internet Explorer to our VC++ program

      Reply
    Reply
Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • You probably have several goals for your patient portal of choice. Is "community" one of them? With a bevy of vendors offering portal solutions, it can be challenging for a hospital to know where to start. Fortunately, YourCareCommunity helps ease the decision-making process. Read this white paper to learn more. "3 Ways Clinicians can Leverage a Patient Portal to Craft a Healthcare Community" is a published document owned by www.medhost.com

  • With JRebel, developers get to see their code changes immediately, fine-tune their code with incremental changes, debug, explore and deploy their code with ease (both locally and remotely), and ultimately spend more time coding instead of waiting for the dreaded application redeploy to finish. Every time a developer tests a code change it takes minutes to build and deploy the application. JRebel keeps the app server running at all times, so testing is instantaneous and interactive.

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds