Win32::GuiTest::Cmd - Perl Batch File Enhancer. Part of Win32::GuiTest.


SYNOPSIS

  use Win32::GuiTest::Cmd ':ASK';
  Pause("Press ENTER to start the setup...");
  setup_network() 
    if YesOrNo("Setup networking component?");
  $address = AskForIt("What's your new ip address?", 
    "122.122.122.122");
  $dir = AskForDir("Where should I put the new files?", 
    "c:\\temp");
  copy_files($dir) if $dir;
  $exe = AskForExe("Where is your net setup program?", 
    "/foo/bar.exe");
  system($exe) if YesOrNo("Want me to run the net setup?");


DESCRIPTION

Instead of writing batch files (although on NT they are almost usable), I've resorted more and more to writing Perl scripts for common sysadmin/build/test chores. This module makes that kind of thing easier.

Other modules I've found useful for that kind of work:

use Win32::NetAdmin;

use Win32::NetResource;

use Win32::ODBC;

use Socket;

use Sys::Hostname;

use File::Path 'mkpath';

use Getopt::Std 'getopts';


FUNCTIONS

Console

Console interaction functions heavily based on the command-line installer for the libwin32 distribution written by Gurusamy Sarathy.

Pause([$message])
Shows a message and waits until the user presses ENTER.

YesOrDie([$message])
Asks for a [y/n] response using the message you specify. The program dies if you answer 'n'.

YesOrNo([$msg])
Asks for a [y/n] response using the message you specify. Returns 1 if you type 'y' or 0 otherwise.

AskForIt([$question],[$def_value])
Asks the user to input a value and returns it. If you omit $question a default question will be used. If you omit $def_value, false will be used as default return value.

IsExe($filename)
Checks if a file is executable.

AskForExe([$question],[$def_exe])
Just like AskForIt, but returns false if the value is not an executable file.

AskForDir([$question],[$def_dir])
Just like AskForIt, but returns false if the value is not a directory.

AskAndRun([$question],[$def_exe])
Asks for an exe file an runs it using system.

System Configuration

Mostly allow opening Win32 Control Panel Applets programatically.

RunCpl($applet)
Opens a Control Panel Applet (.cpl) by name.
 RunCpl("modem.cpl");

Modem, Network, Console, Accessibility, AppWizard, Pcmcia, Regional, Joystick, Mouse, Multimedia, Odbc, Ports, Server, System, Telephony, DateTime, Ups, Internet, Display, FindFast, Exchange, 3ComPace
Each of them opens the corresponding Control Panel Applet.

Ras
Installs or configures the RAS (Remote Access Service) component.

Users
Runs the User/Group Manager application.

Registry

Manipulate the registry.

RegisterCom($path)
Uses regsvr32.exe to register a COM server.
  RegisterCom("c:\\myfiles\\mycontrol.ocx");

UnregisterCom($path)
Uses regsvr32.exe to unregister a COM server.
  UnregisterCom("c:\\myfiles\\mycontrol.ocx");

AddToRegistry($regfile)
Uses regedit.exe to merge a .reg file into the system registry.
  AddToRegistry("c:\\myfiles\\test.reg");

Misc

Sorry about that...

WhichExe($file)
Takes a command name guesses which executable file gets executed if you invoke the command.
    WhichExe("regedit")  -> C:\WINNT\regedit.exe
    WhichExe("regsvr32") -> D:\bin\regsvr32.exe
    WhichExe("ls")       -> D:\Usr\Cygnus\B19\H-i386-cygwin32\bin\ls.exe

Based on original code grabbed from CPAN::FirstTime.

Added support for NT file extension associations:

   WhichExe("test.pl")   -> perl D:\SCRIPTS\test.pl %*
   WhichExe("report.ps") -> D:\gstools\gsview\gsview32.exe D:\TMP\report.ps

TempFileName
Returns the full path for a temporary file that will not collide with an existing file.


AUTHOR

Ernesto Guisado <erngui@acm.org>, <http://triumvir.org>

 Win32::GuiTest::Cmd - Perl Batch File Enhancer. Part of Win32::GuiTest.