Блог GunSmoker-а (переклади) Прості речі, які ви можете робити з ShellExecuteEx
. коли встановлюють одну версію, як добре, як програмування на комп'ютері, що це означає, що людина.
Прості речі, які ви можете робити з ShellExecuteEx
Ось маленька програма. Ця маленька програма приймає два параметри, перший у тому числі є дією (verb), а другий - ім'ям файла, з якого дію виконується. Зауважте, що оскільки ми негайно виходимо, нам потрібно встановити прапор SEE_MASK_FLAG_DDEWAIT: у звичайних умовах функція ShellExecuteEx передбачає, що після її виходу у вас працюватиме цикл вибірки повідомлень (message pump). Це дозволить їй швидко завершити роботу, а всі необхідні повідомлення DDE будуть оброблені пізніше в міру надходження від сервера DDE. Але якщо потік відразу ж завершує свою роботу або він взагалі не є GUI потоком (у нашій програмі вірно і те й інше), то ви захочете придушити цю поведінку, тому що у вас немає циклу вибірки повідомлень, щоб закінчити DDE-спілкування. Установка прапора SEE_MASK_FLAG_DDEWAIT вказує на те, що функція ShellExecuteEx повинна закінчити всю необхідну роботу з DDE перед тим, як повернути керування.
У будь-якому випадку я написав цю маленьку програму для ілюстрації двох канонічних дій (canonical verbs), які ви можете використовувати. Схоже, люди не усвідомлюють, що ShellExecuteEx можна використовувати для виконання таких дій, тому що вони часто запитують, як це зробити. Відкриває вікно пошуку із зазначеною папкою у полі "Шукати в". Відображає діалог "Відкрити за допомогою" для файлу.
У MSDN пишуть, що замість SEE_MASK_FLAG_DDEWAIT необхідно використовувати SEE_MASK_NOASYNC.
Обидва прапори чисельно рівні. Просто запровадили псевдонім для більш ясної семантики. Прапора SEE_MASK_NOASYNC не існувало втой час, коли була написана ця нотатка.
Може, хто в курсі. З якої версії Делфі з'явилася константа SEE_MASK_NOASYNC?
У RAD Studio 2010 модуль ShellAPI.
const SEE_MASK_NOASYNC = $00000100; SEE_MASK_FLAG_DDEWAIT = SEE_MASK_NOASYNC;
Можна використовувати деякі HTML-теги, наприклад:
Будь ласка, по можливостівикористовуйте "Ім'я/URL" замість "Анонімний". URL-адресу можна просто не вказувати.
Ваше повідомлення може бути позначене як спам-фільтром - не хвилюйтеся, воно з'явиться після перевірки адміністратором.