Можно ли изменить ярлык из VFP?

glamis
Дата: 12.11.2012 13:11:35
требуется изменить ярлык запуска программы. Но так как рабочих мест очень много и могут быть варианты запуска (например, путь к рабочей папке программы), хотелось бы при запуске программы выложить на рабочий стол новый ярлык, созданный на базе шаблона в котором изменить конкретные настройки пользователя.
Dima T
Дата: 12.11.2012 14:04:54
Есть объект ShellLink. Как пользоваться ищи в инете. Я на Сях его пользовал.
http://msdn.microsoft.com/en-us/library/windows/desktop/bb776891(v=vs.85).aspx
Jonny540
Дата: 12.11.2012 14:32:15
glamis
могут быть варианты запуска (например, путь к рабочей папке программы), хотелось бы при запуске программы выложить на рабочий стол новый ярлык,
созданный на базе шаблона в котором изменить конкретные настройки пользователя.
Хм... ИМНО, гораздо целесообразнее конкретные настройки пользователя хранить в неком ini-файле/таблице
и настраивать их при установке приложения на комп с учетом пожеланий юзера (что-то типа setup).
glamis
Дата: 14.11.2012 09:18:19
Нашел такой код создания ярлыка:

LOCAL WshShell,oShellLink, strDesktop, fstart
fstart=FULLPATH('start.exe')
WshShell = CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop")
oShellLink = WshShell.CreateShortcut(strDesktop+"\XXX.lnk")
oShellLink.TargetPath = fstart
oShellLink.WindowStyle = 1
oShellLink.IconLocation = fstart
oShellLink.Description = "Новая версия XXX"
oShellLink.WorkingDirectory = JUSTPATH(fstart)
oShellLink.Save && 'создать ярлык

для создания своего ярлыка прописываю:
oShellLink.TargetPath='"'+SYS(2004)+IIF(VERSION(4) = '09','vfp9','vfp8')+'.exe" start.exe ADM'
естестно ожидаю получить эту строку в ярлыке, однако получаю:
"C:\"C:\PROGRAM FILES\MICROSOFT VISUAL FOXPRO 9\vfp9.exe" start.exe ADM"
Jonny540
Дата: 14.11.2012 11:00:08
glamis
для создания своего ярлыка прописываю:
oShellLink.TargetPath='"'+SYS(2004)+IIF(VERSION(4) = '09','vfp9','vfp8')+'.exe" start.exe ADM'
Вот это '"' зачем? Пишите:
oShellLink.TargetPath=SYS(2004)+IIF(VERSION(4) = '09','vfp9','vfp8')+'.exe" start.exe ADM'
glamis
Дата: 14.11.2012 12:20:22
Jonny540,
В итоге мне нать получить строку:
"c:\programs files\Microsoft Visual Foxpro 9\vfp9" start.exe adm
где то что в кавычках - имя программы, start.exe по сути параметр VFP9.exe, а adm - параметр start.exe (требуется запустить приложение под оболочкой VFP), а при автоматическом создании ярлыка в кавычки берется вся строка и WIN пытается найти программу с таким именем. И, естессна, не находит.
Jonny540
Дата: 14.11.2012 13:07:12
glamis,

Да сколько уже примеров тут было?!
cStroka=SYS(2004)+IIF(VERSION(4) = '09','vfp9','vfp8')+'.exe" start.exe ADM'
oShellLink.TargetPath=cStroka
Jonny540
Дата: 14.11.2012 13:09:46
Т.е.
cStroka='"'+SYS(2004)+IIF(VERSION(4) = '09','vfp9','vfp8')+'.exe" start.exe ADM'
oShellLink.TargetPath=cStroka
:))
glamis
Дата: 14.11.2012 13:14:51
Jonny540,

ЕКсли не понял:
Пишу:
oShellLink.TargetPath='C:\Program Files\Microsoft Visual FoxPro 9\vfp9.exe start.exe ADM'
Получаю:
"C:\Program Files\Microsoft Visual FoxPro 9\vfp9.exe start.exe ADM"

Пишу:
oShellLink.TargetPath='"C:\Program Files\Microsoft Visual FoxPro 9\vfp9.exe" start.exe ADM'
Получаю:
"C:\"C:\Program Files\Microsoft Visual FoxPro 9\vfp9.exe" start.exe ADM"

Надо
"C:\Program Files\Microsoft Visual FoxPro 9\vfp9.exe" start.exe ADM
Dima T
Дата: 14.11.2012 13:22:21
glamis
Надо
"C:\Program Files\Microsoft Visual FoxPro 9\vfp9.exe" start.exe ADM

Немного не по теме: зачем именно так? start.exe я так понимаю прога твоя фоксовая. Может так надо:
C:\MyProg\start.exe ADM


По теме не подскажу, ни разу не пробовал.

Кстати ярлыки еще WinRAR умеет создавать. Использовал его как инсталлятор.