Как я могу обрабатывать параметры с пробелами в Delphi?

Моя программа принимает имена входных файлов либо как параметры командной строки, либо в операции перетаскивания, либо в проводнике, щелкая имена файлов с расширением, связанным с моей программой.

Командная строка и перетаскивание работают нормально, но щелчок по именам файлов в проводнике вызывает проблемы, когда в путях к файлам, по которым был выполнен щелчок, есть пробелы, например:

c:\temp\file one.txt
c:\my directory\filetwo.txt
c:\my directory\file three.txt

тогда функция ParamStr дает мне назад:

Я установил расширение файла в реестре для моей программы , как того требует Windows .

В реестре в разделе shell / open / command у меня есть:

"C:\MyProgramPath\MyProgram.exe" "%1" 

У меня это отлично работает. Когда кто-то щелкает один или несколько файлов, связанных с моим приложением, мое приложение правильно открывает файл (ы), но каждый из них открывается в отдельном экземпляре программы.

Есть ли способ сделать это и открыть все файлы в один экземпляр программы?

6
задан lkessler 31 August 2010 в 04:30
поделиться