如何在Delphi中处理带空格的参数?

lke*_*ler 5 delphi filenames associations paramstr

我的程序接受输入文件名作为命令行参数或在拖放操作中,或通过单击与我的程序关联的扩展名的文件名接受输入文件名.

命令行和拖放工作正常,但它点击资源管理器中的文件名,当单击文件的文件路径中有空格时会导致问题,例如:

c:\temp\file one.txt
c:\my directory\filetwo.txt
c:\my directory\file three.txt
Run Code Online (Sandbox Code Playgroud)

然后,ParamStr函数给了我回复:

ParamStr(1):  c:\temp\file
ParamStr(2):  one.txt
ParamStr(3):  c:\my
ParamStr(4):  directory\filetwo.txt
ParamStr(5):  c:\my
ParamStr(6):  directory\file
ParamStr(7):  three.txt
Run Code Online (Sandbox Code Playgroud)

我怎样才能最好地将这些重新组合成我需要的三个文件名?

Fra*_*ois 8

它可能是您的shell文件关联,不包括""对.

像这些开放:

"C:\Program Files\WinRAR\WinRAR.exe" "%1"  
Run Code Online (Sandbox Code Playgroud)

或者使用DDE消息:

[open("%1")]
Run Code Online (Sandbox Code Playgroud)