|   |   | 
| 
 | v7: Открыть папку с заданным видом | ☑ | ||
|---|---|---|---|---|
| 0
    
        Дядя Васька 13.02.12✎ 23:54 | 
        Обычное открытие папки проводником. Программно. В данном случае из семерки, но не суть. Само по себе дело нехитрое, но имею бзик открывать с настройкой вида "обычные значки". Если правильно понял в реестре эта фигня для них по GUID хранится, мудрено так искать. Есть какой-то простой вариант?     | |||
| 1
    
        smartu 14.02.12✎ 00:05 | 
        Настроил вид папки - Сервис / Параметры папок / Вид / Применить к папкам     | |||
| 2
    
        Дядя Васька 14.02.12✎ 00:10 | 
        (1) Это уже пользовательские. Я папку из 1С открываю. В папке преимущественно картинки, потому независимо от предпочтений пользователя в данном конкретном случае удобнее ее открывать с предпросмотром. Хотел у себя в модуле реализовать. Что там пользователь для себя в проводнике настраивает меня не интересует.     | |||
| 3
    
        Господин ПЖ 14.02.12✎ 00:17 | 
        (0) уличной магией     | |||
| 4
    
        Дядя Васька 14.02.12✎ 00:22 | 
        (3) Да не хотелось бы... Оно конечно возможно, просто они там в таком виде хранятся, типа HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders\ComDlg\{5c4f28b5-f869-4e84-8e60-f11db97c5cc7}, помимо основных там еще куча веток под номерами в которых тот или иной GUID. 
  http://qwers.com/Poleznie-soveti-dlja-Windows7/Reestr/reenasint26.htm В общем как-то его выяснить для нужной папки и потом в реестре раскопать оно конечно можно, да уж больно муторно. Если нет простого способа вроде запуска explorer.exe с параметрами (конкретно с ним не прокатило), то и не буду парится наверное. Просто может знает кто что-то подобное, чтоб без извратов. | |||
| 5
    
        NS 14.02.12✎ 00:23 | 
        В кратце -
  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 http://wordexpert.ru/forum/viewtopic.php?id=604 | |||
| 6
    
        Дядя Васька 14.02.12✎ 00:25 | 
        (5) Во! За это респектище. Sleep правда немного смущает, но главное сама суть.     | |||
| 7
    
        NS 14.02.12✎ 00:26 | 
        (6) Как Слип в семерке правильный делать знаешь?     | |||
| 8
    
        Дядя Васька 14.02.12✎ 00:27 | 
        (7) Мульон способов. Интереснее придумать как его тут не делать конечно :)     | |||
| 9
    
        Господин ПЖ 14.02.12✎ 00:28 | 
        (7) самое верное - циклом...     | |||
| 10
    
        Дядя Васька 14.02.12✎ 00:28 | 
        (8) Последний раз кажись вообще на сях реализовал, критично было количество мс. Пингами конечно не то.     | |||
| 11
    
        NS 14.02.12✎ 00:30 | 
        (9) нормальный слип - без загрузки проца и всяких изватов типа "предупреждение(,)"     | |||
| 12
    
        Дядя Васька 14.02.12✎ 00:30 | 
        В смысле сам-то слип по-любому нужен, но не мешало бы еще проверить, хватило его или нет, ну и зациклить это дело.     | |||
| 13
    
        NS 14.02.12✎ 00:31 | 
        (12) Можно заклить, пока в w.Document не появится папка.
  Без слипа. | |||
| 14
    
        NS 14.02.12✎ 00:32 | 
        зациклить.     | |||
| 15
    
        Дядя Васька 14.02.12✎ 00:35 | 
        (13) Без слипа не гут, долго появляться будет из-за цикла-то. Сразу же 100%-ная загрузка проца же будет.     | |||
| 16
    
        NS 14.02.12✎ 00:36 | 
        (15) в принципе - да.     | |||
| 17
    
        Дядя Васька 14.02.12✎ 00:44 | 
        Скриптом последний раз делал, на сях там что-то другое все же было:
  Процедура СоздатьСкриптSleep() ИмяПутьСкрипта = КаталогИБ()+"ExtForms\sleep.js"; Скрипт = СоздатьОбъект("Текст"); Скрипт.ДобавитьСтроку("WScript.Sleep(500);"); Скрипт.Записать(ИмяПутьСкрипта); КонецПроцедуры Процедура sleep() Экспорт ИмяПутьСкрипта = """"+КаталогИБ()+"ExtForms\sleep.js"""; cmdLine="wscript.exe "+ИмяПутьСкрипта; WshShell = СоздатьОбъект("WScript.Shell"); WshShell.Run(cmdLine, 0, -1); КонецПроцедуры | |||
| 18
    
        NS 14.02.12✎ 00:46 | 
        Угу, я примерно так-же делаю.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |