Hi,
The attached script should fix things for your particular case. If it
does not, change line 8 to
my $makemanifest = 0;
which will remove the manifests altogether.
As you have checkperl.exe as a working Perl executable, you can run the
script with
C:\Dwimperl\perl\bin\checkperl.exe updateexec.pl
I am thinking perhaps your issue is some version of MS XML libraries
which choke on the spaces / comments etc in the original manifests (as
the app loader tries to read them).
If you still get 'application is not a valid executable' errors, there
will be further info in the event log, but I'm guessing the above will
fix it.
Cheers
Mark
On 16/11/2012 18:01, Brad Hodge wrote:
That worked. I got version information.
Brad
______________________
On Fri, Nov 16, 2012 at 10:48 AM, Mark Dootson<mark.doot...@znix.com>wrote:
Oops! I meant for the last command
C:\Dwimperl\perl\bin\checkperl.exe -MWin32 -V
On 16/11/2012 16:45, Mark Dootson wrote:
Hi,
Just to eliminate the possibility of your problem being some manifest
loading issue, I have uploaded a zip file
http://www.wxperl.co.uk/checkperl.zip
This contains a single executable 'checkperl.exe' that is really just
the perl.exe from Dwimperl with the manifest ripped out.
So, if you extract this to C:\Dwimperl\perl\bin and the following works,
the problem is in the manifests
set PATH=C:\Dwimperl\perl\site\bin;C:\Dwimperl\perl\bin;%PATH%
then
C:\Dwimperl\perl\site\bin\checkperl.exe -MWin32 -V
Cheers
Mark
On 16/11/2012 16:10, Brad Hodge wrote:
Received no errors on either of those, but the second one ran without
opening Padre. :(
______________________
On Fri, Nov 16, 2012 at 10:06 AM, Mark Dootson<mark.doot...@znix.com
wrote:
Hi,
OK. Next thing to test is if the Padre standalone executable works.
This
is at C:\Dwimperl\perl\site\bin\padre.exe and has a manifest that looks
correct to me but before it is run we must be sure that our PATH is set
correctly so in a command prompt:
set PATH=C:\Dwimperl\perl\site\bin;C:\Dwimperl\perl\bin;%PATH%
then
C:\Dwimperl\perl\site\bin\padre.exe
does that work or does it fail too?
Cheers
Mark
On 16/11/2012 16:00, Brad Hodge wrote:
Good thoughts Mark.
I am running SP 3, so that shouldn't be an issue.
I did try C:\Dwimperl\perl\bin\perl -MWin32 -V, and got the
C:\Dwimperl\perl\bin\perl.exe is not a valid Win32 application
message.
Brad
____________________
On Fri, Nov 16, 2012 at 9:48 AM, Mark Dootson<mark.doot...@znix.com>
wrote:
Hi,
This is probably not helpful but I had few problems installing and
running Dwimperl on 32bit Windows XP. I've tested installation and
use
as both a privileged and a limited user.
The only issue I found is that if installed whilst logged in as a non
privileged user ( by using 'Run As' on the installer ) updates to the
system such as the path etc. are not updated until I log out and log
back in again. But this isn't surprising as the Dwimperl installer
does
not attempt any system notifications etc.
One thing I would check is that you are running latest Service Pack
( 3
) with all updates applied.
I seem to recall that the initial release of XP ( and maybe Service
Pack
1 ) would choke on some features of an embedded manifest. The
embedded
manifest in Perl 5.14.2 is technically incorrect as it refers to the
'type' as 'Win32'. According to specification this is wrong and
should
be 'win32' ( lowercase ) - but many Windows versisons seem to parse
this
OK.
If your XP is at Service Pack 1 ( or no service pack at all ) it
would
be good if you could do a test so that the possible manifest problem
can
be eliminated. I'll fix up a 'perl.exe' with no manifest and you
could
test if that one works. But there is really no point doing this if
you
have Service Pack 2 or above.
Initially you could test the following:
C:\Dwimperl\perl\bin\perl -MWin32 -V
(note uppercase -V )
and make sure it gives output.
Regards
Mark
On 16/11/2012 14:48, Brad Hodge wrote:
Mark,
It's 32 bit XP.
Brad
___________________
On Fri, Nov 16, 2012 at 8:46 AM, Mark Dootson<mark.doot...@znix.com
wrote:
Hi,
Brad, is your system 32 bit Windows XP or 64 bit Windows XP?
I'll test out Dwinperl myself so I'm just checking that I get the
same
environment as you.
Regards
Mark
On 16/11/2012 14:25, Brad Hodge wrote:
With regards to you your version email... I was successful running
perl -
v, and got all of the version information (v5.14.2).
When I try to run c:\dwimperl\perl\bin\perl.exe
c:\Dwimperl\perl\site\bin\padre, I get a Windows error box stating
that
c:\dwimperl\perl\bin\perl.exe is not a valid Win32 application.
Brad
____________________
On Fri, Nov 16, 2012 at 8:21 AM, Gabor Szabo<ga...@szabgab.com>
wrote:
On Fri, Nov 16, 2012 at 4:19 PM, Brad Hodge<
brad.h.ho...@gmail.com>
wrote:
I did try both of the ones below.
C:\Dwimperl\perl\site\bin\padre got me the same results as the
regular
attempt.
C:\Dwimperl\perl\site\bin>c:\dwimperl\perl\bin\perl.exe gives me
the
mesage
'dwimperl\perl\site\bin' is not recognized as an internal or
external
command, operable program or batch file.
sorry that was a wrong copy-paste on my part. I hope this is
better:
c:\dwimperl\perl\bin\perl.exe c:\Dwimperl\perl\site\bin\padre
Gabor
_______________________________________________
Padre-dev mailing list
Padre-dev@perlide.org
http://mail.perlide.org/mailman/listinfo/padre-dev
_______________________________________________
Padre-dev mailing list
Padre-dev@perlide.org
http://mail.perlide.org/mailman/listinfo/padre-dev
_______________________________________________
Padre-dev mailing list
Padre-dev@perlide.org
http://mail.perlide.org/mailman/listinfo/padre-dev
_______________________________________________
Padre-dev mailing list
Padre-dev@perlide.org
http://mail.perlide.org/mailman/listinfo/padre-dev
_______________________________________________
Padre-dev mailing list
Padre-dev@perlide.org
http://mail.perlide.org/mailman/listinfo/padre-dev
_______________________________________________
Padre-dev mailing list
Padre-dev@perlide.org
http://mail.perlide.org/mailman/listinfo/padre-dev
_______________________________________________
Padre-dev mailing list
Padre-dev@perlide.org
http://mail.perlide.org/mailman/listinfo/padre-dev
_______________________________________________
Padre-dev mailing list
Padre-dev@perlide.org
http://mail.perlide.org/mailman/listinfo/padre-dev
_______________________________________________
Padre-dev mailing list
Padre-dev@perlide.org
http://mail.perlide.org/mailman/listinfo/padre-dev
_______________________________________________
Padre-dev mailing list
Padre-dev@perlide.org
http://mail.perlide.org/mailman/listinfo/padre-dev
_______________________________________________
Padre-dev mailing list
Padre-dev@perlide.org
http://mail.perlide.org/mailman/listinfo/padre-dev
use strict;
use warnings;
use Win32::Exe;
use File::Copy;
my $rootpath = 'C:/Dwimperl';
my $makemanifest = 1;
# Make a directory to hold backups of our files
my $backupdir = qq($rootpath/exebackup);
mkdir( $backupdir, 0777 ) if !-d $backupdir;
die 'Could not create backupdir' if !-d $backupdir;
# make backup
my @binexecs = qw( perl perl5.14.2 wperl );
for ( @binexecs ) {
my $src = qq($rootpath/perl/bin/$_.exe);
my $tgt = qq($backupdir/$_.exe);
if( !-f $tgt) { File::Copy::copy($src, $tgt) or die qq(Could not create backup of $src : $!); }
}
# and padre executable
{
my $src = qq($rootpath/perl/site/bin/padre.exe);
my $tgt = qq($backupdir/padre.exe);
if( !-f $tgt) { File::Copy::copy($src, $tgt) or die qq(Could not create backup of $src : $!); }
}
# update bin execs
for ( @binexecs ) {
my $src = qq($backupdir/$_.exe);
my $final = qq($rootpath/perl/bin/$_.exe);
write_manifest( $src, $final );
}
# and Padre exec
write_manifest( qq($backupdir/padre.exe), qq($rootpath/perl/site/bin/padre.exe) );
sub write_manifest {
my($src, $tgt) = @_;
my $manifest = ( $makemanifest ) ? Win32::Exe::Manifest->new() : '';
$manifest->add_common_controls if $manifest;
my $exe = Win32::Exe->new($src);
$exe->set_manifest($manifest);
chmod(0777, $tgt);
unlink($tgt);
$exe->write($tgt);
chmod(0555, $tgt);
}
1;
_______________________________________________
Padre-dev mailing list
Padre-dev@perlide.org
http://mail.perlide.org/mailman/listinfo/padre-dev