Of course, I'm not at all proud of what I had to do to get there, but after around 20 minutes per line of code trawling through MSDN, I finally managed to find a combination that works.
The single instance server now immediately sends the PID on connect (leading space padded to specifically 10 bytes) and the the client does the following.
my $pid  = '';
my $read = $socket->sysread( $pid, 10 );
if ( defined $read and $read = 10 ) {
	# Got the single instance PID
	$pid =~ s/\s+\s//;
	if ( Padre::Util::WIN32 ) {
		require Win32::API;
		Win32::API->new(
			'User32.dll',
			'AllowSetForegroundWindow',
			'N', 'L',
		)->Call($pid);
	}
}
Pretty please tell me you
Re:Ummmm...
DiamondInTheRough on 2009-06-07T04:12:46
Unfortunately, not.
http://padre.perlide.org/changeset?new=5092%40trunk&old=5091%40trunk
But it's only on svn at the moment, not released, so it should be easy for a committer to add the character.
Re:Ummmm...
gabor on 2009-06-07T04:23:00
fixed, thanksRe:Ummmm...
Alias on 2009-06-09T00:45:22
I gotta say, one of my favourite things about the Padre development team is that I can add a bug to Padre before I go to bed and there's a good chance that by the time I wake up, it's gone.
:) Re:Ummmm...
Alias on 2009-06-07T07:28:11
oopsi