Открытие файла ассоциированным приложением с помощью Avenue
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9129
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 748
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
Открытие файла ассоциированным приложением с помощью Avenue
Обсуждение статьи: Открытие файла ассоциированным приложением с помощью Avenue
http://gis-lab.info/qa/hotlink-anytype.html
http://gis-lab.info/qa/hotlink-anytype.html
пристегивайтесь, турбулентность прямо по курсу
- Максим Дубинин
- MindingMyOwnBusiness
- Сообщения: 9129
- Зарегистрирован: 06 окт 2003, 20:20
- Репутация: 748
- Ваше звание: NextGIS
- Откуда: Москва
- Контактная информация:
-
- Участник
- Сообщения: 76
- Зарегистрирован: 24 фев 2006, 14:33
- Репутация: 0
Re: Открытие файла ассоциированным приложением с помощью Avenue
Неприятная особенность: Если в поле имени файла пусто, происходит открытие системного окна с папкой проекта.
А как бы сделать, чтобы типа выскакивало сообщение "Нет файла!", или еще лучше - просто "BEEP" ?
А как бы сделать, чтобы типа выскакивало сообщение "Нет файла!", или еще лучше - просто "BEEP" ?
-
- Участник
- Сообщения: 76
- Зарегистрирован: 24 фев 2006, 14:33
- Репутация: 0
Re: Открытие файла ассоциированным приложением с помощью Avenue
...и еще аналогично: при использовании скриптов для открытия картинки с помощю ИрфанВъю - если хотлинк-поле содержит имя несуществующего файла, то "File not found!", а если поле пустое - происходит открытие первого попавшегося файла-картинки из папки проекта. Точнее, открывается пустой Ирфан, а он уже сам загружает первую попавшуюся картинку. То же делает и ФастСтоне.
-
- Участник
- Сообщения: 76
- Зарегистрирован: 24 фев 2006, 14:33
- Репутация: 0
Re: Открытие файла ассоциированным приложением с помощью Avenue
...от последнего удалось избавиться, добавив в скрипт "if-then":
theView = av.GetActiveDoc
found = false
p = theView.GetDisplay.ReturnUserPoint
for each t in theView.GetActiveThemes
if ((t.HasAttributes) and (t.GetHotField <> nil)) then
recs = t.FindByPoint(p)
for each rec in recs
theField = t.GetHotField
found = true
theVal = t.ReturnValueString(theField.GetName, rec)
if (theVal<>"") then
av.Run(t.GetHotScriptName,FileName.GetCWD.asstring+"\"+theVal)
end
end
end
end
if (not found) then
System.Beep
end
theView = av.GetActiveDoc
found = false
p = theView.GetDisplay.ReturnUserPoint
for each t in theView.GetActiveThemes
if ((t.HasAttributes) and (t.GetHotField <> nil)) then
recs = t.FindByPoint(p)
for each rec in recs
theField = t.GetHotField
found = true
theVal = t.ReturnValueString(theField.GetName, rec)
if (theVal<>"") then
av.Run(t.GetHotScriptName,FileName.GetCWD.asstring+"\"+theVal)
end
end
end
end
if (not found) then
System.Beep
end
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя