Как да отворите файл с Explorer
Трябва да покажете файла в Explorer "e: това означава, че Explorer се отваря и желаният файл е избран. С помощта на ShellExecute мога да отворя само папката на файла, но как да го избера.
Имам нужда от: ShellExecute(Application.Handle, "explore", PChar(ExtractFilePath(FileName)), nil, nil, SW_SHOWNORMAL);
Но освен това, за да изпъкне файлът. тоест има входния фокус. И ShellExecute отваря само папката.
И какво ще ви даде тази селекция, дори и във външния за програмата прозорец? Потребителят може изобщо да кликне върху друг файл (или изобщо да не отваря нищо).
И използвайки OpenDialog, вие показвате почти същото като в прозореца на Explorer.В същото време потребителят може да стартира същия файл, както и от Explorer: ShellExecute(nil, "open", PChar(OpenDialog.FileName), nil, nil, SW_SHOWNORMAL), или можете да го отворите по някакъв начин различно от програмата
Пример - нашата програма показва куп файлове от различни директории. Потребителят иска бързо да премине към един от тях. Той натиска нещо като "отвори папката, съдържаща обекта" -> нормален Explorer отваря и му показва този файл.
Конкретен пример е търсенето на файлове (F3) в Windows. Всеки файл, намерен там, може да бъде отворен чрез „Отвори папка, съдържаща обект“. Точно същото (елемент от менюто), което прилагам. Единственият проблем е, че ShellExecute+"explore" не избира файла.
И ако се отвори директория с куп файлове, тогава потребителят ще трябва да прекара n секунди в допълнителни стъпки, за да намери файла, от който се нуждае.