http://www.perlmonks.org?node_id=1230129


in reply to Re^3: Executing external programs
in thread Executing external programs

Also, you cannot expect that any program can be controlled. Some programs are made in such a manner that they can be controlled with OLE/COM and notepad is not one of them

There are some ways to program around that and there are many 'tools' around that are made for UI Automation.

Someone did however create a OLE module in Perl which would allow you to do something like this:

use strict ; use warnings ; use Win32::OLE ; use Time::HiRes qw( sleep ) ; my $ex = Win32::OLE->new('WScript.Shell') or die "oops\n"; $ex->run('Notepad') ; sleep(0.1) ; $ex->sendkeys("Hello World!") ;

Which is equivalent to the vbscript:

Set wshshell = wscript.CreateObject("WScript.Shell") Wshshell.run "Notepad" wscript.sleep 100 wshshell.sendkeys "Hello World!"