PDA

Показать полную графическую версию : [решено] Функция "Расположение файла" в Windows XP


vvc-49
18-05-2011, 00:15
В Windows 7, когда кликаем правой кнопкой мыши по ярлыку, в контекстном меню можно увидеть пункт "Расположение файла", которая ведет к папке, содержащей исходный файл.
Как такое, реализовать в ХР?
[HKEY_CLASSES_ROOT\*\shell]

[HKEY_CLASSES_ROOT\*\shell\File Location]
@="Расположение ф&айла"

[HKEY_CLASSES_ROOT\*\shell\File Location\command]
@="\"explorer.exe\" /select,\"%1\""
Не помогло.

K.A.V.
18-05-2011, 00:47
Вот готовый REG-файл (распакуйте и запустите), появится пункт "Расположение файла"

vvc-49
18-05-2011, 01:10
Вот готовый REG-файл »
То же не помог, пункт "Расположение файла", появляется, но не корректен, т. е.
файл ХХХ, находится на диске J:\1, а ярлык(Ярлык для XXX.txt) на Рабочем Столе(E:\Рабочий Стол XP) следую пункта "Расположение файла", попадаю на E:\Рабочий Стол XP, на ярлык, но не на папку с файлом.

K.A.V.
18-05-2011, 01:17
Ну а почему у меня работает? Может вы нажимаете на ярлык ярлыка? :)

vvc-49
18-05-2011, 01:31
Может вы нажимаете на ярлык ярлыка? »
Не понял, жму, как и в W7, на ярлык файла - Расположение файла и....
Если в свойствах ярлыка - жму кн. Найти объект, все четко.

Все, нашел, не работает, потому, что у меня удалены стрелки с ярлыков, поставил стрелки, все ОК, но не нравятся, стрелки...

ВладимирВ.
08-08-2011, 02:38
Спасибо, только не на всех ярлыках работает. Например на ярлыках Сетевые подключения, не работает.

Iska
08-08-2011, 04:31
ВладимирВ., там ярлыки организованы иначе, нежели «обычные» ярлыки на объекты файловой системы.

VetalGold
18-01-2012, 17:27
Расположение файла появилось не только на ярлыках, а на всех файлах.
Как сделать чтобы только на ярлыках?

Petya V4sechkin
18-01-2012, 17:58
Как сделать чтобы только на ярлыках?
Так (http://forum.oszone.net/post-1718947.html#post1718947)

VetalGold
19-01-2012, 05:04
Petya V4sechkin Спасибо тебе большое!

BolgarchukR
27-12-2015, 23:05
как я понял надо для данного скрипа Visual Basic ставить. А какую версию? или без разницы? Я в этом не сильно разбираюсь не охота загаживать систему. У меня и так все работает без всяких бейсиков яв питонов, ну правда нет фтенворк поставил а директ х даже не ставил. Прийдется ради одной минюшки ставить этот бейсик да? ((
Я вот сделал https://yadi.sk/d/uh7l_j_lmXcp9 пункт добавился но пишет "не удалось найти файл сценария" хотя путь вроде правильный C:\vbs_BolgarchukR\context_menu
Может кто кинет рабочий скрипт?
п.с. поменял путь кинул туда же в систем 32 заработало. Но все равно не понятно что в пути нельзя указывать нижнее подчеркивание? Будет ли работать в др. папках? Не охота кидать в систем 32 там и так куча всего...

Iska
28-12-2015, 00:40
как я понял надо для данного скрипа Visual Basic ставить. »
Если речь про этот скрипт (http://forum.oszone.net/post-1718947.html#post1718947) — нет, ничего «ставить» не надо, всё уже есть в комплекте, если только Вы не работаете на Windows NT 4.0/Windows 98 и ниже.

Я вот сделал »
Выложите код непосредственно на форум, обрамив его тэгом «code».

пишет "не удалось найти файл сценария" »
Приложите скриншот окна (Alt-PrintScreen) или текст окна сообщения (Ctr-C).

BolgarchukR
30-12-2015, 23:16
Короче надоело, уже и не знаю что и думать впрочем ну его (((
Вот это рабочий рег файл
REGEDIT4

[HKEY_CLASSES_ROOT\lnkfile\shell\FindTarget]
@="&Найти объект"
[HKEY_CLASSES_ROOT\lnkfile\shell\FindTarget\command]
@="C:\\WINDOWS\\System32\\WScript.exe \"C:\\vbsBolgarchukR\\FindTarget.js\" \"%1\""

А вот этот почему то не рабочий
REGEDIT4

[HKEY_CLASSES_ROOT\lnkfile\shell\FindTarget]
@="&Найти объект"
[HKEY_CLASSES_ROOT\lnkfile\shell\FindTarget\command]
@="C:\\WINDOWS\\System32\\WScript.exe \"С:\\vbsBolgarchukR\\FindTarget.js\" \"%1\""
Хотя они как мне кажется идентичны. Может имеет значения с какой папки его запускать ... Или даже не знаю...

ну и FindTarget.js
// FindTarget.js
// аргумент - путь к lnk-ярлыку
try {
OpenParentFolderAndSelectItem(
GetFolderItemByFilePath(WScript.Arguments.Item(0)).GetLink.Target,
1|4|8|16
);
} catch (Err) {};

function GetFolderItemByFilePath(Path) {
var FSO=new ActiveXObject("Scripting.FileSystemObject");
return (
new ActiveXObject("Shell.Application")).
NameSpace(FSO.GetParentFolderName(Path)).ParseName(FSO.GetFileName(Path));
}

function OpenParentFolderAndSelectItem(FolderItem, Flags) {
var
Shell=FolderItem.Application,
ShellWindows=Shell.Windows(),
ParentFolder=FolderItem.Parent,
Err;
Shell.Open(ParentFolder);
for (var t=50; --t>=0; WScript.Sleep(50))
try {
var FolderView=ShellWindows.Item().Document;
if (FoldersAreEqual(ParentFolder, FolderView.Folder)) {
FolderView.SelectItem(FolderItem, Flags);
return;
}
} catch (Err) {}
}

function FoldersAreEqual(Folder1, Folder2) {
while (Folder1!=Folder2) {
if (Folder1==null || Folder2==null || Folder1.Self.Path!=Folder2.Self.Path)
return false;
Folder1=Folder1.ParentFolder; Folder2=Folder2.ParentFolder;
}
return true;
}

по пути C:\vbsBolgarchukR
хотя я думал в этой папке сделать еще папку context_menu но все другое не работает. Только первый рег рабочий именно с тем путем остальные как не крути как не меняй не пашут.
Выдает
https://img-fotki.yandex.ru/get/9170/10425752.3/0_ed1c2_598303ce_orig.png (https://fotki.yandex.ru/next/users/vagus/album/221273/view/971202)
2015-12-30 22_06_34-ProbnaXpFren3 - VMware Workstation.png
]https://img-fotki.yandex.ru/get/9170/10425752.3/0_ed1c2_598303ce_orig.png

Iska
30-12-2015, 23:38
А вот этот почему то не рабочий
REGEDIT4
[HKEY_CLASSES_ROOT\lnkfile\shell\FindTarget]
@="&Найти объект"
[HKEY_CLASSES_ROOT\lnkfile\shell\FindTarget\command]
@="C:\\WINDOWS\\System32\\WScript.exe \"С:\\vbsBolgarchukR\\FindTarget.js\" \"%1\""
Хотя они как мне кажется идентичны. Может имеет значения с какой папки его запускать ... »
Угу. Имеет смысл запускать из существующей папки. У Вас же во втором случае в «\"С:\\vbsBolgarchukR…» вместо латинской «C» русская «С». Потому и не удаётся найти файл сценария. Меняйте и пробуйте дальше.




© OSzone.net 2001-2012