На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела Visual Basic: Общие вопросы
Здесь обсуждаются вопросы по языку Visual Basic 1-6 (а так же по схожим языкам, как, например, PowerBASIC).
Вопросы по Visual Basic .NET (это который входит в состав Visual Studio 2002/2003/2005/2008+, для тех, кто не в курсе) обсуждаются в разделе .NET.

Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что Вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Возможно, Ваш вопрос уже обсуждали. Полезные ссылки приведены ниже.
3. Темы с просьбой выполнить какую-либо работу за автора в этом разделе не обсуждаются. Студенты, вам сюда: ПОМОЩЬ СТУДЕНТАМ!
4. Используйте теги [ code=vba ] ...текст программы... [ /code ] для выделения текста программы подсветкой.
5. Помните, здесь телепатов нет. Формулируйте свой вопрос максимально грамотно и чётко: Как правильно задавать вопросы
6. Запрещено отвечать в темы месячной (и более) давности, без веских на то причин.

Полезные ссылки:
user posted image FAQ Сайта user posted image FAQ Раздела user posted image Кладовка user posted image Наши Исходники user posted image API-Guide user posted image Поиск по Разделу user posted image MSDN Library Online user posted image Google

Ваше мнение о модераторах: user posted image SCINER, user posted image B.V.
Модераторы: SCINER, B.V.
Страницы: (3) [1] 2 3  все  ( Перейти к последнему сообщению )  
> узнать путь к открытым папкам
    Доброго времени суток! Допустим, у меня открыто сразу 3 папки. Каким образом я могу узнать пути, которые в них открыты, чтобы потом их открыть заново. Задача такая, запомнить все открытые директории, а после перезагрузки компьютера восстановить их. Помогите, пожалуйста, как это можно осуществить!
        DIS, спасибо конечно, но мне нужно это программно на vb6 осуществить
          Какие API-функции нужно использовать?
            EnumWindows/GetWindowText/ShellExecute, видимо
              B.V., спасибо, попробую
                Подскажите, пожалуйста, в чём ошибка? В переменной hndExpl - нуль. Установен Windows7


                ExpandedWrap disabled
                  'Функция для поиска окна первого уровня
                   Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
                   'Функция для поиска дочернего окна (коим являются такие контролы: Edit, Button и т.д.)
                   Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
                   Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal Msg As Long, wParam As Any, lParam As Any) As Long
                   
                   Private Const WM_GETTEXTLENGTH = &HE
                   Private Const WM_GETTEXT = &HD
                   
                   Sub МакросПроба()
                       Dim hndExpl As Long, hndComb As Long, hndComb2 As Long, hndComb3 As Long, hndComb4 As Long, hndComb5 As Long
                       Dim s As String, iTxtLen As Long, a As Long
                      
                       'Ищем hWnd Проводника по его классу
                       hndExpl = FindWindow("ExploreWClass", vbNullString)
                       'Ищем hWnd ComboBox, который содержит адрес, продираясь через его родителей
                       hndComb = FindWindowEx(hndExpl, 0, "WorkerA", vbNullString)
                       hndComb2 = FindWindowEx(hndComb, 0, "ReBarWindow32", vbNullString)
                       hndComb3 = FindWindowEx(hndComb2, 0, "ComboBoxEx32", vbNullString)
                      
                       ' получаем длину текста
                       iTxtLen = SendMessage(hndComb3, WM_GETTEXTLENGTH, 0, 0)
                       ' добавляем 1 для нулевого символа
                       iTxtLen = iTxtLen + 1
                       s = Space$(iTxtLen)
                       ' получаем текст в переменной s
                       iTxtLen = SendMessage(hndComb3, WM_GETTEXT, iTxtLen, ByVal s)
                       MsgBox s
                   End Sub
                  Вместе с Explore ищи CabinetWClass
                    B.V., не понял, как именно?

                    ExpandedWrap disabled
                       hndExpl = FindWindow("ExploreCabinetWClass", vbNullString)


                    Добавлено
                    так не работает
                      ExpandedWrap disabled
                        hndExpl = FindWindow("CabinetWClass", vbNullString)
                        Filka, написал, теперь hndComb равно нулю! Каков принцип, вообще?


                        ExpandedWrap disabled
                               Dim hndExpl As Long, hndComb As Long, hndComb2 As Long, hndComb3 As Long, hndComb4 As Long, hndComb5 As Long
                               Dim s As String, iTxtLen As Long, a As Long
                              
                               'Ищем hWnd Проводника по его классу
                               hndExpl = FindWindow("CabinetWClass", vbNullString)
                               'Ищем hWnd ComboBox, который содержит адрес, продираясь через его родителей
                               hndComb = FindWindowEx(hndExpl, 0, "WorkerA", vbNullString)
                               hndComb2 = FindWindowEx(hndComb, 0, "ReBarWindow32", vbNullString)
                               hndComb3 = FindWindowEx(hndComb2, 0, "ComboBoxEx32", vbNullString)
                              
                               ' получаем длину текста
                               iTxtLen = SendMessage(hndComb3, WM_GETTEXTLENGTH, 0, 0)
                               ' добавляем 1 для нулевого символа
                               iTxtLen = iTxtLen + 1
                               s = Space$(iTxtLen)
                               ' получаем текст в переменной s
                               iTxtLen = SendMessage(hndComb3, WM_GETTEXT, iTxtLen, ByVal s)
                               MsgBox s
                          ExpandedWrap disabled
                            hndExpl = FindWindow("CabinetWClass", vbNullString)
                            hndExpl = FindWindowEx(hndExpl, 0, "WorkerW", vbNullString)
                            hndExpl = FindWindowEx(hndExpl, 0, "ReBarWindow32", vbNullString)
                            hndExpl = FindWindowEx(hndExpl, 0, "ComboBoxEx32", vbNullString)
                            hndExpl = FindWindowEx(hndExpl, 0, "ComboBox", vbNullString)
                            hndExpl = FindWindowEx(hndExpl, 0, "Edit", vbNullString)

                          Прикреплённая картинка
                          Прикреплённая картинка
                          Сообщение отредактировано: Filka -
                            Filka, данная строка не выполняется
                            ExpandedWrap disabled
                              hndExpl = FindWindowEx(hndExpl, 0, "ComboBoxEx32", vbNullString)


                            Добавлено
                            hndExpl равно нулю
                              salieri, а оконным шпионом посмотреть имена классов?
                                Цитата Filka @
                                оконным шпионом
                                а где его скачать?
                                Сообщение отредактировано: salieri -
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (3) [1] 2 3  все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0809 ]   [ 17 queries used ]   [ Generated: 18.04.24, 12:53 GMT ]