Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 2 [Все]   Вниз
  Печать  
Автор Тема: В отрытой при помощи ВБА папке как файлы разместить Вид Таблица  (Прочитано 45560 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Ципихович Эндрю
Помогающий

ru
Offline Offline

« : 19-12-2010 09:37 » 

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

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

По пунктам
Работали в Вордовском документе "1.док"
При помощи моего скрипта на панели задач будет и тот же файл "1.док" и папка
Так вот когда откроется папка её вседа мне показывает как Эскизы страниц
А если файлов напимер 50, то лучше бы показывало Вид > Таблица
Это уже не из Ворда, а из области - открыли папку, правой кнопкой миши нажали мишь, там есть Вид, это ОС
в Вид есть:
Эскизы страниц
Плитка
Значки
Список
Таблица

Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 19-12-2010 11:11 » 

По-моему это в раздел Windows, а не Visual Basic.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Ципихович Эндрю
Помогающий

ru
Offline Offline

« Ответ #2 : 19-12-2010 15:18 » 

но это надо сделать на языке ВБА
Записан
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #3 : 20-12-2010 05:40 » 

так настройте в самой винде вид папки "таблица" и при открытияя она будет открываться как надо
Записан

I Have Nine Lives You Have One Only
THINK!
Ципихович Эндрю
Помогающий

ru
Offline Offline

« Ответ #4 : 20-12-2010 06:34 » 

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

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 20-12-2010 07:52 » 

Ципихович Эндрю, а откуда вообще возникла задача из VBA для Office управлять Explorer, который к Office отношения не имеет? Кто это придумал?

Я не знаю, есть ли COM-объект программной работы с Explorer.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Ципихович Эндрю
Помогающий

ru
Offline Offline

« Ответ #6 : 20-12-2010 08:45 » 

Explorer это же не IE, а просто  Explorer, то есть показать, отобразить
В представленном мною скрипте
Поясню по пунктам
Работали в Вордовском документе "1.док"
При помощи моего скрипта на панели задач будет и тот же файл "1.док" и папка D:\Рабочая папка\Пользователь
А если делать по другому то на панели задач будет что-то одно
Записан
baldr
Команда клуба

cy
Offline Offline
Пол: Мужской
Дорогие россияне


WWW
« Ответ #7 : 20-12-2010 10:11 » 

Explorer это же не IE, а просто  Explorer, то есть показать, отобразить
В представленном мною скрипте
Поясню по пунктам
Работали в Вордовском документе "1.док"
При помощи моего скрипта на панели задач будет и тот же файл "1.док" и папка D:\Рабочая папка\Пользователь
А если делать по другому то на панели задач будет что-то одно

Ципихович Эндрю, каждое твое сообщение я пытаюсь прочитать как минимум 4 раза чтоб понять смысл того, что ты хотел сказать.
Мало того что ты допускаешь опечатки, которые еще больше затрудняют понимание, так ты еще и совершенно не умеешь форматировать текст. Переносы и обрыв фразы в совершенно неожиданных местах, отсутствие пунктуации....
Научись сначала формулировать мысль, после этого перенеси мысль в предметную область - объясни ЧТО ты хочешь сделать.. После написания сообщения ПРОЧИТАЙ его сам (первые несколько раз пусть лучше это делает кто-нибудь другой, чтоб отфильтровать неадекват)!

Я извиняюсь за резкий ответ, но уже не могу больше читать бред этого юзера..
Записан

Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
Sla
Команда клуба

ua
Online Online
Пол: Мужской

WWW
« Ответ #8 : 20-12-2010 10:16 » 

ну, пацаны, ну тупЫЫЫе... (с)

чел хочет открыть окно выбора файла не в режиме Эскиза, а в режиме  Таблица.

Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
baldr
Команда клуба

cy
Offline Offline
Пол: Мужской
Дорогие россияне


WWW
« Ответ #9 : 20-12-2010 10:20 » 

Sla, это из области Миши..
Это уже не из Ворда, а из области - открыли папку, правой кнопкой миши нажали мишь, там есть Вид, это ОС
Записан

Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
Ципихович Эндрю
Помогающий

ru
Offline Offline

« Ответ #10 : 20-12-2010 10:42 » 

после представлнного мною в самом вопросе Вашему взору скрипта откроется папка с содержимыми в ней файлами и папками
Она может открыться как:
Эскизы страниц
Плитка
Значки
Список
Таблица
Файлы или папки могут в этой папке быть отсортированы по:
Имя
Размер
Тип
Изменён
Так мне надо прогой вносить изменения по своему усмотрению как показывать файлы и папки и как их сортировать
Помоему понятно, ОК??

Добавлено через 6 минут и 24 секунды:
Обращаюсь к baldr, Начальник отдела
В другом месте с первого раза поняли, пытаюсь следовать их рекомендациям, теперь понятно, подскажите???

http://wordexpert.ru/forum/viewtopic.php?id=604
« Последнее редактирование: 20-12-2010 10:48 от Ципихович Эндрю » Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #11 : 20-12-2010 10:55 » 

Цитата: Sla
чел хочет открыть окно выбора файла не в режиме Эскиза, а в режиме  Таблица.
Ах вон оно что... Всё равно не знаю Улыбаюсь
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Ципихович Эндрю
Помогающий

ru
Offline Offline

« Ответ #12 : 20-12-2010 14:36 » 

Код:
Dim myWord As Word.Application
Set myWord = New Word.Application 'объявляем объект с именем ...
Call Shell("explorer D:\Рабочая папка\Пользователь\", vbNormalFocus) 'открыть папку с именем ...
Set myWord = Nothing
Dim winShell As Object
    Dim w As Object
   
    Set winShell = CreateObject("Shell.Application").Windows
    For Each w In winShell
        о = w.LocationURL
        If w.LocationURL Like "file:///D:/Рабочая*" Then CallByName w.Document, "CurrentViewMode", VbLet, 3: Exit For
   Next

осталось два вопроса
1.
как чтобы отказаться от Like с
'"file:///D:/Рабочая%20папка/Пользователь"
переделать в
"D:\Рабочая папка\Пользователь\"
2.
сделать Вид > Таблица сделали!!!!!!
Как сделать Упорядочить значки > Изменён??
Там ещё могут быть в Упорядочить значки:
Имя
Размер
Тип
Изменён

Добавлено через 1 минуту и 45 секунд:
'FVM_ICON = 1
'FVM_SMALLICON = 2
'FVM_LIST = 3
'FVM_DETAILS = 4
'FVM_THUMBNAIL = 5
'FVM_TILE = 6
'FVM_THUMBSTRIP = 7
'FVM_CONTENT = 8
« Последнее редактирование: 20-12-2010 14:38 от Ципихович Эндрю » Записан
Sla
Команда клуба

ua
Online Online
Пол: Мужской

WWW
« Ответ #13 : 20-12-2010 14:39 » 

Ё!!! так продолжай дальше исследовать  объект
"Shell.Application".Windows
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Ципихович Эндрю
Помогающий

ru
Offline Offline

« Ответ #14 : 20-12-2010 15:39 » 

копал, что то не вкурю, подскажите?
1. вопрос с предыдущего моего поста решил так, на мой взгляд не красиво, но всё же
Код:
И = Replace$("D:\Рабочая папка\Пользователь\", "\", "/")
И1 = Replace$(И, " ", "%20")
Папка = "file:///" & Left$(И1, (Len(И1) - 1))

Есть лучше вариант??

остался один вопрос

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

Добавлено через 1 день, 22 часа, 38 минут и 48 секунд:
вот это поворот, я то думал, что
в строке
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

Что не так?Не понялНе понял

Добавлено через 1 день, 18 часов, 54 минуты и 40 секунд:
Ещё проблемы!!!, вот скрипт

Код:
Dim myWord As Word.Application
Set myWord = New Word.Application 'объявляем объект с именем ...
Папка = "D:\Рабочая папка\Пользователь\" 'открываем папку с именем ...
Call Shell("explorer " & Папка, 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 MsgBox "Зашло в условие": CallByName w.Document, "CurrentViewMode", VbLet, 2: Exit For
   Next
Проверял, когда VbLet, 1 и VbLet, 2
на строке
If w.LocationURL = Папка Then MsgBox "Зашло в условие": CallByName w.Document, "CurrentViewMode", VbLet, 1: Exit For
ошибка
Рун Тайм Эррор -2147417848(80010108)
Automation error Вызванный объект был отключён от клиентов


И самое главное эта ошибка бывает не всегда, иногда её нет и иногда не заходит в последнее условие, так как не показывает
MsgBox "Зашло в условие", специально его поставил!!!!!
« Последнее редактирование: 22-12-2010 14:17 от Ципихович Эндрю » Записан
baldr
Команда клуба

cy
Offline Offline
Пол: Мужской
Дорогие россияне


WWW
« Ответ #15 : 22-12-2010 14:24 » 

Ципихович Эндрю, на мой взгляд, тут два возможных варианта:
* из-за того, что при переборе всех открытых окон ты создаешь новые окна с помощью MsgBox() - функция перебора каким-то образом инвалидирует коллекцию, поскольку она изменилась.
* боее вероятный вариант - ты "слишком долго" держишь открытым этот MsgBox - по таймауту объект успевает уничтожиться.

В любом случае рекомендую убрать MsgBox
Записан

Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
Ципихович Эндрю
Помогающий

ru
Offline Offline

« Ответ #16 : 22-12-2010 15:09 » 

Согласен, MsgBox убрал, работает без ошибок, но где Эскизы страниц, Плитка, тут одни повторения
'FVM_ICON = 1 значки
'FVM_SMALLICON = 2 значки
'FVM_LIST = 3 список
'FVM_DETAILS = 4 таблица
'FVM_THUMBNAIL = 5 таблица
'FVM_TILE = 6 таблица
'FVM_THUMBSTRIP = 7 таблица
'FVM_CONTENT = 8 таблица

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

Добавлено через 25 минут и 29 секунд:
Я понимаю, что Вам это не интересно проверять, но я 4 раза проверил лично, каждый раз менял
в строке CallByName w.Document, "CurrentViewMode", VbLet, 2
последнюю цифру и записывал на лист, какая константа как открывает папку, один раз записал так:
'FVM_ICON = 1 значки
'FVM_SMALLICON = 2 значки
'FVM_LIST = 3 список
'FVM_DETAILS = 4 таблица
'FVM_THUMBNAIL = 5 таблица
'FVM_TILE = 6 таблица
'FVM_THUMBSTRIP = 7 таблица
'FVM_CONTENT = 8 таблица
Без задней мысли второй раз проверил, всё уже по другому в том числе и появились
Эскизы страниц, Плитка, Просмотр диафильмов
А потом рискнул написать 9 и 10, ошибок не было, каждый раз открывало в каком то из режимов, где можно точно узнать об этом всём??
Можно ли и как папку сначала открывать невидимой, узнать открыв папку в каком она режиме просмотра открыта, изменить её до нужного и затем сделать видимой?Не понял
« Последнее редактирование: 22-12-2010 15:35 от Ципихович Эндрю » Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #17 : 22-12-2010 18:39 » 

Ципихович Эндрю, http://msdn.microsoft.com/en-us/library/bb762510(VS.85).aspx
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Ципихович Эндрю
Помогающий

ru
Offline Offline

« Ответ #18 : 23-12-2010 08:28 » 

Спасибо
Пишут всё гладко, начнёш пробовать, нифига не так!!!!
'http://msdn.microsoft.com/en-us/library/bb762510(VS.85).aspx
'FOLDERVIEWMODE Enumeration
'Просмотр папок MODE Перечисление

'FVM_AUTO = -1, Открыть должна определить лучший вариант
'FVM_FIRST = 1, Минимальная постоянная величина в FOLDERVIEWMODE, для целей проверки
'FVM_ICON = 1, Открыть должны проявить средних икон
'FVM_SMALLICON = 2, Открыть должны отображать маленькие иконки
'FVM_LIST = 3, Имена объектов отображаются в виде списка
'FVM_DETAILS = 4, Имена объектов и других отдельных информацию, такую как размер и дата 'последнего обновления, показаны
'FVM_THUMBNAI = 5, Вид должен пиктограммой икон
'FVM_TILE = 6, Должны отображать большие иконки
'FVM_THUMBSTRIP = 7, Должны отображать иконки в виде киноленты формате
'FVM_CONTENT = 8, Windows 7 и более поздних ОС, должны отображать содержимое режиме
'FVM_LAST = 8, Максимальная постоянная величина в FOLDERVIEWMODE, для целей проверки

Вот эта константа
'FVM_AUTO = -1, Открыть должна определить лучший вариант
Да чёрта с два наши мнения совпадут!!!!!

Код:
Dim Папка As String
Папка = "D:\Рабочая папка\Пользователь\"
'открыть папку с именем ..., её фокус Normal, окрыть невидимой
Call Shell("explorer " & Папка, vbHide)
'А как будет скрипт далее, чтобы создать объект, эту папку
'и её потом проверить сделав её Визибле = Труе, сделать ей NormalFocus,
'И как условием узнать, в каком же виде она открыта???
'Спасибо

Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #19 : 23-12-2010 11:26 » 

Цитата: Ципихович Эндрю
Да чёрта с два наши мнения совпадут!!!!!
Ну и не пользуйся AUTO.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Ципихович Эндрю
Помогающий

ru
Offline Offline

« Ответ #20 : 23-12-2010 11:47 » 

Я Вам о чём говорю.
Пишут всё гладко: http://msdn.microsoft.com/en-us/library/bb762510(VS.85).aspx
Начнёш пробовать, нифига не так!!!!
все посты до этого были с машины с ХР и Ворд2003, пошёл к знакомому, у него всё фирмовое, Виста, Ворд2007, что имею -1 нет ошибки, с 1 по 9 всё время Вид Плитка



Добавлено через 5 часов, 24 минуты и 2 секунды:
На сегодняшинй день 611 просмотров, с ума сойти, что смотрят, что интересного???
Ну тогда скажите, у кого нибудь, также происходит описанное мною?Не понял
Илии у всех всё в шоколаде
Я говорю, об этом:

Я понимаю, что Вам это не интересно проверять, но я 4 раза проверил лично, каждый раз менял
в строке CallByName w.Document, "CurrentViewMode", VbLet, 2
последнюю цифру и записывал на лист, какая константа как открывает папку, один раз записал так:
'FVM_ICON = 1 значки
'FVM_SMALLICON = 2 значки
'FVM_LIST = 3 список
'FVM_DETAILS = 4 таблица
'FVM_THUMBNAIL = 5 таблица
'FVM_TILE = 6 таблица
'FVM_THUMBSTRIP = 7 таблица
'FVM_CONTENT = 8 таблица
Без задней мысли второй раз проверил, всё уже по другому в том числе и появились
Эскизы страниц, Плитка, Просмотр диафильмов
« Последнее редактирование: 23-12-2010 17:11 от Ципихович Эндрю » Записан
Sla
Команда клуба

ua
Online Online
Пол: Мужской

WWW
« Ответ #21 : 23-12-2010 18:40 » 

Ципихович Эндрю, ничего интересного - все понятно.
Есть заветная кнопка F1
есть MSDN
Решать за кого-то ординарную задачу, при этом не пониая - ЗАЧЕМ, нет никакого желания.
Проще юзера обучить Улыбаюсь Потому что юзер сейчас продвинутый. А ориентироваться на бабушек-бухгалтеров - себе дороже.
imho
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Ципихович Эндрю
Помогающий

ru
Offline Offline

« Ответ #22 : 24-12-2010 00:42 » 

У Егорки на всё отговорки, 500 рублей, ОК??

Добавлено через 3 минуты и 1 секунду:
Кгда писал это:
На сегодняшинй день 611 просмотров, с ума сойти, что смотрят, что интересного???
Ну тогда скажите, у кого нибудь, также происходит описанное мною??

Было 611 просмотров, уже 671, то есть плюс 60, и никто ответить не может, завораживает топик что-ли???
« Последнее редактирование: 24-12-2010 00:45 от Ципихович Эндрю » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #23 : 24-12-2010 04:31 » 

Ципихович Эндрю, есть такая кнопочка вверху каждой страницы - https://forum.shelek.ru/index.php?action=unread (Показать новые сообщения с Вашего последнего визита. )

А модераторы смотрят всё, что появляется на форуме
Записан

Ципихович Эндрю
Помогающий

ru
Offline Offline

« Ответ #24 : 24-12-2010 05:55 » 

Не ужели я Вас спрашивал: Как Посмотреть новые сообщения с Вашего последнего визита
Вроде нет!!!!!
Я говорю, о том, кто ещё смотрел 60 человек могут оветить на вопрос .... № 24
А Вы мне отвечаете, не расстраивайся это я модератор смотрел 60 раз, так???
Если да, то респект!!!!!!!
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #25 : 24-12-2010 06:19 » 

Ципихович Эндрю, ты спрашивал, откуда столько просмотров. Я тебе и рассказал, откуда. И я тут не один модератор, тут нас много )

И я отлично понимаю, что работа у тебя сложная, начальство давит, всё такое. Но тут тоже люди, у них тоже работа и нехватка времени. Не надо их подгонять, да ещё так эмоционально!
« Последнее редактирование: 24-12-2010 06:21 от Алексей1153++ » Записан

Ципихович Эндрю
Помогающий

ru
Offline Offline

« Ответ #26 : 24-12-2010 07:08 » 

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

 
Код:
Set objShell = CreateObject("Shell.Application")
   'если на кнопку вешаем этот код то на строке Path = "D:\Рабочая папка" получаем
   'Cant assign to read-only property
   'Не могу назначить свойство только для чтения Почему ???????????????????
   Path = "D:\Рабочая папка" 'наклонную в конце не ставить!!!!!!
   objShell.ShellExecute Path, , , , 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 = 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
Записан
baldr
Команда клуба

cy
Offline Offline
Пол: Мужской
Дорогие россияне


WWW
« Ответ #27 : 24-12-2010 07:17 » 

'Не могу назначить свойство только для чтения Почему Не понялНе понялНе понялНе понялНе понялНе понял?
Потому что ты нигде этого не делаешь.
Какому объекту ты хочешь поставить флаг "только для чтения"?
Записан

Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
Ципихович Эндрю
Помогающий

ru
Offline Offline

« Ответ #28 : 24-12-2010 07:27 » 

>Какому объекту ты хочешь поставить флаг "только для чтения"?
да ничего я не хочу просто в макросе то работает!!!! без ошибки, на кнопку вешаешь не работает
Скажите как исправить?Не понял


Добавлено через 29 минут и 5 секунд:
Это понял
Не должно быть Path - это только переменная же
Осталось выяснить как открывать по усмотреню папку
Global Const SW_SHOWNORMAL = 1 'сделать окно в режиме нормальный
Global Const SW_SHOWMINIMIZED = 2 'свернуть окно
Global Const SW_MAXIMIZE = 3 'сделать окно во весь экран
Как это сделать?? 
« Последнее редактирование: 24-12-2010 07:57 от Ципихович Эндрю » Записан
baldr
Команда клуба

cy
Offline Offline
Пол: Мужской
Дорогие россияне


WWW
« Ответ #29 : 24-12-2010 08:35 » 

Ципихович Эндрю,
http://www.script-coding.com/WSH/Shell.html#3.26.
Записан

Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
Ципихович Эндрю
Помогающий

ru
Offline Offline

« Ответ #30 : 24-12-2010 10:58 » 

мне известны константы окон, так они вроде для файлов???
0 - скрытое окно.
1 - нормальное окно.
2 - минимизированное окно.
3 - максимизированное окно.
4 - запустить приложение с окном в том состоянии, в котором оно было последний раз. Текущее активное окно останется активным.
5 - запустить приложение с окном в текущем состоянии.
7 - минимизированное окно. Текущее активное окно останется активным.
10 - состояние окна по умолчанию для приложения

Если предположить что для папок, тогда не понятно, я же её сначала открываю папку скрытой
objShell.ShellExecute Папка, , , , 0
Это мне так и надо, затем меняю Вид просмотра и делаю видимой
А как её снова сделать во весь экран не пойму. Подскажите пожалуйста


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


по ссылке http://files.mail.ru/ODI7A9
Там Вордовский файл с кнопкой будет открывать папку С. В нутро кнопки если залезть можно менять Виды просмотра и размеры окна, но удовлетворения нет, глючное оно всё же, как и IE.
То ли дело строки программировать, вычесть, добавить без ошибок всегда
« Последнее редактирование: 24-12-2010 12:22 от Ципихович Эндрю » Записан
baldr
Команда клуба

cy
Offline Offline
Пол: Мужской
Дорогие россияне


WWW
« Ответ #31 : 24-12-2010 12:23 » 

Блин.. Ну почему тебе лень почитать документацию? Ты хочешь чтоб за тебя все сделали, а ты только задачи будешь ставить? Тебе уже столько ссылок кинули, последняя - вообще золотая.. Там же даже по-русски написано!
Смотрим сюда: http://www.script-coding.com/WSH/Shell.html#7.3.1.
Цитата
Назначение: получение объекта WebBrowser. Возвращает объект WebBrowser.
Отлично, теперь смотрим объект WebBrowser: http://www.script-coding.com/WSH/WebBrowser.html
Цитата
2. Свойства
...
Visible - Управляет видимостью окна обозревателя (булево). Чтение и запись. По умолчанию - False.
...
FullScreen - Управляет отображением окна обозревателя в полный экран (булево). Чтение и запись. По умолчанию - False.

Так понятнее? Или еще разжевать?
Записан

Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
Ципихович Эндрю
Помогающий

ru
Offline Offline

« Ответ #32 : 24-12-2010 14:37 » 

Мне не лень прочитать документацию, просто я кое что не понимаю, ну прочёл я
Item(<Индекс>)
Назначение: получение объекта WebBrowser. Возвращает объект WebBrowser.
Параметры:
<Индекс> - необязательный. Индекс в коллекции окон (отсчёт - с нуля). По умолчанию - 0.
Описание: метод возвращает объект того же типа, что и оператор CreateObject("InternetExplorer.Application") или CreateObject("Shell.Explorer").
Пример:
'Закрытие всех окон Explorer'а
Не пойму зачем мне Explorer, возможно я его путаю с IE
Если можно еще разжевать



Добавлено через 1 день, 2 часа, 23 минуты и 32 секунды:
уже 915 просмотров,сума сойти!!!!!!! Все так хотят папки открывать?
Сообщаю, проблема решена!!!!
Вот её решение Sleep 50 'нужна задержка, так как окно не успевает создаться
Спасибо всем, кто помогал!!!!!!!!!!!
Осталось одно, помогите кто знает:
как ещё по усмотрению программировать опцию Упорядочить значки при просмотре папки, имеется ввиду например по Размеру?Не понял?
Всего там можно сортироать, по арайей мерев ХР по
Имя
Размер
Тип
Изменён
Даже не знаю с чего начинать?Не понял
Заранее спасибо 

Код:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Const SW_SHOWNORMAL = 1 'сделать окно в режиме нормальный
Const SW_SHOWMINIMIZED = 2 'свернуть окно
Const SW_MAXIMIZE = 3 'сделать окно во весь экран
'___________________________________________________________________________
Private Sub CommandButton1_Click()

   Dim Папка As String
   Set objShell = CreateObject("Shell.Application")
   Папка = "D:\Рабочая папка\Нужное" 'не нужно в конце места нахождения папки ставить наклонную
   objShell.ShellExecute Папка & "\", , , , 0 'последняя цифра означает: 0 - скрытое окно
   Sleep 50 'нужна задержка, так как окно не успевает создаться
   For Each w In objShell.Windows
       If InStr(TypeName(w.Document), "ShellFolderView") > 0 Then
          If w.Document.Folder.self.Path = Папка Then
             w.Document.CurrentViewMode = 4
'последняя цифра означает:
'Значки 1
'Значки 2
'Список 3
'Таблица 4
'Эскизы страниц 5
'Плитка 6
'Просмотр диафильмов 7
'Значки 8
          ShowWindow w.hwnd, 3
'SW_SHOWNORMAL = 1 'сделать окно в режиме нормальный
'SW_SHOWMINIMIZED = 2 'свернуть окно
'SW_MAXIMIZE = 3 'сделать окно во весь экран
               Exit For
           End If
       End If
   Next
   Set objShell = Nothing

End Sub
« Последнее редактирование: 25-12-2010 17:00 от Ципихович Эндрю » Записан
baldr
Команда клуба

cy
Offline Offline
Пол: Мужской
Дорогие россияне


WWW
« Ответ #33 : 27-12-2010 07:49 » 

Ципихович Эндрю, окна Windows Explorer и Internet Explorer реализуют общий интерфейс и имеют многие одинаковые свойства и методы. Поэтому для работы с окном Explorer ты можешь использовать методы из IE. То есть объект WebBrowser из WSH тебе вполне подойдет.

Ты так и не объяснил зачем тебе нужно так извращаться - работать из Word VBA с окнами и WSH. Выглядит это так, будто кроме VBA ты не знаешь ничего и учиться не хочешь.
Ничего удивительного что тебе мало кто отвечает - все эти задачи решаются другими языками и другими способами.
Еще раз задам вопрос - зачем тебе это нужно и почему именно на VBA?
Записан

Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
Ципихович Эндрю
Помогающий

ru
Offline Offline

« Ответ #34 : 27-12-2010 14:02 » 

> Выглядит это так, будто кроме VBA ты не знаешь ничего
Действительно кроме этого языка я других не знаю
>Еще раз задам вопрос - зачем тебе это нужно и почему именно на VBA?
На вопрос почему именно на VBA? Ответ выше
На вопрос зачем тебе это нужно?
Отвечаю:
Есть в документе Ворд кнопка, её задача открыть папку Х
И не назвал бы я это "извращаться" по поводу того, что я хочу эту папку открыть и файлы при её просмотре были бы отсортированы, по моему усмотрению. Вы спросите, а что потом сам не можешь как надо сделать окно проводника, да могу, так и папку я сам могу открыть.
На мой взгляд если бы задача стояла открыть окно среднее между
SHOWNORMAL и MAXIMIZE, вот это уже извражщение, а то что у меня ранее не получалось решается одной строкой:
Sleep 50 'нужна задержка, так как окно не успевает создаться
Вы мне это подсказали?, нет.
По теме подскажите?
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #35 : 27-12-2010 15:33 » 

Ципихович Эндрю, "хочу эту папку открыть и файлы при её просмотре были бы отсортированы" - это не та задача, о которой спрашивают. Здесь нет предметной области. Предметная область - это описание самих файлов, а также профессиональных задач, которые решает пользователь при помощи этих файлов. Только из этого можно сделать вывод о необходимости сортировок и всего прочего, чем ты занимаешься.

Разработка пользовательских интерфейсов - это, видимо, тоже не та область, в которой ты разбираешься. Следовательно, есть серьёзное подозрение, что ты сложным способом и при помощи неподходящих средств пытаешься делать что-то, что решается гораздо проще и другими инструментами. А поскольку настрой у тебя сугубо прагматичный без элементов рефлексии своей деятельности - метод "грубой силы" - участвовать в этом как-то не хочется. По меньшей мере твой подход противоречит нашей профессиональной культуре, что ухудшает процесс общения.

Если бы ты проявлял любопытство к процессу программирования, тебе бы дали некоторые полезные советы по этой теме, в частности, что делаеть, если написанное в документации не вполне сочетается с тем, что экспериментально получает разработчик. Но нет у тебя интересов, кроме сортировки файлов по размеру в окошке, поэтому нет и разговора. Мы не будем тут ковыряться и давать тебе готовые решения твоей задачи (давать тебе рыбу) - у нас у каждого есть свои задачи. Но мы можем делиться своими методическими наработками (давать тебе удочку), однако ты об этом говорить не хочешь.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Ципихович Эндрю
Помогающий

ru
Offline Offline

« Ответ #36 : 27-12-2010 15:45 » 

пусть это и называется сделайте за меня, но насколько я понимаю то, что я прошу займёт максимум 5-6 строк кода, про удочку я согласен вещь хорошая, но увы "объект WebBrowser из WSH тебе вполне подойдет" мне мало

Добавлено через 34 секунды:
мало в смысле не понимаю, не обессудьте
« Последнее редактирование: 27-12-2010 15:45 от Ципихович Эндрю » Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #37 : 27-12-2010 18:18 » 

Цитата: Ципихович Эндрю
то, что я прошу займёт максимум 5-6 строк кода
"Настоящий программист пишет в день 1 строчку кода, зато какую!!!" (c) один мой знакомый

За этими 5-6 строчками следует необходимость выполнить всю прочую работу: полазать по справочникам, поэкспериментировать и т.д. Естественно, ни один программист (если он только что не решал сходных задач) не держит в голове всякие константы. С профессиональной точки зрения эта работа - нетворческая и не обогащает новыми знаниями, проектными находками и т.п. Когда-то в своём начале я тоже из-за любой мелочи, которая "не работает", теребил коллег и начальство - меня отучили от этого за неделю методом, известным как RTFM, в моём случае выражавшимся словами: "Читай MSDN!" Проверено - реально помогает. Улыбаюсь

Дело начинает идти на лад, когда начинаешь понимать, как всё это работает, какие части за что отвечают - причём не куски кода, а те элементы операционной системы или того же Word'а, которые за этими кусками кода стоят. Просто тасовать в коде буковки в надежде не нужный эффект - очень непродуктивное занятие. В твоём случае полезно проявить интерес к объектной структуре, чтобы не возникало вопросов насчёт того, Explorer это или IE, изучить программные интерфейсы всех задействованных объектов и понять логику, которой руководствовались их проектировщики, чтобы понять, как ими удобнее воспользоваться.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Ципихович Эндрю
Помогающий

ru
Offline Offline

« Ответ #38 : 30-12-2010 11:19 » 

объект WebBrowser из WSH, WSH это Windows Script Host???
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #39 : 30-12-2010 11:30 » 

Ципихович Эндрю, да
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Ципихович Эндрю
Помогающий

ru
Offline Offline

« Ответ #40 : 30-12-2010 11:35 » 

Нашёл, прочёл
Explore
Синтаксис:
Explore(<Path>)
Назначение:
Запуск проводника Windows с определённой открытой папкой. Возвращаемого значения нет.
Параметры:
<Path> - путь к открываемой папке. Тип - строка.
Описание:
<Path> может быть числом, определяющим одну из специальных папок Windows. Коды папок - см. описание метода "NameSpace".
Пример:
Set objShellApp = CreateObject("Shell.Application")
objShellApp.Explore("C:\")
Про сортировку файлов ничего нет
Записан
baldr
Команда клуба

cy
Offline Offline
Пол: Мужской
Дорогие россияне


WWW
« Ответ #41 : 30-12-2010 12:06 » 

Естественно. Потому что он не универсален. Если ты дальше захочешь, чтобы каждый второй файл выделялся зеленым цветом - он тебе тоже не поможет.
Потому что такие задачи решаются другими средствами и другими языками!
Записан

Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
Ципихович Эндрю
Помогающий

ru
Offline Offline

« Ответ #42 : 30-12-2010 12:56 » 

>Потому что такие задачи решаются другими средствами и другими языками!
И эта задача:  по усмотрению программировать опцию Упорядочить значки при просмотре папки, имеется ввиду например по Размеру
Тоже решается другими языками??? На ВБА не решить??

Добавлено через 1 день, 7 часов, 59 минут и 44 секунды:
ссылки  имею
на API:
http://blacksus.narod.ru/articles_1_1_7.html
И ещё на VB:
http://support.microsoft.com/kb/170884/ru
Но что то мудрёно, да ещё там на Дельфях, не ужели так сложно??
Если проще??, подскажите
« Последнее редактирование: 31-12-2010 20:56 от Ципихович Эндрю » Записан
Страниц: 1 2 [Все]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines