++ for showing the hard way of doing things ;)
Win32::Guitest makes it easier to do the same API calls... This program does the same thing without all of the return messages. (I didn't see the point for this simple exercise.)
Start calculator before running this code (mode doesn't matter)
#! C:/perl/bin/perl
use strict;
use warnings; # Win32::GuiTest doesn't like -w
use Win32::GuiTest qw(FindWindowLike SetForegroundWindow SendKeys Push
+Button);
my @windows = FindWindowLike(0, "^Calculator"); # find all calculator
+windows
die "Start Calc before running this example.\n" unless @windows;
my $hwnd = $windows[0]; # we'll just the first match
SetForegroundWindow($hwnd); # Bring it the foreground
SendKeys("%VS"); # switch to scientific mode
# press these buttons
foreach my $button ("Hex", "Dec", "Oct", "Bin") {
sleep(2);
PushButton($button);
}
See how much simpler that is? Win32::API is great if it can't be done another way.
Update: Added the die statement to my code.
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|