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

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

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 » new

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

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

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

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

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