cmdEX.exe - augmenting the existing CMD.EXE

From: Stu Carnie (stuart.carnie_at_gmail.com)
Date: 08/23/04


Date: 23 Aug 2004 15:02:50 -0700

Hi all,

I have been working on some 'extensions' to the existing Windows NT
command shell / console API (specifically 2000, XP and 2003).

It is different from replacement shells, like Take Command or WinOne,
in that it will actually augment the existing shell (and STDIN / OUT /
ERR) by 'injecting' itself into the console process.

My motive for extending the shell has been
1. Replacing the very limited editing features of the existing console
input APIs in Win32.
2. Not wanting to engineer another shell
3. Wanting all existing console apps to inherit this enhanced editing
functionality, such as FTP, NETSH, TELNET, or the many others out
there.
4. Persisting the history across sessions!
5. Providing standard windows editing features like CUT (SHIFT-DEL) /
COPY (CTRL-INS) / PASTE (SHIFT-INS) :)

Let me explain further.

A number of you are aware of the existing shell functions like F7 to
bring up the history list, F8 to search the history list and tab-key
directory / file completion. This not only works with cmd.exe, but
other command line tools like FTP, NETSH and TELNET. In fact any
console app that uses the ReadConsole kernel32 API has this
functionality.

You will even see this in .Net if you use the Console.ReadLine.

I have been writing a DLL, that when injected into a CUI (console)
process, replaces certain kernel32 APIs to enhance their current
features, such as the ReadConsole API.

I already have a working prototype that is stable and successfully
injects itself into the console process. It will also attach to all
spawned CUI process from this process.

I'm curious how many would be interested in such an enhancement. I'm
not planning on charging for it, but perhaps 'donation ware'..

V1.0 will be a public version, but will not support user enhancements.
V2.0 is planned to allow 3rd parties to customize their own shortcuts,
allow context sensitive user defined command completion (like zsh),
.Net plugins and many others.

This is not like MONAD / msh. msh is a new command shell, whereas
cmdEX sits under the shell to enhance the interactivity.

I will be creating a home page for it soon and providing a forum for
discussion in the next 2 to 3 weeks, and I will post back when it is
available.

Cheers,

Stu



Relevant Pages

  • Re: cmdEX.exe - augmenting the existing CMD.EXE
    ... > It is different from replacement shells, like Take Command or WinOne, ... Replacing the very limited editing features of the existing console ... Not wanting to engineer another shell ... > console app that uses the ReadConsole kernel32 API has this ...
    (microsoft.public.win2000.cmdprompt.admin)
  • Re: cmdEX.exe - augmenting the existing CMD.EXE
    ... > It is different from replacement shells, like Take Command or WinOne, ... Replacing the very limited editing features of the existing console ... Not wanting to engineer another shell ... > console app that uses the ReadConsole kernel32 API has this ...
    (microsoft.public.win2000.cmdprompt.admin)
  • Re: Can I echo something to my own command line?
    ... Another, less general, way would be to ask the shell to do it for ... over the line editting function and offer more features (like command line ... to programmatically send characters to it's input buffer, ... have a function to paste the "selection" buffer into the console. ...
    (comp.unix.shell)
  • Bash-4.0 available for FTP
    ... Unlike previous bash distributions, this tar file includes the formatted ... The shell has been changed to be more ... rigorous about parsing commands inside command substitutions, ... Changes have been made to the Readline library being released at ...
    (gnu.announce)
  • Why newbies dont RTFM...
    ... Even though I've used Linux before, I've never had to do any ... BASH BUILTIN COMMANDS ... last command exited within ... unless the shell is not exeâ ...
    (comp.os.linux.misc)

Loading