Win32-EnvProcess version 0.06
================================
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
A C/C++ compiler is required to build this module.
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.