GetFile средствами API | |
---|---|
Vladimir_Knyr Сообщений: 1711 Откуда: г. Енисейск Дата регистрации: 15.12.2003 |
вобщем возвращаясь к теме по заданию вида отображения файлов при открытии
навыискивал и вот что получилось:
чаще или почти всегда используем GetFile(), но он модальный попробовал после открытия GetFile() подсунуть ему SendMessage(lWnd, WM_COMMAND, 28717, 0) из другого процесса, прокатило, но как то думаю корявенько это и малость громоздко идея пришла попробовать так
вот собственно и как это можно ли сделать из этого свой GetFile() (с еще одним параметром - ViewMode - например) ------------------ хороший код работать будет и обязан, а плохой не жалко. |
Re: GetFile средствами API | |
---|---|
MichaelD Сообщений: 7578 Дата регистрации: 14.05.2005 |
Возможно я чего-то не понял....
Но вот т.с. "более прямой код" с использованием GetOpenFileName из comdlg32.dll:
... здесь решалась задача: избавиться от фильтра: All Files (*.*) в типах открываемых файлов... Относительно попыток руления с модальными диалогами (у меня в частности, необходимо было давить диалоги-предупреждения об ошибках в скриптах на html-страницах, а также security-предупреждени о левом сертификате при https, при их загрузках через IE control), то подтверждаю, что - единственное решение которое нашёл: это запустить отдельный/дополнительный процесс, в котором по таймеру (с определённой частотой) искать заголовки модальных окон (на десктопе) и посылать их дочернему окну (кнопке OK) сообщение WM_KEYDOWN с VK_RETURN... - взаимодействие между основным процессом и этим вспомогательным в VFP 9.0 организовал на Windows сообщениях между окнами (по их дескрипторам)... ------------------ С уважением, Михаил Дроздов, Пермь, Россия |
Re: GetFile средствами API | |
---|---|
Vladimir_Knyr Сообщений: 1711 Откуда: г. Енисейск Дата регистрации: 15.12.2003 |
Михаил, спасиюо!
задача стояла в том чтобы для выбора графических файлов автоматом открывать окно в виде(рисунок) не зависимо от настроек винды (можно ввести в настройки программы) наковырял как мин. 4 способа но они долгоиграющие твое подтвержденрие про 2й процесс это как бы самое легкое решение ------------------ хороший код работать будет и обязан, а плохой не жалко. |
Re: GetFile средствами API | |
---|---|
Vladimir_Knyr Сообщений: 1711 Откуда: г. Енисейск Дата регистрации: 15.12.2003 |
Ну вот, вроде и получилось , то что и хотелось
1) делаем вот такой EXE файлик - это т.с. и будет вспомогательный процесс, назовем его к примеру Folder_View0.EXE и положим рядом с нашим будущим EXE в котором будем использовать наш 2) Get_File()
2) * Пример вызова/использования
------------------ хороший код работать будет и обязан, а плохой не жалко. |
Re: GetFile средствами API | |
---|---|
rvc44 Автор Сообщений: 2211 Откуда: Тамбов Дата регистрации: 06.12.2005 |
2Vladimir_Knyr
1. Да, Владимир, Ваше решение работает и также имеет право на жизнь! Добавлю лишь ряд замечаний, что в Folder_View0.prg, после _screen.Visible = .F. можно еще добавить:
Но лучше бы, вообще, folder_view0.exe оформить в виде DLL-файла, т.к. все-таки EXE-файлы чаще подвержены атакам вирусов. Я лично наблюдал разрушение вирусом своего файла у одного из клиентов... 2. Вообще-то задача, поставленная Владимиром, уже давно решена, причем намного проще и двумя способами! Хотя на Vista лично я не проверял ;) , но все должно работать! Способ №1 от Cesar Chalom:
Способ №2 (более короткий) от Christophe Chenavier:
Все коды клавиш для SENDKEYS можно найти здесь: h_t_t_p://msdn2.microsoft.com/en-us/library/system.windows.forms.sendkeys(vs.71).aspx P.S. M$, атакованная этим вопросом программистами рекомендует, правда БЕЗ ГАРАНТИЙ, на VB делать следующее:
Подытоживая тему, возникает вопрос, а нафига тогда вообще в Фоксе функция:
Хоть бы, чтоли в VFP9 SP3 его включили! Иначе, каково ее отличие от GETFILE()? |
© 2000-2024 Fox Club  |