2

我有一个文件目录,我想定期扫描并使用它们关联的默认应用程序执行。它们是不可执行的,所以 system("file.torrent"); 不起作用。您如何在 Perl 中使用相关应用程序运行文件?

4

6 回答 6

7

标准的 windows 方式是使用ShellExecute

在 perl 中,您可以使用 ShellExecute 来完成。它在Win32::GUI 包中。

没试过。但它看起来很简单。

于 2009-01-05T22:47:29.370 回答
6

开始

您可以手动解析注册表的相关部分,找到相关的应用程序,然后自己启动它:但命令提示符的内置启动命令生活更轻松。

因此,对于您的示例,您只需执行一个 system("cmd /c start file.torrent")

于 2009-01-05T22:31:49.667 回答
3

不是 Perl 特定的,但您始终可以使用“开始”命令。第一个参数将是打开的新命令提示符的标题,第二个参数是要打开的文件。

system('start "dummy title" "some file.doc"'); # opens the document in word
于 2009-01-05T22:55:39.557 回答
1

我们使用的另一个选项是

system("RunDLL32.exe SHELL32.DLL,ShellExec_RunDLL file.torrent")

于 2009-01-06T06:42:20.970 回答
0

永远不要在 Windows 上使用 system() !蹩脚的坏方法(PAS)

于 2009-01-06T11:24:23.430 回答
0

只是为了突出上面 BeowulfOF 的评论

system( "test.log" )

将在它的关联应用程序中打开 test.log,就像输入一样

test.log

在命令行上

于 2010-12-07T04:09:41.037 回答