Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

How would I emulate a pressed key, like F8, in Perl? In other words, how would I go about inserting that key to be pressed programmatically? Also, how would I execute a dos program using perl? Thanks!

Replies are listed 'Best First'.
Re: Emulate a pressed key
by Albannach (Monsignor) on May 24, 2001 at 01:45 UTC
    You might give Win32::GuiTest a try. Among other things it can pass function keys to console windows in NT so maybe it can do what you want, though you don't mention what DOS-ish OS you're interested in, and it may well depend on how well-behaved your particular DOS application is. One warning: you want to be as specific as possible with the FindWindowLike() call or it will rifle through everything on your box, and take a long time doing it.

    One way to run a DOS (note that NT's comand line isn't really DOS) program from Perl in NT is:

    system('start progname.exe'); die "Couldn't start window\n" unless($? == 0);

    --
    I'd like to be able to assign to an luser