首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Perl Win32::GUI中使用Windows“钩子函数”?

如何在Perl Win32::GUI中使用Windows“钩子函数”?
EN

Stack Overflow用户
提问于 2012-08-25 16:38:23
回答 1查看 718关注 0票数 1

我正在使用Windows XP SP3,Strawberry Perl。我想让Perl程序的用户选择一个文件;但是当使用Win32::GUI::GetOpenFileName()时,我希望Windows文件选择对话框在"Details“文件列表选项中打开,而不是在默认的" list”文件列表选项中打开。

在网上搜索,似乎我不得不使用Windows的“钩子”功能,并发送某些消息到文件选择控件。有关这方面的文档是MSDN,而我似乎并不掌握如何在Perl中应用它。

有人能推荐一下Perl中正确的调用语法是什么吗?

以下是我的代码示例,其中打开的文件选择对话框带有(默认) "List“选项:

代码语言:javascript
运行
AI代码解释
复制
 use strict;
 use warnings;
 use 5.014;    
 use Win32::Console;
 use Win32::GUI();
 use autodie; 
 use warnings    qw< FATAL  utf8     >;
 use Carp::Always;
 use Win32API::File::Time qw{:win};
use Image::ExifTool qw(:Public);
use Date::Parse;

# ...
my ( $FileName, $ImageDir, $DIR, $TopDir);
# ...
$TopDir = 'D:\My Documents';
    $ImageDir = Win32::GUI::BrowseForFolder( -root => $TopDir, -includefiles => 1,);
    unless ($ImageDir) { 
        say '$DirName not defined after calling Win32::GUI::BrowseForFolder, ',
        'Photo date set line'.__LINE__;
        exit;
    }
    else {
        say "Identified directory: $ImageDir";
    }    
    # now select a file

    $FileName = Win32::GUI::GetOpenFileName( -title  => 'Select an image file', -directory => $ImageDir,
        -file   => "\0" . " " x 256,
        -filter => ["Image files (*.jpg)" => "*.jpg;*.jpeg", "All files", "*.*", ],);
    unless ($FileName) {
        say '$FileName not defined after calling Win32::GUI::GetOpenFileName, ',
        'Photo date set line'.__LINE__;
    }
    else {
        say "Identified image file: $FileName";
    }
# ...

注:(有点)类似的帖子,请访问:http://www.perlmonks.org/?node_id=989418

EN

回答 1

Stack Overflow用户

发布于 2012-08-25 18:39:18

不幸的是,Win32::GUI应用编程接口既没有公开OFN_ENABLEHOOK标志位,也没有公开GetOpenFileName选项的lpfnHook字段。

您也许可以使用Win32::API模块使其在更低的级别上工作,但是您必须使用pack自己构建整个OPENFILENAME结构,并为钩子处理程序编写一些XS代码。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12123774

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档