Как интерпретировать или даже контролировать порядок файлов, открытых приложениями MDI?

Скажем, каталог содержит следующие шестнадцать файлов:

pos1_conf1_1_OS_1state_lbs.out
pos1_conf1_1_OS_3state_lbs.out
pos1_conf2_1_OS_1state_lbs.out
pos1_conf2_1_OS_3state_lbs.out
pos2_conf1_1_OS_1state_lbs.out
pos2_conf1_1_OS_3state_lbs.out
pos3_conf1_1_OS_1state_lbs.out
pos3_conf1_1_OS_3state_lbs.out
pos4_conf1_1_OS_1state_lbs.out
pos4_conf1_1_OS_3state_lbs.out
pos5_conf1_1_OS_1state_lbs.out
pos5_conf1_1_OS_3state_lbs.out
pos5_conf2_1_OS_1state_lbs.out
pos5_conf2_1_OS_3state_lbs.out
pos6_conf1_1_OS_1state_lbs.out
pos6_conf1_1_OS_3state_lbs.out

Если я открою их все сразу, с помощью «Файл-> Открыть» или «Перетащить и отпустить» файлы открываются в совершенно случайном порядке.

образец изображения

Следует отметить, что это происходит как в коммерческом программном обеспечении, таком как ChemDraw, так и в самодельных утилитах. Мне интересно, как интерпретировать или даже контролировать этот случайный порядок файлов, открытых приложениями MDI?


person SOUser    schedule 06.05.2012    source источник
comment
Они открываются в том порядке, в котором ОС (Windows) отправляет их в приложение. Это может показаться случайным, это также может быть просто естественный порядок: порядок, в котором они были добавлены в папку. Не путайте это с отметками времени, даже с датой создания, поскольку файл сохраняет свои исходные отметки времени при перемещении в другую папку.   -  person Marjan Venema    schedule 06.05.2012
comment
Разве это не ваш код, который открывает файлы? Связана ли эта проблема с приложением MDI?   -  person Sertac Akyuz    schedule 06.05.2012
comment
@MarjanVenema: Спасибо за комментарии! Я не знал этого раньше! Интересно, если я выберу несколько файлов в проводнике Windows и нажму Enter, чтобы открыть эти файлы в коммерческих программах с закрытым исходным кодом, как перехватить и изменить порядок? Что касается самодельных утилит, я мог отсортировать файлы перед чтением содержимого.   -  person SOUser    schedule 06.05.2012
comment
@SertacAkyuz: Большое спасибо за ваш комментарий! Это происходит как с моими самодельными утилитами, так и с коммерческими программами. Это могло быть связано с MDI, но я не уверен.   -  person SOUser    schedule 06.05.2012
comment
Для закрытого программного обеспечения: в Windows API могут быть некоторые хуки, которые вы могли бы использовать. Для себя: это зависит от того, как Windows запускает ваше приложение: только один раз со всеми файлами в качестве параметров или один раз для каждого файла (вам нужно будет самостоятельно предпринять шаги в последующих экземплярах, чтобы отправить их первому экземпляру, а затем завершить работу) . В первом случае вы можете сортировать, во втором случае вы мало что можете сделать, так как никогда не знаете, когда прибудет последний файл.   -  person Marjan Venema    schedule 06.05.2012
comment
@MarjanVenema: Спасибо за комментарии! Вы случайно не знаете, на какие крючки мне стоит обратить внимание? Поиск в Интернете не дал мне никаких подсказок.   -  person SOUser    schedule 06.05.2012
comment
Извините, нет, опыта в этом нет.   -  person Marjan Venema    schedule 06.05.2012


Ответы (1)


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

person David Heffernan    schedule 06.05.2012
comment
@DavidHaffernan: Большое спасибо за ваши комментарии! Знаете ли вы какие-то хуки, которые я мог бы перехватить и изменить порядок файлов до запуска связанного приложения? - person SOUser; 06.05.2012
comment
Не думаю, что есть зацепки, во всяком случае не официальные - person David Heffernan; 06.05.2012