gpt4 book ai didi

perl - 如何在 Windows 上使用 perl 调用系统文件选择对话框?

转载 作者:行者123 更新时间:2023-12-01 12:35:32 27 4
gpt4 key购买 nike

我知道许多基于 perl 的 gui 模块可以轻松做到这一点,但我对 PrimaTk 等方法很好奇
我想将此对话框(与 Windows 资源管理器完全相同)称为命令行包。

是否有类似于 system(''); 命令的可能。

请注意,我需要通过 perl 打开并处理此类对话框选择的文件。

最佳答案

这并不容易,首先您必须构建 OpenFileDialog api 所需的数据结构,在低级别与系统交互,跟踪文件句柄,然后获取并解析结果结构。

有一些可怕的技巧,您可以在其中保存 Windows 脚本,然后按照您的建议使用系统从 perl 运行它。请记住,这需要正确的权限和安装的脚本语言。

# From http://www.pcreview.co.uk/threads/launching-a-search-explorer-exe-form-the-command-line.1468270/
system( q{"echo CreateObject("Shell.Application").FindFiles >%temp%\myff.vbs"} ); #setup script
my @files = system( "cscript.exe //Nologo %temp%\myff.vbs" ); # Get files
system( "del %temp%\myff.vbs" ); # Cleanup

Win32::GUI 的作者在简化方面做得很好,

my @file = Win32::GUI::GetOpenFileName ();

或者使用一些有用的选项,例如过滤、起始目录和窗口标题。

# A simple open file with graphic filers
my ( @file, $file );
my ( @parms );
push @parms,
-filter =>
[ 'TIF - Tagged Image Format', '*.tif',
'BMP - Windows Bitmap', '*.bmp',
'GIF - Graphics Interchange Format', '*.gif',
'JPG - Joint Photographics Experts Group', '*.jpg',
'All Files - *', '*'
],
-directory => "c:\\program files",
-title => 'Select a file';
push @parms, -file => $lastfile if $lastfile;
@file = Win32::GUI::GetOpenFileName ( @parms );

关于perl - 如何在 Windows 上使用 perl 调用系统文件选择对话框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30251227/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com