Когда вы дважды щелкаете файл, программа запускается, и (обычно) имя файла, по которому вы дважды щелкаете мышью, передается программе в качестве аргумента командной строки.
Когда вы перетаскиваете в окно, программа уже запущена.
Разница, очевидно, заключается в процессе запуска программы. Это программное обеспечение написано на месте? Возможно, проверьте, как он обрабатывает запуск, и убедитесь, что все соответствующие пути кода по-прежнему выполняются, когда в аргументах командной строки есть файл.
Если вы не можете проверить программный код или то, как он ведет себя при запуске, единственное, что нужно проверить в реестре и, возможно, изменить, - это способ передачи имени файла. Обычно они передаются внутри говорящих знаков. , чтобы путь к файлу мог иметь пробелы и не перепутать программу. Что-то, что можно попробовать, это убедиться, что ассоциация использует говорящие метки в аргументе, или, если это уже так, попробуйте это без. Возможно, программа неправильно обрабатывает речевые метки.