1 (изменено: tmpnik, 2012-07-31 05:54:04)

Тема: VBS: Передача параметра из поля "Рабочая папка" ярыка в программу VBS

есть такая программка

Set FSO = CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder("C:\Program Files")
Str = "Путь - " & Folder.Path & vbCrLf
MsgBox Str

Создаю ярлык к этому файлу и помещаю этот ярлык в папку избранное
выбираю любую папку, захожу в избранное, выбираю это ярлык, должно показываться имя этой папки, в которой нахожусь, как передать с ярлыка парметр(имя текущей папки) в эту программу, и что должно быть написано в поле "Рабочая папка" в ярлыке...

2

Re: VBS: Передача параметра из поля "Рабочая папка" ярыка в программу VBS

tmpnik, прочтите Правила форума. Прочтите это. Исправьте заголовок темы. Оформите код тэгами BBCode.

3

Re: VBS: Передача параметра из поля "Рабочая папка" ярыка в программу VBS

tmpnik пишет:

есть такая программка
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder("C:\Program Files")
Str = "Путь - " & Folder.Path & vbCrLf
MsgBox Str

Создаю ярлык к этому файлу и помещаю этот ярлык в папку избранное
выбираю любую папку, захожу в избранное, выбираю это ярлык, должно показываться имя этой папки, в которой нахожусь,

Не должно.
Запуск этого скрипта из любой папки покажет строку "Путь - C:\Program Files"

tmpnik пишет:

как передать с ярлыка парметр(имя текущей папки) в эту программу,

С ярлыка - никак.

tmpnik пишет:

и что должно быть написано в поле "Рабочая папка" в ярлыке...

Что угодно - см. первый ответ.

4

Re: VBS: Передача параметра из поля "Рабочая папка" ярыка в программу VBS

Исправь

Set Folder = FSO.GetFolder(".")
tmpnik пишет:

и что должно быть написано в поле "Рабочая папка" в ярлыке

Оно должно быть пустым!

5

Re: VBS: Передача параметра из поля "Рабочая папка" ярыка в программу VBS

Спасибо, переписал код, как вы сказали, теперь захожу в любую папку, пишу вызов этой программы в строке Адрес браузера, выводит путь текущей папки, но создав ярлык для этой программы, и оставив поле  "Рабочая папка" пустым, поместил этот ярлык в избранное, захожу в любую папку и запуская этот ярлык через избранное, путь показывается "C:\Documents and Settings\user..", но хотелось бы видеть путь текущей папки...

6

Re: VBS: Передача параметра из поля "Рабочая папка" ярыка в программу VBS

tmpnik пишет:

но хотелось бы видеть путь текущей папки...

Ну так и показывается путь рабочей папки для скрипта при таком его способе запуска. Вот если поместить ярлык в нужную папку, отрыть её в проводнике и щёлкнуть по ярлыку...
Если же нужно определить папку открытую в (последнем) активном окне проводника можно рискнуть:

Set ShellWindows = GetObject("new:{9BA05972-F6A8-11CF-A442-00A0C90A8F39}")
FolderPath = ShellWindows.Item().Document.Folder.Self.Path
Str = "Путь - " & FolderPath & vbCrLf
MsgBox Str

7

Re: VBS: Передача параметра из поля "Рабочая папка" ярыка в программу VBS

tmpnik, а не проще будет использовать ярлык в SendTo или перетаскивать потребную папку на скрипт/ярлык?

8

Re: VBS: Передача параметра из поля "Рабочая папка" ярыка в программу VBS

wisgest пишет:

Если же нужно определить папку открытую в (последнем) активном окне проводника можно рискнуть

Спасибо, теперь знаю как надо было сформулировать вопрос в заголовке темы(определить папку открытую в (последнем) активном окне проводника), иногда сложно сформулировать правильно сам вопрос, всё работает(кроме "Мой компьютер") правда настораживает замечание "рискну", в чём риск...
А это строчка...GetObject("new:{9BA05972-F6A8-11CF-A442-00A0C90A8F39}"), какие-то символьно численные знаки, что -то вообще не понятное, не для новичков....
Спасибо...

alexii пишет:

использовать ярлык в SendTo

Надо поэксперементировать..., но я хотел вышеприведённый код использовать в программах VFP

9

Re: VBS: Передача параметра из поля "Рабочая папка" ярыка в программу VBS

А это строчка...GetObject("new:{9BA05972-F6A8-11CF-A442-00A0C90A8F39}"), какие-то символьно численные знаки, что -то вообще не понятное, не для новичков....

Так:

Set ShellWindows = GetObject("new:{9BA05972-F6A8-11CF-A442-00A0C90A8F39}")
MsgBox TypeName(ShellWindows)

Set objShell = WScript.CreateObject("Shell.Application")
MsgBox TypeName(objShell.Windows)

понятнее будет?

По поводу моникера «new:» посмотрите здесь.

но я хотел вышеприведённый код использовать в программах VFP

Как именно?

10 (изменено: tmpnik, 2012-08-01 11:35:19)

Re: VBS: Передача параметра из поля "Рабочая папка" ярыка в программу VBS

Каждое ваше сообщение, сложно "сходу"  понять, поэтому нужно время чтоб осмыслить все приведённые конструкции, моникёры и т.д...:-)
Насчёт, как можно использовать, это боюсь будет флеймом, но вкратце, запускать VFP(может и других приложений) можно, как по ярлыку на рабочем столе, в меню пуск и т.д., но после запуска они переходят в каталог юзера или каталог определённый в поле «Рабочая папка». Привычка наверное осталась со времён MS-DOS, когда в Нортоне выбираешь папку, а затем приложение в котором будешь работать(сейчас вроде как выбор приложения, а потом выбор каталога в приложении….) , на диске есть огромное кол-во папок разбитых по годам , полугодиям датам и т.д., можно в каждой папке держать конфигурационный файл, где все параметры описаны..., но для разовых задач, как например подсчёт сумм, записей и т.д. легче поместить ярлык программы в Избранное, затем  выбор папки и запуск программы через избранное, что-то типа этого

ShellWindows = GetObject("new:{9BA05972-F6A8-11CF-A442-00A0C90A8F39}")
FolderPath =   ShellWindows.Item().Document.Folder.Self.Path
SET DEFAULT TO FolderPath
Код прогрммы

может путано, но как сумел…:-), со всей критикой согласен и признаю, что вы правы…:-)

PS: Сейчас разберусь с окнами explorer, главное показали в каком направлении двигаться..

11

Re: VBS: Передача параметра из поля "Рабочая папка" ярыка в программу VBS

tmpnik пишет:

правда настораживает замечание "рискну", в чём риск

С выходом новых версий Windows, обновлений многие возможности убиваются, например произошли большие утраты с выходом XP SP2; поэтому, что работает у меня, может не работать у пользователя более новой версии.

tmpnik пишет:

всё работает(кроме "Мой компьютер")

У меня работает, однако:

Путь - ::{20D04FE0-3AEA-1069-A2D8-08002B30309D}

tmpnik пишет:

А это строчка...GetObject("new:{9BA05972-F6A8-11CF-A442-00A0C90A8F39}"), какие-то символьно численные знаки, что -то вообще не понятное, не для новичков....

Надеюсь, так будет понятней:

Set ShellWindows = CreateObject("Shell.Application").Windows()

Подробности см. http://www.script-coding.com/WSH/Shell.html#7.
Возможность доступа к ShellWindows по CLASSID минуя создание объекта Shell.Application обнаружена на странице http://msdn.microsoft.com/en-us/library … nter).aspx

12

Re: VBS: Передача параметра из поля "Рабочая папка" ярыка в программу VBS

спасибо...