Application Launcher Add-in

WEBINAR: On-demand webcast

How to Boost Database Development Productivity on Linux, Docker, and Kubernetes with Microsoft SQL Server 2017 REGISTER >

Why?

A few month ago I submitted a macro for Visual Studio  that allows a developer to launch an application from within the code. See Application Launcher. The macro was designed for VS 5.0 and it ran very well, at least in my computer :-). I was contacted by a few people complaining they could not make the macro run. I later found out the reason it ran in my computer so well was because I had Microsoft's Windows Scripting Host installed. After upgrading to Visual Studio 6.0 the macro stop working. Apparently Visual Studio 6.0 does not support the CreateObject(...) function, even after installing Windows Scripting Host.   Since I have learned to depend on this macro for my in source documentation, I decided to create an add-in to provide the functionality of the application launcher macro.

How It Works.

 I decided to take a more simplistic approach for the Application Launcher add-in. Instead of trying to figure out what application to call depending on the file extension as the macro did. I have delegated that responsibility to the operating system and have limited the functionality of the macro to pick up the link from the source code and pass it to ShellExcecute(...). The code is very simple and everything is done in one function. I have reused some of the code for string manipulation posted by Zafir Anjum . Having said that, this is a list of some of the links you can include in your source code .

Link Application
 [d:\projects\development\documentation\model.mdl] Visual Modeler
 [d:\projects\development\documentation\vision.doc] MS Word
 [http://www.codeguru.com] Default Browser
 Omar Francisco [mailto:email@company.com] Email Client
 [d:\projects\development\prototype\prototype.vbp] Visual Basic
 [d:\projects\development\installation\myapplication.ipr] Install Shield
 [d:\projects\development\test\ptest.VBS] Windows Shell
 [REPOSITORY:D:\Apps\Microsoft Visual Studio\Common\Tools\VCM\VCM.VBD] MS Repository
 [SOURCE SAFE:X\VSS\srcsafe.ini] Source Safe
 [news://msnews.microsoft.com] News Group Reader
[MSDN:mk@MSITStore:\\mycpu\mydir\MSDN\period97.chm::/HTML/cpp1212.htm] MSDN Link

 

 

 

 

 

 

 

 

Anything you can run from a command line, could be run from within your code. This add-in has the potential to make your life easier both during development and during the maintenance of your code.

The add-in also supports custom tags that force a specific application to be called when a custom tag is found.  This feature is useful to call applications like Source Safe that take an INI file as a parameter.  I have included custom links  for MSDN articles, Source Safe and  Microsoft repository.  The bold items in the previous list represent custom tags.

The custom tag file goes by the name AppLaunch.ini and it is expected to be found in the same directory where the add-in is stored.  It is read when Visual Studio starts up and the (tag, application) pair is stored in a vector.  Due to the almost static nature of this file, I did not see a need to provide a mechanism to refresh the file without closing Visual Studio.  The format of the file is self-explanatory. 

Case insensitive tag; application

See AppLauch.ini for more information.

 How to Install and Run

Compile the enclosed project and register the AppLaunch.dll.  Don't forget to copy the AppLaunch.ini file to the same directory where the AppLaunch.dll is located. Then you must associate the add-in with a shortcut key (See my comments about shortcut keys). Once that is done just create a link to something and enclose it in brackets [], i.e. [http://www.codeguru.com]. Put the cursor anywhere within the pair of brackets and press the shortcut key associated with the add-in. The application associated with the link will be started.

About Shortcut Keys

As I added more and more add-ins and macros to Visual Studio and other applications, it became almost impossible to remember all these keystrokes. To the rescue came PC-DASH from Saitek. It is a programmable keypad that allows me to bind add-ins or macros to a single keystroke. It also let me design my own labels for every key. More information about this product could be found at http://www.saitekusa.com/products/other/pcdash.html. I have no affiliation with this company. If you have questions about how I am using this device in my programming environment, I will be happy to answer them.

That's all folks.

 

Download compiled add-in - 18 KB

Download source - 23 KB



Comments

  • associate the add-in with a shortcut key

    Posted by Legacy on 10/06/2003 12:00am

    Originally posted by: Sandeep

    I do not understand the term "associate the add-in with a shortcut key".
    
    

    How can i add this macro and can associate macro to browser.

    Reply
  • Read any good books lately?

    Posted by Legacy on 07/28/2003 12:00am

    Originally posted by: CJ Goggin

    Operating System Projects Using Windows NT by Gary Nutt
    documents how to open up secondary applications within
    a C++ program. Visual Basic is a bit easier, but if you may have to "setdirty" to make the applications stay open after the visual basic program itself terminates.

    Reply
  • A little bug

    Posted by Legacy on 08/14/2002 12:00am

    Originally posted by: SergueiP

    Very interesting. I wanted to make own similar component but found your one.
    
    But your addin contains one bug. It works only for empty or clean strings. But if you'll change CStringEx::ReverseFind function it will work correctly.
    My example of ReverseFind (may be not optimal):
    int CStringEx::ReverseFind( LPCTSTR lpszSub, int startpos /*= -1*/ ) const
    {
    int len = GetLength();
    if( startpos == -1 || startpos >= len )
    startpos = len - 1;

    CString res;
    if (startpos > 0)
    res = Left(startpos);

    return res.ReverseFind(lpszSub[0]);
    }

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

Top White Papers and Webcasts

  • As all sorts of data becomes available for storage, analysis and retrieval - so called 'Big Data' - there are potentially huge benefits, but equally huge challenges...
  • The agile organization needs knowledge to act on, quickly and effectively. Though many organizations are clamouring for "Big Data", not nearly as many know what to do with it...
  • Cloud-based integration solutions can be confusing. Adding to the confusion are the multiple ways IT departments can deliver such integration...

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date