2016-07-06 43 views
0

我想寫一個Perl腳本,允許用戶從Windows資源管理器中選擇一個文件,並將其用作perl腳本內代碼的輸入像STDIN)。因此,代碼將打開Windows資源管理器到正確的目錄,然後用戶點擊(選擇)他們的文件,然後腳本將它作爲變量(例如我的$ selectedFile)在選定文件上執行業務。Perl - 打開Windows資源管理器,並選擇輸入文件的代碼工作

我已經找到了一些代碼來打開Windows資源管理器:

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是不是做到這一點的方式?

乾杯, 馬特

+0

相關:[如何在Perl中顯示打開文件夾選擇對話框?](http://stackoverflow.com/questions/1871290/how-do-i-present-an-open-folder-selection-dialog-在-perl的) – ThisSuitIsBlackNot

回答

0

下面是使用Tk一個非常簡單的方法。

use warnings; 
use strict; 

use Tk; 

my $file = Tk::MainWindow->new->getOpenFile; 

print "selected file: $file\n\n"; 

open my $fh, '<', $file or die $!; 

while (<$fh>){ 
    print; 
} 
1

下面是使用Win32::GUI非常裸機腳本:

use strict; 
use warnings; 

use Win32::GUI(); 

my $file = Win32::GUI::GetOpenFileName(
    -filemustexist => 1, 
); 

if (defined $file) { 
    print "Selected file: $file\n"; 
} else { 
    print "Canceled\n"; 
} 

如果你沒有的Win32 :: GUI,但(Can't locate Win32/GUI.pm in @INC ...),您可以使用cpan Win32::GUI,至少Strawberry Perl安裝。如果您使用的是ActivePerl,我認爲您可以通過ppm install Win32-GUI獲得。

相關問題