打开 Windows 资源管理器并选择“输入文件”以处理代码



我想编写一个perl脚本,允许用户从Windows资源管理器中选择一个文件,并将其用作perl脚本中代码的输入(如STDIN)。

因此,代码将打开Windows资源管理器到正确的目录,然后用户将单击(选择)他们的文件,然后脚本将作为变量对所选文件进行操作(例如我的$selectedFile)。

我找到了一些打开窗口资源管理器的代码:

my $explorer = 'c:/windows/SysWOW64/explorer.exe';   
my $directory = 'C:\testdir\';
system($explorer,$directory);

。它工作正常(基于 Perl 僧侣 http://www.perlmonks.org/bare/?node_id=313539)从 pl 脚本打开 Windows 资源管理器。

如何让代码识别我在资源管理器窗口中单击的文件,并从中创建变量?这是可能的还是Perl不是这样做的方法?

干杯马 特

下面是一个使用 Win32::GUI 的非常简单的脚本:

use strict;
use warnings;
use Win32::GUI ();
my $file = Win32::GUI::GetOpenFileName(
    -filemustexist => 1,
);
if (defined $file) {
    print "Selected file: $filen";
} else {
    print "Canceledn";
}

如果你还没有Win32::GUI(Can't locate Win32/GUI.pm in @INC ...),你可以使用cpan Win32::GUI安装它,至少使用Strawberry Perl。如果你使用的是ActivePerl,我想你可以用ppm install Win32-GUI来获得它。

这是使用 Tk 的一种非常简单的方法。

use warnings;
use strict;
use Tk;
my $file = Tk::MainWindow->new->getOpenFile;
print "selected file: $filenn";
open my $fh, '<', $file or die $!;
while (<$fh>){
    print;
}

相关内容

  • 没有找到相关文章

最新更新