Форум: "WinAPI";
Текущий архив: 2002.04.11;
Скачать: [xml.tar.bz2];
Внизwin api Найти похожие ветки
← →
Aleksey1 (2002-01-31 01:16) [0]Всем привет! Помогите пожалуйста разобраьься в такой ситуации.
Значит, имеется стандартный диалог открытия файла, мне нужно взять путь по которому в данный момент отображаются файлы и папки,
читая MSDN я узнал, что это может сделать сообщение диалога CDM_GETFOLDERPATH,
и я пишу в своей программе:
procedure TForm1.Button1Click(Sender: TObject);
var aa:hwnd;
Path: array[0..MAX_PATH] of Char;
begin
aa:=findwindow("#32770","Обзор");//где #32770-класс окна(диалог), обзор-caption окна
if (aa>0) then BEGIN // если такое окно открыто
затем этому диалогу посылаю сообщение:
sendmessage(aa,CDM_GETFOLDERPATH,sizeof(path),integer(@path));//где аа-найденное окно,sizeof(path)-размер буфера, integer(@path)-указатель на переменную, которая должна получить взятый путь
END;
И ничего из этого хорошего не выходит, либо переменная path ПУСТА, либо содержит какие-то каракули.
Я даже смотрел исходник диалогов DIALOGS.PAS и убедился что сообщение послано правильно.
А вот если поместить этот код в OnFolderChange компонента OpenDialog, то при перемещении между папками в path заносится текущий путь
Пример:
procedure TForm1.OpenDialog1FolderChange(Sender: TObject);
var
Path: array[0..MAX_PATH] of Char;
begin
alex:=findwindow(nil,"alexey"); // окно OpenDialog1, caption я поменял специально
SendMessage(alex, CDM_GETFOLDERPATH,SizeOf(Path), Integer(@Path)); // сообщение которое посылается открытому окну
memo1.lines.Add(StrPas(Path)); // добавление путей в поле Memo
end;
← →
unikum (2002-01-31 19:27) [1]Пришли мне адрес на который можно тебе выслать исходник:
Мой адрес:Dmitry_Mar@rambler.ru
← →
alexey1 (2002-02-05 03:08) [2]буду очень рад если поможеш мне, мой адрес: alekssys@mail.ru
← →
alexey1 (2002-02-05 03:13) [3]буду очень рад если поможеш мне, мой адрес: alekssys@mail.ru
← →
alexey1 (2002-02-13 04:07) [4]привет unikum!!!! это alexey1, ты как то хотел выслать исходник по моему проблемному вопросу, буду очень благодарен, вот мой рабочий email- stainer@mail.ru
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.04.11;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c