Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: вставка данных во всплывающее окно Добавлено: 27.03.07 17:47  

Автор вопроса:  APS | ICQ: 234458121 
Возможно, не совсем правильно сформулировал тему.
Вопрос вот какой? При печати на принтере Adobe PDF появляется окно для ввода пути и имени файла. Можно ли как-то автоматом выбрать папку и подставить имя файла, а потом считать какими они были при закрытии окна.

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 APS



ICQ: 234458121 

Вопросов: 38
Ответов: 107
 Профиль | | #1 Добавлено: 27.03.07 22:37
насколько я понимаю, надо пользоваться API
т.е. сначала надо найти нужное окно по хеадеру
это примерно понятно как делать
вот что дальше, как найти то поле в окне, которое нужно?

Ответить

Номер ответа: 2
Автор ответа:
 APS



ICQ: 234458121 

Вопросов: 38
Ответов: 107
 Профиль | | #2 Добавлено: 27.03.07 23:30
окно "Сохранить PDF-файл как" я ловлю
как теперь отловить остальные параметры данного окна?

Ответить

Номер ответа: 3
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #3 Добавлено: 28.03.07 02:15
api EnumChildWindows

Ответить

Номер ответа: 4
Автор ответа:
 APS



ICQ: 234458121 

Вопросов: 38
Ответов: 107
 Профиль | | #4 Добавлено: 29.03.07 16:22
Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" _
    ;(ByVal lpClassName As Any, ByVal lpWindowName As Any) As Long
Declare Function EnumChildWindows Lib "user32.dll" (ByVal hWndParent As Long, _
    ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
Declare Function GetWindowTextLength Lib "user32.dll" _
    Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Declare Function GetWindowText Lib "user32.dll" Alias "GetWindowTextA" _
    ;(ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

Sub adobe()
    Dim fhwnd As Long  ' дескриптор окна

    ' ищем окно печати PDF-файла
    fhwnd = FindWindow(vbNullString, "Сохранить PDF-файл как";)
    If fhwnd = 0 Then  ' если не найдено
        Debug.Print "Печать PDF-файла сейчас не активирована"
    Else
        ' ищем дочерние окна
        Debug.Print "Печать PDF-файла запрашивает имя файла"
        
        ' Use the above callback function to list all of the enumerated windows.  Note that lParam is
        ' set to 0 because we don't need to pass any additional information to the function.
        retval = EnumChildWindows(fhwnd, AddressOf EnumChildProc, 0)

    End If
End Sub
        
' This function displays the title bar text of the window identified by hwnd.
Public Function EnumChildProc(ByVal hwnd As Long, ByVal lParam As Long) As Long
    Dim slength As Long, wintext As String  ' window title text length and buffer
    Dim retval As Long  ' return value
    Static winnum As Integer  ' counter keeps track of how many windows have been enumerated

    winnum = winnum + 1  ' one more window enumerated....
    slength = GetWindowTextLength(hwnd) + 1  ' get length of title bar text
    buffer = Space(slength)  ' make room in the buffer
    retval = GetWindowText(hwnd, buffer, slength)  ' get title bar text
    Debug.Print "Window #"; winnum; " : ";  ' display number of enumerated window
    Debug.Print Left(buffer, slength - 1)  ' display title bar text of enumerated window

    EnumChildProc = 1  ' nonzero return value means continue enumeration
End Function



Полазил в примерах и т.д. Попытался из них что-то склеить. Но никак не могу найти, где ошибка. Выдает пустые заголовки дочерних окон. Хотя, может, оно так и есть?

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам