Функция GetOpenFileName

Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOPENFILENAME As OPENFILENAME) As Long

Платформа: Win 95/98, Win NT

GetOpenFileName открывает стандартное общее диалоговое окнo открытия файла.Вся нужная вам информация для передачи функции содержится в pOPENFILENAME.Заметьте,что функция не открывает файлы,а только открывает диалоговое окно и возвращает имя файла(файлов).Функция возвращает 0 в случае ошибки или если была нажата кнопка Отмена,в успешном случае возвращается 1.

pOPENFILENAME
Содержит параметры для открытия диалогового окна.Также получает возвращаемое имя файла или файлов и другую информацию.

Пример:

' Открываем общее диалоговое окно и ищем файлы *.txt
Dim filebox As OPENFILENAME  ' структура для управления диалоговым окном
Dim fname As String  ' возвращаемое имя файла
Dim retval As Long  ' возвращаемое значение

' Устанавливаем вид диалогового окна
filebox.lStructSize = Len(filebox)  ' размер структуры
filebox.hwndOwner = Form1.hWnd  ' дескриптор формы
filebox.lpstrTitle = "Сим-Сим,откройся"  ' текст для заголовка диалогового окна
' Здесь устанавливаем типы файлов
filebox.lpstrFilter = "Тексты" & vbNullChar & "*.txt" & vbNullChar & "Все файлы" & vbNullChar & "*.*" & vbNullChar & vbNullChar
filebox.lpstrFile = Space(255)  ' создаем буфер для приема пути и имени файла
filebox.nMaxFile = 255  ' длина буфера
filebox.lpstrFileTitle = Space(255)  ' создаем буфер для приема имени файла
filebox.nMaxFileTitle = 255  ' длина для этого буфера
' отображаем существующие скрытые и только для чтения файлы
filebox.flags = OFN_PATHMUSTEXIST Or OFN_FILEMUSTEXIST Or OFN_HIDEREADONLY

' Запускаем общее диалоговое окно
retval = GetOpenFileName(filebox)
If retval <> 0 Then  ' если все нормально
  ' удаляем нулевой символ из имени файла
  fname = Left(filebox.lpstrFile, InStr(filebox.lpstrFile, vbNullChar) - 1)
  Debug.Print "Вы выбрали файл: "; fname
End If

Схожие функции: GetSaveFileName
Категория Общее диалоговое окно
В начало.