in reply to Win32::OLE redirect STDIN?

You might try adding a $STDIN->WriteInput(1, FALSE, 1, 1, 1, 0, 0) after the ->WriteInput(1, TRUE...) to simulate a full keypress, not just a key-down. Also, you could try actually finding out the VK_ code for ENTER and use that rather than just using 1.

Replies are listed 'Best First'.
Re: Win32::OLE redirect STDIN?
by CMonster (Scribe) on Jun 22, 2001 at 01:41 UTC

    You might try adding a $STDIN->WriteInput(1, FALSE, 1, 1, 1, 0, 0) after the ->WriteInput(1, TRUE...) to simulate a full keypress, not just a key-down. Also, you could try actually finding out the VK_ code for ENTER and use that rather than just using 1.

    Okay, I made the following modifications:

    my $STDIN = Win32::Console->new(STD_INPUT_HANDLE); $STDIN->WriteInput(1, 1, 1, 32, 57, 32, 0); $STDIN->WriteInput(1, 0, 1, 32, 57, 32, 0);

    This should simulate one full keypress (1 then 0) of the space bar (32/57) with no modifier keys pressed (the last 0). Still no dice. The program still asks for three keypresses.

    Incidentally, creating a similar Console for STDOUT doesn't catch the output the way that close STDOUT does. Am I just using the module incorrectly? I've found bugger all for Win32::Console documentation.

    Thanks again,
    ~chris