1

WindowsOSでプログラムのウィンドウからリッチテキストをコピーする必要があります。

テキストをワードパッドにドラッグアンドドロップすると(ctrl-cは機能しません)、特定のギリシャ語フォントを使用して正しい結果が得られます。しかし、perlではまったく機能しません。リッチテキストであるかどうかによると思います。

次のコードでは、###が前に付いた行の可能なすべての順列を試しましたが、結果は常に同じで、ギリシャ語形式のテキストの代わりに多くの疑問符が表示されます。

手伝ってくれますか?ありがとう

use 5.016;
use Win32::GuiTest
qw( FindWindowLike GetWindowRect GetWindowID GetClassName WMGetText GetWindowText UnicodeSemantics);
use strict;
use warnings;
use Encode qw (from_to decode encode);

UnicodeSemantics(1);

###
use open ':encoding(utf8)';
###
#binmode(STDOUT, ":utf8");
###
open 'FILE', ">", "canc.txt";
###
#binmode(FILE, ":utf8");

my $hwnd = 131266;
my $info = "# Window Text: '" . GetWindowText($hwnd) . "'\r\n";
$info = $info . "# Window Class: '" . GetClassName($hwnd) . "'\r\n";
$info = $info . "# Window ID: " . GetWindowID($hwnd) . "\r\n";
my ( $left, $top, $right, $bottom ) = GetWindowRect($hwnd);
$info = $info . "# Window Rect: ($left, $top) - ($right, $bottom)\r\n";

say $info;
my $actualText = WMGetText($hwnd);
say $actualText;
say FILE $actualText;
###
my $foo = decode( 'UTF-8', $actualText );
say $foo;
say FILE $foo;
###
my $body = encode( 'UTF-8', $foo );
say $body;
say FILE $body;
4

0 に答える 0