Помогите, кто знает!
TC не понимает библиотеки Windows 7
Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik
TC не понимает библиотеки Windows 7
Когда я создаю библиотеку Win 7 (virtual folder), проводник ее отлично понимает, но вот TC пытается открыть ее как файл с неизвестным расширением
Помогите, кто знает!
Помогите, кто знает!
Настроил значек с командой cm_OpenDesktop. На рабочем столе отображаются библиотеки и в них можно войти
Но моя цель создать библиотеку не в стандартном расположении библиотек - c:\Users\[My user]\AppData\Roaming\Microsoft\Windows\Libraries , а в произвольной директории и чтобы входить в нее можно было, как в проводнике - по Enter или DoubleClick
Но моя цель создать библиотеку не в стандартном расположении библиотек - c:\Users\[My user]\AppData\Roaming\Microsoft\Windows\Libraries , а в произвольной директории и чтобы входить в нее можно было, как в проводнике - по Enter или DoubleClick
Есть разные варианты, вплоть до того что вручную написать XML содержимое файла library-ms. Вот один из вариантов:
Добавить библиотеку в существующие, затем взять ее и скопировать или переместить из c:\Users\[My user]\AppData\Roaming\Microsoft\Windows\Libraries\[My library].library-ms
в необходимое место. После этого она распознается проводником как любая другая библиотека
Добавлено спустя 36 минут:
Вот еще как создавать библиотеки:
http://winreview.ru/Sekreti-Windows/808 ... yu-Sozdat-
Смотрим "Пример №2. Создаем библиотеки в любом месте файловой системы"
Добавить библиотеку в существующие, затем взять ее и скопировать или переместить из c:\Users\[My user]\AppData\Roaming\Microsoft\Windows\Libraries\[My library].library-ms
в необходимое место. После этого она распознается проводником как любая другая библиотека
Добавлено спустя 36 минут:
Вот еще как создавать библиотеки:
http://winreview.ru/Sekreti-Windows/808 ... yu-Sozdat-
Смотрим "Пример №2. Создаем библиотеки в любом месте файловой системы"
ales128
Ясно. Не знаю, как устроен механизм виртуальных папок TC, но сомневаюсь, что он обращается с библиотеками напрямую. Думаю, что Гислер просто не предусмотрел возможности работать с этими файлами непосредственно.
Подожди, возможно местные плагинописатели посодействуют. Или сразу иди на оф. форум с запросом.
Ясно. Не знаю, как устроен механизм виртуальных папок TC, но сомневаюсь, что он обращается с библиотеками напрямую. Думаю, что Гислер просто не предусмотрел возможности работать с этими файлами непосредственно.
Подожди, возможно местные плагинописатели посодействуют. Или сразу иди на оф. форум с запросом.
Случаем, уже не посодействовали?Rodny писал(а):возможно местные плагинописатели посодействуют
Сделал такое решение:
Задаю внутреннюю ассоциацию TC
*.library-ms -- d:\Library-ms.vbs
Содержимое файла d:\Library-ms.vbs:
По нажатию Enter на файле библиотеки открывается новый TC с нужной директорией
Код сырой, набросал лишь бы работало
Но идея стоящая
(себя не похвалишь - никто не похвалит)
Задаю внутреннюю ассоциацию TC
*.library-ms -- d:\Library-ms.vbs
Содержимое файла d:\Library-ms.vbs:
Код: Выделить всё
dim objArgs
dim arg1
Const ForReading = 1
Dim fso, f
dim pos1,pos2
dim dir
'===============
sub main
Set objArgs = WScript.Arguments ' Создаем объект WshArguments
For Each Arg In objArgs
s=s & Arg & " " ' Формируем строки со значениями аргументов
arg1=Arg
Next
if s="" then
msgbox("Ошибка аргумента")
exit sub
end if
on error resume next
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(s, ForReading)
TextFile = f.ReadAll
if err.number <> 0 then
msgbox("Ошибка чтения файла")
exit sub
end if
on error goto 0
pos1=instr(TextFile,"<url>")+len("<url>")
pos2=instr(TextFile,"</url>")
if pos2 >= pos1 then
dir=mid(TextFile,pos1,pos2-pos1)
Set WSHShell = CreateObject("WScript.Shell")
WSHShell.Run """C:\Program Files (x86)\totalcmd\TOTALCMD.EXE"" " & dir
rem msgbox(dir)
else
msgbox("Ошибка в файле библиотеки:" + TextFile)
exit sub
end if
end sub
'===============
Call MainКод сырой, набросал лишь бы работало
Но идея стоящая
ales128
Это не откроет стандартные библиотеки с GUID. Пробовал с соответствующими разделами в HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\ и TCShellTC - результат тот же.
поменять на
Это не откроет стандартные библиотеки с GUID. Пробовал с соответствующими разделами в HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\ и TCShellTC - результат тот же.
Зачем новый?ales128 писал(а):открывается новый TC
Код: Выделить всё
Set WSHShell = CreateObject("WScript.Shell")
WSHShell.Run """C:\Program Files (x86)\totalcmd\TOTALCMD.EXE"" " & dirКод: Выделить всё
CreateObject("WScript.Shell").Exec("%COMMANDER_PATH%\Totalcmd.exe /O /S /L=""" & dir & """")Так о нём то и шла речь. Не откроет.ales128 писал(а):или можно через путь
Лично мне от скрипта хватило:
Код: Выделить всё
' Открыть файл library-ms
' Во внутренних ассоциациях TC назначить скрипт с аргументом "%1" на *.library-ms
'===========================================================
F = CreateObject("Scripting.FileSystemObject").OpenTextFile(WScript.Arguments(0), 1).ReadAll
pos1 = InStr(F,"<url>")+len("<url>")
pos2 = InStr(F,"</url>")
if pos2 >= pos1 Then Dir = mid(F,pos1,pos2-pos1)
CreateObject("WScript.Shell").Exec"%COMMANDER_PATH%\Totalcmd.exe /O /S /L=""" & Dir & """"
Последний раз редактировалось Flasher Пн июл 18, 2011 03:05, всего редактировалось 1 раз.
В этом случае нужно лезть в реестр и выковыривать оттуда правильный путь, на который указывает библиотека
Еще проблема в том, что в теге <URL> путь к папкам для глаз человека и он не гарантированно совпадет с путем в теге <serialized>, в котором закодирован "истинный" путь
Самое правильное - через IShellLibrary API, но это уже не через VBScript
Еще проблема в том, что в теге <URL> путь к папкам для глаз человека и он не гарантированно совпадет с путем в теге <serialized>, в котором закодирован "истинный" путь
Самое правильное - через IShellLibrary API, но это уже не через VBScript