ぶっちゃけると
VB6->VB.NETよりVB6->VC++6のほうが遥に楽。
use strict; use warnings; use Win32::API; use Win32::API::Callback; $| = 1; my %WindowTitle = (); my $EnumWindows = new Win32::API('user32', 'EnumWindows', 'KN', 'N'); my $GetWindowText = new Win32::API('user32', 'GetWindowText', 'NPN', 'N' ); my $Callback = Win32::API::Callback->new( sub { my($hwnd, $lparam) = @_; my $text = ' ' x 255; my $length = $GetWindowText->Call( $hwnd, $text, 255 ) || return 1; $text = substr( $text, 0, $length ) || return 1; push @{$WindowTitle{$text}}, $hwnd; return 1; }, 'NN', 'N'); $EnumWindows->Call($Callback, 0); foreach(keys %WindowTitle) { printf "%-40s : %-s\n", $_, join ',', @{$WindowTitle{$_}}; }
perl でやるほうがらくかもしれんwww