Имя: Пароль:
1C
1C 7.7
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
Угу, я примерно так-же делаю.