Просмотр файлов в папке

Программирование на Visual Basic for Applications
Ципихович Эндрю
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 07.04.2010 (Ср) 17:19

Просмотр файлов в папке

Сообщение Ципихович Эндрю » 19.12.2010 (Вс) 20:54

Код: Выделить всё
DIM myWord AS Word.Application
Set myWord = New Word.Application 'объявляем объект с именем ...
CALL SHELL("explorer D:\Рабочая папка\Пользователь\", vbNormalFocus) 'открыть папку с именем ...
Set myWord = Nothing


По этому скрипту открыли папку и если в ней напимер 50 файлов то как сделать Вид > Таблица, как???

Там ещё могут быть в Вид:
Эскизы страниц
Плитка
Значки
Список
Таблица

Как сделать Упорядочить значки > Изменён??

Там ещё могут быть в Упорядочить значки:
Имя
Размер
Тип
Изменён

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Просмотр файлов в папке

Сообщение alibek » 20.12.2010 (Пн) 9:09

В чем заключается вопрос?
Lasciate ogni speranza, voi ch'entrate.

Ципихович Эндрю
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 07.04.2010 (Ср) 17:19

Re: Просмотр файлов в папке

Сообщение Ципихович Эндрю » 20.12.2010 (Пн) 9:44

открыли папку програмно и если в ней например 50 файлов то как сделать при помощи ВБА просмотр файлов Вид > Таблица??? и Упорядочить значки > Изменён??

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Просмотр файлов в папке

Сообщение iGrok » 20.12.2010 (Пн) 15:26

Нафига раскрашивать сообщение в цвета, почти сливающиеся с цветом фона?

Копать в сторону коллекции ShellWindows и её содержимого.
label:
cli
jmp label

Ципихович Эндрю
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 07.04.2010 (Ср) 17:19

Re: Просмотр файлов в папке

Сообщение Ципихович Эндрю » 20.12.2010 (Пн) 15:38

спасибо попробую, как Вам это:
http://www.oszone.net/7296/
http://systemadmins.ru/register/53-reme ... tings.html

Ципихович Эндрю
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 07.04.2010 (Ср) 17:19

Re: Просмотр файлов в папке

Сообщение Ципихович Эндрю » 20.12.2010 (Пн) 15:51

это с этой области???
самый интересный метод — это метод SendWindowMessage(). Он позволяет передавать окну приложения сообщения Windows (щелчки мышью, нажатия клавиш и т.п.). Разобраться в том, какие приложения можно посылать окнам приложений и что они значат, можно при помощи Microsoft Platform Software Development Kit. Например, чтобы в нашем блокноте отобразить окно "О программе", можно воспользоваться командой

Tasks("Notepad").SendWindowMessage &H111, 11, 0

Пробовал

Код: Выделить всё
If Tasks.Exists("Notepad") = False Then
Shell "notepad.exe"
Tasks("Notepad").SendWindowMessage &H111, 11, 0 'ошибка 5941 Запрашиваемый номер семейства не существует!!!!!
Else
Tasks("Notepad").Activate
End If

Ципихович Эндрю
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 07.04.2010 (Ср) 17:19

Re: Просмотр файлов в папке

Сообщение Ципихович Эндрю » 20.12.2010 (Пн) 18:31

Подказали на другом форуме:
Код: Выделить всё
'открыть папку ..., в Вид изменить:
'Эскизы страниц
'Плитка
'Значки
'Список
'Таблица

Dim myWord As Word.Application
Set myWord = New Word.Application 'объявляем объект с именем ...
Call Shell("explorer D:\Рабочая папка\Пользователь\", vbNormalFocus) 'открыть папку с именем ...
Set myWord = Nothing

И = Replace$("D:\Рабочая папка\Пользователь\", "\", "/")
И1 = Replace$(И, " ", "%20")
Папка = "file:///" & Left$(И1, (Len(И1) - 1))

Dim winShell As Object
Dim w As Object
   
    Set winShell = CreateObject("Shell.Application").Windows
    For Each w In winShell
        Обрабатываемое_окно = w.LocationURL
        If w.LocationURL = Папка Then CallByName w.Document, "CurrentViewMode", VbLet, 1: Exit For
   Next

'в строке CallByName w.Document, "CurrentViewMode", VbLet, 3 - "3" это:
'FVM_ICON = 1
'FVM_SMALLICON = 2
'FVM_LIST = 3
'FVM_DETAILS = 4
'FVM_THUMBNAIL = 5
'FVM_TILE = 6
'FVM_THUMBSTRIP = 7
'FVM_CONTENT = 8

сделать Вид > Таблица сделали!!

Как сделать Упорядочить значки > Изменён??
Там ещё могут быть в Упорядочить значки:
Имя
Размер
Тип
Изменён

Ципихович Эндрю
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 07.04.2010 (Ср) 17:19

Re: Просмотр файлов в папке

Сообщение Ципихович Эндрю » 20.12.2010 (Пн) 22:18

вот это поворот, я то думал, что
в строке
Then CallByName w.Document, "CurrentViewMode", VbLet, 8: Exit For

Например, 8 это будет показ FVM_CONTENT, но проверил, от 1 до 8 всё время показывает списком?Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!?
'FVM_ICON = 1
'FVM_SMALLICON = 2
'FVM_LIST = 3
'FVM_DETAILS = 4
'FVM_THUMBNAIL = 5
'FVM_TILE = 6
'FVM_THUMBSTRIP = 7
'FVM_CONTENT = 8

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16473
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Просмотр файлов в папке

Сообщение Хакер » 23.12.2010 (Чт) 14:38

Ципихович Эндрю писал(а):Then CallByName w.Document, "CurrentViewMode", VbLet, 8: Exit For


Вот же изврат.

Что мешает написать
w.Document.CurrentViewMode = FVN_CONTENT

?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Ципихович Эндрю
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 07.04.2010 (Ср) 17:19

Re: Просмотр файлов в папке

Сообщение Ципихович Эндрю » 23.12.2010 (Чт) 18:42

спасибо поправил
Не подскажите, меняю по очереди все 10 FVM... но просмотр папки просматривается как Значки, почему?????7

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Просмотр файлов в папке

Сообщение Antonariy » 24.12.2010 (Пт) 11:58

Хакер писал(а):
Ципихович Эндрю писал(а):Then CallByName w.Document, "CurrentViewMode", VbLet, 8: Exit For


Вот же изврат.

Что мешает написать
w.Document.CurrentViewMode = FVN_CONTENT

?

Это мой изврат.
При таком объявлении:
Код: Выделить всё
Dim WithEvents lFolderDoc As shell32.ShellFolderView

lFolderDoc.CurrentViewMode натыкается на function or interface marked as restricted. Ну я и скопипастил строчку, заменив lFolderDoc на w.Document.
Лучший способ понять что-то самому — объяснить это другому.

Ципихович Эндрю
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 07.04.2010 (Ср) 17:19

Re: Просмотр файлов в папке

Сообщение Ципихович Эндрю » 24.12.2010 (Пт) 13:39

честно говоря я в Вашу мысль не вникал, на сию минуту есть:
Код: Выделить всё
Dim Папка As String
   Set objShell = CreateObject("Shell.Application")
   Папка = "D:\Рабочая папка" 'наклонную в конце не ставить!!!!!!
   objShell.ShellExecute Папка, , , , 0
   For Each w In objShell.Windows
   'Тип_документа = TypeName(w.Document)
   If InStr(TypeName(w.Document), "ShellFolderView") > 0 Then
       'Обрабатываемое_окно = w.Document.Folder.self.Path
       If w.Document.Folder.self.Path = Папка Then
          w.Document.CurrentViewMode = 8
          w.Visible = True
          w.vbNormalFocus 'ошибка 438 Почему, как нужно Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!??
          Exit For
       End If
       End If
   Next
   
  Set objShell = Nothing

'в строке w.Document.CurrentViewMode = 1, последняя цифра означает:
'Значки 1
'Значки 2
'Список 3
'Таблица 4
'Эскизы страниц 5
'Плитка 6
'Просмотр диафильмов 7
'Значки 8

Проверял, работает как часы
Одно не понятно как расширять окно, вопрос в скрипте, подскажите???
И ещё вопрос как теперрь ещё по усмотрению программировать опцию Упорядочить значки при просмотре папки, имеется ввиду например по Размеру?????
Даже не знаю с чего начинать????

Ципихович Эндрю
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 07.04.2010 (Ср) 17:19

Re: Просмотр файлов в папке

Сообщение Ципихович Эндрю » 24.12.2010 (Пт) 15:24

сделал всё, кроме того как ещё по усмотрению программировать опцию Упорядочить значки при просмотре папки, имеется ввиду например по Размеру?????
Даже не знаю с чего начинать????


по ссылке http://files.mail.ru/ODI7A9
Там Вордовский файл с кнопкой будет открывать папку С. В нутро кнопки если залезть можно менять Виды просмотра и размеры окна, но удовлетворения нет, глючное оно всё же, как и IE.
То ли дело строки программировать, вычесть, добавить без ошибок всегда


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

    TopList