How do I create drag-and-drop Strawberry Perl programs?

后端 未结 3 2299
梦如初夏
梦如初夏 2020-12-06 01:52

I\'ve got a Strawberry Perl program that accepts a single-file as a command-line argument. How can I set things up such that I can drag and drop the desired file onto the S

3条回答
  •  悲&欢浪女
    2020-12-06 02:03

    Eeek! Please don't create a wrapper script/cmd when you don't need to.

    Go into your Registry or your File Type dialog box in Windows, and redefine the Perl default action to say:

    "C:\path-to-perl-folders\perl.exe" "%1" %*
    

    This will cause double-clicking the .PL to launch perl.exe with the name of the double-clicked file (%1). The %* stuff (passing any filename arguments to the Perl script) is trickier.

    Go into the Registry again (really, it's not as scary as people think) and find/create a "shellex" key under the Perl class, and then create a sub-key called "DropHandler" with a default string value of "{86C86720-42A0-1069-A2E8-08002B30309D}" (at least, that's my DropHandler in the US version of Windows XP).

    This allows .pl files (actually, anything associated with the Perl class) to have a drop handler that tells Explorer what to do when you drop file(s) on the .pl script. In this case, it just means "run the Perl script with the dropped file(s) as arguments".

    Hmmm, I don't think I explained that very well, but that's how I've set up Perl (running off a network drive) for a large engineering organization. Google for Perl and DropHandler, and you should be able to get the .reg Registry script to do this for you.

提交回复
热议问题