Win32-EnvProcess version 0.04
================================

Perl extension to set or get environment variables from
other processes on Windows only

SYNOPSIS

    use Win32::EnvProcess (:all);
    
    my $result = SetEnvProcess($pid, env_var_name, [value], ...);
    
    my @values = GetEnvProcess($pid, [env_var_name, [...]]);
    
    my @pids   = GetPids([exe_name]);
    
INSTALLATION

To install this module type the following:

   perl Makefile.PL
   nmake
   nmake test  (see TESTS below)
   nmake install

   If using the GNU toolset (for example with Strawberry Perl), 
   use dmake instead of nmake.
   
   * NON-STANDARD step *
   ---------------------
   The method used for communication with the alien process is called
   "DLL injection", which attaches a DLL to it.  Code is executed
   When the DLL is attached to the process, or a new thread is created.
   
   The DLL is named EnvProcessDll.dll does not contain any perl components;
   
   It must be copied to a directory (folder) that is on the load path
   OF THE TARGET PROCESS.  If you are not sure where that may be, try C:\Perl\bin
   (we presumably have perl installed, and it is probably in everyone's path).
   This is done by the tests by default.
   
   copy .\blib\arch\auto\Win32\EnvProcess\EnvProcessDll.dll some-directory
   
   You do not have to use the command-line for the copy, drag-and-drop with Windows
   Explorer is probably easier.
   
   * Visual Studio 2005 issues *
   -----------------------------
   The "manifest" system on this compiler needs to be taken into account by MakeMaker.
   Should you see error messages like: 
      "This application has failed to start because MSVCR80.dll was not found..."
   or
      "Runtime Error! R6034 An application has made an attempt to load the C runtime..."
   
   Then you probably need to patch MakeMaker:
   
   --- lib\ExtUtils\MM_Win32.pm.save Mon Jun 18 14:52:14 2007
   +++ lib\ExtUtils\MM_Win32.pm Mon Sep 17 11:00:19 2007
   @@ -341,6 +341,8 @@
   push(@m,
   q{ $(LD) -out:$@ $(LDDLFLAGS) }.$ldfrom.q{ $(OTHERLDFLAGS) }
   .q{$(MYEXTLIB) $(PERL_ARCHIVE) $(LDLOADLIBS) -def:$(EXPORT_LIST)});
   + push @m, '
   + if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2';
   }
   push @m, '
   $(CHMOD) $(PERM_RWX) $@
   
   This trivial patch teaches makemaker to embed manifests in all cases that they are
   created as a side-effect from compiling under VC 2005. 

   See  http://www.perlmonks.com/?node_id=678699
   
   Many thanks to Yoann Pearson for his help in resolving this, and, as always, to perlmonks.

TESTS

Currently assume you are launching the tests from cmd.exe.  This will not work if
another shell is being used.  


DEPENDENCIES

None

COPYRIGHT AND LICENCE

Copyright (C) 2008 by C. B. Darke

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.8.8 or,
at your option, any later version of Perl 5 you may have available.


