How do I send keystrokes to a console window in Windows XP?

G

GoogleGroups

How do I use Python to send keystrokes to a console window in Windows
XP?
Or perhaps there is an application that I can call to do this?

Thank you for your help.
 
B

Benji York

How do I use Python to send keystrokes to a console window in Windows
XP?

import win32com.client

shell = win32com.client.Dispatch("WScript.Shell")
shell.AppActivate("Command Prompt")

shell.SendKeys("cls{ENTER}")
shell.SendKeys("dir{ENTER}")
shell.SendKeys("echo Hi There{ENTER}")
 
G

GoogleGroups

Thank you, Benji.

This gives me hope, but what I really need to do is to send keystrokes
to an <<<already existing>>> console window.

Any help there?

(P.S. Sorry that I wasn't more specific.)
 
B

Benji York

This gives me hope, but what I really need to do is to send keystrokes
to an <<<already existing>>> console window.

That's exactly what the code does. Try it out, you'll see how it works
quickly enough.
 
R

RTG

Benji,

This appears to be exactly what we need.
I also see that by changing "Command Prompt" to "Notepad" or another
application, the key strokes are sent there.

With this capability, other possibilities open up.
Is there a way to read the output from the from the console window?
For example, how can we capture the output of the dir command?

Thank you for your help.
 
P

Peter Hansen

RTG said:
With this capability, other possibilities open up.
Is there a way to read the output from the from the console window?
For example, how can we capture the output of the dir command?

Normally one does that using a call to things like os.popen, or using
the new subprocess module.

If that's not suitable (if for some bizarre reason you really do want to
pick up the output of "dir" after someone has run it manually in the
console, and I can't imagine why you would want that), then search in
the list archives for a recent thread that did investigate just that
issue: how to capture text from a console window in Win32. I don't
recall the answer but I'm sure you can find it.

-Peter
 
R

RTG

Thank you, Peter.

The application is a <<<continuously running interactive program>>> and
we want to automatically interact with it (e.g. sendkeys and capture
certain text responses).

I will look for the thread you mentioned.

- Roy
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,230
Members
46,816
Latest member
SapanaCarpetStudio

Latest Threads

Top