Click here to Skip to main content
15,889,909 members
Articles / Programming Languages / C#
Article

Command Prompt Explorer Bar

Rate me:
Please Sign up or sign in to vote.
4.93/5 (184 votes)
10 Jun 20023 min read 1.4M   23.9K   356   265
This tool extends explorer with functionality of a command prompt. Implemented as a band object completely in C#. Demonstrates COM Interop and P/Invoke, windows hooking and API interception. Finally you can run all these .Net SDK tools and ‘Hello World!’ programs without leaving explorer shell.

Introduction

The Command Prompt Explorer Bar is a small tool that extends Windows Explorer.

Version 1.1 is now available.

Ever tried to run one of those console programs ("Hello World!" to name a few), .BAT, .VBS or .JS scripts just to see black window popping up and disappearing? I did. Especially after I started using .Net framework I find myself doing this more often. No wonder - with all this ALs , NGENs and TLBIMPs. So if you are like me then this tool is right for you. Next time you need to run a program without GUI, just press the 'Ctrl+M' key combination in your explorer. A command prompt will start and appear automatically. Its current directory will be exactly the same as the current path you are browsing. And better yet the console will appear inside your explorer window - like any other explorer bar does - 'History', 'Favorites', 'Folders' etc. Now you can have the best of both worlds combined together - easy and fast navigation of explorer and power of batch processing of the command prompt. Or should I say Command Prompt Explorer Bar:

Image 1

Well, that is how it looks like. Isn't it a beauty?

You may have noticed a toolbar on the left of the console window. I tried to put some nice timesaving features there. The most powerful is a button with a 'Script' icon on it. It has a drop down menu where you can select a command you like to be executed. It even knows how to substitute '{0}' for the name of the current files selected in explorer. Here is when it can be useful. Let's say you want to install your assembly into a 'Native Images Cache'. With Command Bar it is as simply as selecting your assembly in explorer and clicking on 'ngen {1}' menu item. It also works just fine for multiple selected files (use {0} instead). Now you can compile your .cs or .vbs files without leaving a comfortable explorer shell. And yes, you can change this menu and scripts the way you like them. It is as simple as editing a text file in a Notepad.

And here is another (besides pressing 'Ctrl+M') way of starting this tool:

Image 2

I hope you'll enjoy this little tool. Send me your comments, requests and bug reports to PavelZolnikov@yahoo.com.

History

  • 5/31/2002, 1.0 - original version.
  • 6/11/2002, 1.1 - bug fixes. NOTE: if you were using version 1.0 and have customized macro.xml file, you might want to save its backup version somewhere before uninstalling.
    • New setup. Hopefully without issues like in previous version. Thanks to Michael Dunn for his tip.
    • Fixed an issue with CMD.EXE failing to start. CreateProcess interception is now scoped by instances of Folder Windows and enabled only if CommandBar is visible. 'Launch folder windows in a separate process’ is no more required.
    • Integrated keyboard focus with explorer. Now Command Prompt window is reachable through Tab and Shift+Tab keys.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Web Developer
United States United States
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
GeneralRe: Why would you do it in C#???!!!... Pin
Stephane Rodriguez.30-Aug-02 20:38
Stephane Rodriguez.30-Aug-02 20:38 
GeneralRe: Why would you do it in C#???!!!... Pin
Stephane Rodriguez.30-Aug-02 20:42
Stephane Rodriguez.30-Aug-02 20:42 
GeneralRe: Why would you do it in C#???!!!... Pin
Stephane Rodriguez.30-Aug-02 20:36
Stephane Rodriguez.30-Aug-02 20:36 
GeneralRe: Why would you do it in C#???!!!... Pin
David Stone6-Sep-02 13:16
sitebuilderDavid Stone6-Sep-02 13:16 
GeneralRe: Why would you do it in C#???!!!... Pin
Stephane Rodriguez.6-Sep-02 13:33
Stephane Rodriguez.6-Sep-02 13:33 
GeneralRe: Why would you do it in C#???!!!... Pin
Anonymous2-Oct-02 7:50
Anonymous2-Oct-02 7:50 
GeneralRe: Why would you do it in C#???!!!... Pin
17-Jun-02 7:44
suss17-Jun-02 7:44 
GeneralRe: Why would you do it in C#???!!!... Pin
17-Jun-02 17:08
suss17-Jun-02 17:08 
Actually, Anonymous: Before posting you better check yourself...
.NET CRL is just 12MB of runtime (on disk) => However, after loading into RAM it's 32MB...
So, you should know that => at least before posting here and not after...
Also, just to make your life even more miserable: Each .NET component is linked with particular version of .NET Framework... That just means, that when MSFT releases next version of .NET you either have to rebuild your program to link to the latest one and redistribute to your clients... Or which is more probable: Your CLIENTS will be forced to have several versions of the framework: Latest one and the one your program was build against...
So, that means that you may finish with far more then 12mb of runtimes on disk...
GL
I
GeneralRe: Why would you do it in C#???!!!... Pin
18-Jun-02 5:22
suss18-Jun-02 5:22 
GeneralRe: Why would you do it in C#???!!!... Pin
19-Jun-02 2:35
suss19-Jun-02 2:35 
GeneralRe: Why would you do it in C#???!!!... Pin
19-Jun-02 17:44
suss19-Jun-02 17:44 
GeneralRe: Why would you do it in C#???!!!... Pin
20-Jun-02 5:37
suss20-Jun-02 5:37 
GeneralRe: Why would you do it in C#???!!!... Pin
20-Jun-02 17:36
suss20-Jun-02 17:36 
GeneralRe: Why would you do it in C#???!!!... Pin
20-Jun-02 21:58
suss20-Jun-02 21:58 
GeneralRe: Why would you do it in C#???!!!... Pin
Stephane Rodriguez.30-Aug-02 20:48
Stephane Rodriguez.30-Aug-02 20:48 
GeneralRe: Why would you do it in C#???!!!... Pin
20-Jun-02 17:47
suss20-Jun-02 17:47 
GeneralRe: Why would you do it in C#???!!!... Pin
Anonymous19-Jul-02 5:27
Anonymous19-Jul-02 5:27 
GeneralRe: Why would you do it in C#???!!!... Pin
Anonymous22-Jul-02 21:18
Anonymous22-Jul-02 21:18 
GeneralRe: Why would you do it in C#???!!!... Pin
Anonymous26-Jul-02 21:25
Anonymous26-Jul-02 21:25 
GeneralRe: Why would you do it in C#???!!!... Pin
Stephane Rodriguez.30-Aug-02 20:50
Stephane Rodriguez.30-Aug-02 20:50 
GeneralRe: Why would you do it in C#???!!!... Pin
igor196011-Jul-03 7:44
igor196011-Jul-03 7:44 
GeneralRe: Why would you do it in C#???!!!... Pin
James White5-Sep-02 3:52
James White5-Sep-02 3:52 
GeneralRe: Why would you do it in C#???!!!... Pin
skafoelix31-Jul-08 2:07
skafoelix31-Jul-08 2:07 
GeneralYes it is... Pin
NormDroid12-Jun-02 7:05
professionalNormDroid12-Jun-02 7:05 
GeneralRe: Yes it is... Pin
23-Jun-02 20:15
suss23-Jun-02 20:15 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.