Win32-EnvProcess version 0.05 ================================ 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.