Установлено vfp9 и vfp8 на одной машине. Как программно узнать который из них стоит по умолчанию? | |
---|---|
AdamAry Автор Сообщений: 843 Дата регистрации: 14.12.2015 |
Всем привет.
Установлено vfp9 и vfp8 на одной машине. Как программно узнать который из них стоит по умолчанию? Это нужно знать чтобы можно было переключаться с 8 на 9 и наоборот. "C:\Program Files (x86)\Microsoft Visual FoxPro 8\vfp8.exe /regserver" |
Re: Установлено vfp9 и vfp8 на одной машине. Как программно узнать который из них стоит по умолчанию? | |
---|---|
Crispy Сообщений: 18571 Дата регистрации: 16.05.2005 |
Библиотеки регистрируются в реестре в ветке: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs\ - можно глянуть, какие файлы vfp9r.dll или vfp8r.dll прописаны. Команды для работы с реестром, если помнишь, я как-то описывал - проще всего через скриптовую машину, можно через апи, просто чуть замороченнее. А вообще - намного проще не регистрировать ничего в системе лишний раз, а просто помещать все нужные файлы библиотек непосредственно в рабочей папке у каждой программы - где нужно файлы от 8, где нужно от 9 версии. Будет работать без всякой регистрации/перерегистрации. ------------------ В действительности все иначе, чем на самом деле. (Антуан де Сент-Экзюпери) Исправлено 1 раз(а). Последнее : Crispy, 15.08.17 09:08 |
Re: Установлено vfp9 и vfp8 на одной машине. Как программно узнать который из них стоит по умолчанию? | |
---|---|
sergius1975 Сообщений: 4 Дата регистрации: 15.08.2017 |
[quote AdamAry]Всем привет.
Это нужно знать чтобы можно было переключаться с 8 на 9 и наоборот. Обращаюсь за опытом к сайту больше 15 лет. Всегда находил помощь и нужные советы, даже не регистрируясь. Но чем дальше тем все становится противнее. Впечатление такое, что "новые програмеры" просто тупеют. А цивилизация-то должна идти к развитию... Неуж-то сложно провести анализ, чем сразу кричать "Помогите"? "переключаться с 8 на 9 и наоборот." - один мудрый человек сказал: "В правильно заданом вопросе 90% ответа!" Нужно просто переинсталить VFP. Причем перед єтим полностью удалить "вручную" vfp*.* из Program Files... На машинах пользователей работают программы от Visual FoxPro 6.0 до Visual FoxPro 9 и никаких "переключений" не нужно. Извините, за вмешательтво, не выдержал. Последнее время "полезло" много "ленивых" вопросов. :-( |
Re: Установлено vfp9 и vfp8 на одной машине. Как программно узнать который из них стоит по умолчанию? | |
---|---|
sergius1975 Сообщений: 4 Дата регистрации: 15.08.2017 |
Если машина настроеная под работу пользователя, то "шаманства" с реестром - пустая трата времени. Нужен просто "правильно построеный рантайм". И все версии Фокса будут нормально работать. Были ситуации, когда просто нормально приложениям мешала работать vfp5*.dll или vfp6.dll. Отсутствующая в реестре, но "физически" находящаяся Program Files\... "нужные файлы библиотек непосредственно в рабочей папке у каждой программы" - с ReFox-ом прикольно получалось. Привязавешь к проэкту нужные библиотеки и после этого программа с другими vfp*.dll не работала! |
Re: Установлено vfp9 и vfp8 на одной машине. Как программно узнать который из них стоит по умолчанию? | |
---|---|
Crispy Сообщений: 18571 Дата регистрации: 16.05.2005 |
Просто во многих случаях (в том числе и вышеописанных у автора темы) имеет смысл воспользоваться изначальной портируемостью Фокспро.
Поскольку Фокспро для работы вполне достаточно стандартного набора его собственных библиотек + файлов msvcr71.dll и gdiplus.dll (если их нет в системе). Всего лишь располагая все эти файлы в рабочей папке программы. Размер у них по нынешним меркам мизерный. В принципе можно аналогично поступить и с запуском среды разработки, ничего не устанавливая в систему вообще. Я довольно часто бывало пользовался раньше VFP9 вообще с флешки. Разница с установленным VFP9 - только в наличии в последнем возможности вызова справки по F1. В переносном варианте этого не будет. Что не мешает, если нужно запускать файл справки chm обычным образом. При желании можно конечно и просто зарегистрировать нужные файлы для вызова справки из среды вручную, либо, как было сделано у меня например, через командный файл со строками:
Более того, на "чужих системах" могут быть установлены с регистрацией какие угодно версии VFP, причем даже не одна, поэтому "портируемый вариант" имеет безусловное преимущество и по этой причине, помогая избежать лишних проблем с версией. Поскольку файлы фокспро при запуске ищут файлы библиотек сначала "под боком", а потом уже в различных системных папках и на прочих зарегистрированных путях. sergius1975 Вещи в общем-то очевидные и много раз тут когда-то описывавшиеся, просто автор топика за давностью их обсуждения тут, мог с ними не сталкиваться. ------------------ В действительности все иначе, чем на самом деле. (Антуан де Сент-Экзюпери) Исправлено 1 раз(а). Последнее : Crispy, 16.08.17 07:18 |
Re: Установлено vfp9 и vfp8 на одной машине. Как программно узнать который из них стоит по умолчанию? | |
---|---|
AdamAry Автор Сообщений: 843 Дата регистрации: 14.12.2015 |
"HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs\"
здесь фоксовских dll нет. Windows 10 Enterprise. Исправлено 1 раз(а). Последнее : AdamAry, 16.08.17 09:06 |
Re: Установлено vfp9 и vfp8 на одной машине. Как программно узнать который из них стоит по умолчанию? | |
---|---|
Crispy Сообщений: 18571 Дата регистрации: 16.05.2005 |
Ну в десятке может быть и другой путь. Проще всего открыть regedit из командной строки - и в поиск ввести название файла. Хотя лучше мне кажется все же снести фокс и пользоваться попросту портабильно на каждый данный момент нужной версией, не заморачиваясь как-то особенно. Ассоциации фокс-файлов, обычно вообще никогда не бывают нужны, а проблема с хелпом по F1 решаема, как я и упоминал выше. В остальном - такая версия ничем абсолютно не будет отличаться от установленной версии. Все записи в реестре касаются только ассоциаций файлов и регистрации фоксовских библиотек, нужной для работы скомпилированных программ (при отсутствии в их папках данных файлов). Кстати лет 10 уже при установке VFP9 на новую систему не ставлю через установщик, а пользуюсь путем простого переноса его папок, ну плюс регистрацией хелпа для удобства вызова справки. ------------------ В действительности все иначе, чем на самом деле. (Антуан де Сент-Экзюпери) |
Re: Установлено vfp9 и vfp8 на одной машине. Как программно узнать который из них стоит по умолчанию? | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Во-первых не регистрируются (фоксовые). Во-вторых эта ветка не имеет решительно никакого отношения к РАБОТЕ программ - она нужна только для установщика, который на основании данного счётчика определяет нужно ли удалять некоторую "общую" dll. В-третьих всё что связано с "регистрацией" dll НИКАК не поможет в решении поставленной задачи - определить какой программой (в данном случае какой версией среды разработки VFP) будет по умолчанию открыт файл с определённым расширением. Опять же, это не имеет абсолютно никакого отношения к поставленному вопросу - как определить чем открывается, к примеру, scx файл. Более того, без определённых записей в реестре вообще невозможно заставить проводник открывать файл с соответствующим расширением в соответствующей программе. Такое громкое заявление, и такой, прямо скажем безграмотный ответ... Смешно, но мало что знающий в VFP автор вопроса, написал куда как более корректные слова, нежели вздумавший поучать его "профи". А может ещё всю винду посоветуешь переустановить? Или сразу новый компьютер купить? Прежде чем писать подобную чушь, неплохо было бы ознакомится с предметом разговора. В частности почитать, для чего служит параметр командной строки /regserver при запуске vfp8.exe или vfp9.exe Бред и абсолютное непонимание принципов поиска библиотек рантайма фоксовым загрузчиком... При том ещё и не имеющей ни малейшего отношения к поставленному вопросу. Слишком громкое заявление. При том что автор вопроса по сути ИМЕННО про ассоциации фокс-файлов и спрашивал 2 AdamAry С какой целью нужно "знать" какая из версий фокса в данный момент "открывает фоксовые файлы"? Запуск vfpN.exe /regserver просто перепишет текущие файловые ассоциации. Ну были они сделаны на vfp9 и снова будут переписаны на vfp9 - в чём проблема то? Но если "очень хочется", то надо анализировать собственно записи файловых ассоциаций - скажем для того же dbf это: HKEY_CLASSES_ROOT\.dbf - обычно она не сама содержит описание "действий" а указывает на "Visual.FoxPro.Table". Смотрим далее HKEY_CLASSES_ROOT\Visual.FoxPro.Table и внутри подветку shell\open\command там будет прописана команда срабатывающая при "открытии" dbf файла в проводнике. В частности там будет видно из какой папки и какой именно exe будет запущен - vfp8 или vfp9. shell\open\command может быть прописан и сразу в ключе .dbf (хотя штатная установка фокса, равно как и запуск vfpN.exe с ключом /regserver так НЕ делают). Проблема в том, что проверять надо по сути ВСЕ расширения, т.к. запросто может оказаться что часть из них указывает на 8-й фокс, а другая часть на 9-й. Кстати, иногда так делают СПЕЦИАЛЬНО. Скажем pjt связывают с 8-й версией а pjx с 9-й. Оба этих файла представляют собой "проект", и по сути открытие любого приводит к открытию проекта в среде разработки. И имея такие "разноверсионные" ассоциации становится возможным не запуская предварительно IDE фокса открывать его файлы по выбору - в 8 или в 9 версии. Другой вариант, записать в реестре дополнительное "действие" open это "стандартное" (и пусть оно срабатывает с использованием крайней 9-й версии), а можно, к примеру, сделать open8 и прописать там открытие этого же файла но уже в 8-й версии IDE фокса. Использовать это можно если не просто дважды кликать по файлу в проводнике, а вызывать его контекстное меню (правой кнопкой мыши, или специальной клавишей на клавиатуре) - там появится помимо "Открыть" ещё и пункт "Открыть в 8-й версии" (естественно "название/расшифровку" действия open8 тоже следует прописать в реестре). ------------------ WBR, Igor |
Re: Установлено vfp9 и vfp8 на одной машине. Как программно узнать который из них стоит по умолчанию? | |
---|---|
Crispy Сообщений: 18571 Дата регистрации: 16.05.2005 |
Да, без тебя скучно было.
И как всегда у тебя - в целом вроде и верно. А вот в частностях - бывает и чушь встречается. ;) Скажем, сколько знаю и из практики, и из бесед не только здесь - ни одному пользователю как правило никогда не нужны бывают ассоциации файлов (кстати в глобальном отношении мусорят они реестр неплохо). Единственно - кроме некоторых типов стандартных документов. А уж если пользователю они не нужны - то более-менее опытному программисту вообще грех ими пользоваться. ;) Скажем для быстрого просмотра dbf любой не-чайник обычно элементарно использует утилиту в TC или FAR. О быстром же просмотре prg уж и вовсе думаю не стоит упоминать - у каждого своя замена блокнота. Для остального - спешка и вовсе не нужна. Ну и спрашивается - какого тогда вообще нужны эти ассоциации-то?! Мусор, и ничего кроме. Так что насчет их нужности ты явно погорячился. ;) Не понятно вот только, зачем ты мне там наверху красноты-то понатыкал? Или ты принципиально против, что Фокспро может работать и без регистрации? ;) Ну так и может же! ------------------ В действительности все иначе, чем на самом деле. (Антуан де Сент-Экзюпери) Исправлено 2 раз(а). Последнее : Crispy, 17.08.17 11:04 |
Re: Установлено vfp9 и vfp8 на одной машине. Как программно узнать который из них стоит по умолчанию? | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Пример чуши у меня приведи. Именно чуши - т.е. неверного, безграмотного или просто не относящегося к делу высказывания. Громкое и безосновательное заявление. Большинство пользователей вполне успешно используют файловые ассоциации. Если что, они появились ещё во времена DOS в тамошних файловых менеджерах. И было весьма удобно по нажатию Enter открывать txt в текстовом редакторе, dbf в фоксе, prg в каком-нить QEdit. Которые (эти файл-менеджеры) работают, вот сюрприз то! через файловые ассоциации. Просто в другом месте (не реестре) прописанные. В реестре прописаны ассоциации для "проводника" - штатного файл-менеджера винды. Которым, к слову, пользуется подавляющее большинство людей работающих в Windows. ДАЖЕ если они помимо него используют и другие файл-менеджеры. Я, конечно, тоже им пользуюсь для определённых целей. А тебе какое горе до этого? Не используй реестр (кстати, сама MS уже много лет как советует не лазить прикладным разработчикам в реестр - хранить настройки создаваемого ими ПО в других местах) и всего делов. В винде 100500 файлов самого разного формата и размера куда "мусорит" сама система или системные/служебные утилиты - и я не вижу в этом решительно никаких проблем для рядового пользователя. Вот это как раз и есть пример чуши. Во-первых они нужны пользователю, во-вторых нет совершенно никакой связи между потребностями программиста и потребностями простого пользователя. По твоей "логике" раз пользователю не нужны Visual Studio, gcc, или то же IDE фокса, то и программисту "вообще грех ими пользоваться" Да. Я пользуюсь IDE фокса. Через файловые ассоциации винды. Всякие "заменители блокнота" я не использую вообще (ну если не считать встроенный текстовый редактор FAR - но я крайне редко использую его для редактирования prg файлов, и не часто для просмотра). ЧЯДНТ? Поскольку было написано то что: - не соответствует действительности (применимо к фоксу). - не относится к заданному вопросу. - неверно изложено (применимо к другим dll/программам). И ты явно не заметил КАКОЕ твоё сообщение было промаркировано. Там где описывался вариант "портабельного" запуска IDE фокса я вовсе ничего не "краснил" - хотя это и не относится напрямую к заданному вопросу, но в принципе написано более-менее правильно. gdiplus не нужен (он есть в ОС требуемых для запуска IDE фокса - пытаться запустить среду разработки фокса на каком-нить Windows 98 я бы КРАЙНЕ не рекомендовал), зато нужны MSXML4 парсер (что для работы создаваемых программ, в частности использования класса XMLAdapter, что для некоторых встроенных в IDE утилит - скажем TaskPane явно его требует), и некоторые ActiveX компоненты (но их отсутствие не смертельно, хотя и весьма неприятно - не будут работать Class Browser, Object Browser, Code References, возможно что-то ещё из менее нужных утилит). Это заметно ограничивает "портабельность" среды разработки - я бы сказал что полноценно писать ПО не получится, но вносить некоторые несущественные изменения или дополнения в исходник, и использовать отладчик - вполне возможно. ------------------ WBR, Igor |
Re: Установлено vfp9 и vfp8 на одной машине. Как программно узнать который из них стоит по умолчанию? | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
В скромности вас не упрекнешь. |
Re: Установлено vfp9 и vfp8 на одной машине. Как программно узнать который из них стоит по умолчанию? | |
---|---|
of63 Сообщений: 25244 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
(Приятно послушать разговор профи, просто узнать, что что-то живет в этом фоксе, шевелится Какие-то там его детальки нравятся, или не нравятся...)
|
Re: Установлено vfp9 и vfp8 на одной машине. Как программно узнать который из них стоит по умолчанию? | |
---|---|
AdamAry Автор Сообщений: 843 Дата регистрации: 14.12.2015 |
Цитата:Я пытаюсь использовать DVFP для декомпиляции файла pjx из 8 ого VFP, хотя сам DVFP работает только под 9 ым VFP, вот и хотел найти штатный способ узнавания, какая версия VFP сейчас зарегистрирована. У меня одновременно установлены и 9 и 8. Твой способ узнавания из HKEY_CLASSES_ROOT\Visual.FoxPro.Table вполне подойдёт, т.е. ты ответил на поставленный вопрос: Цитата: Но вот именно про именно "/regserver при запуске vfp8.exe или vfp9.exe" чё то нет информации. Исправлено 8 раз(а). Последнее : AdamAry, 22.08.17 06:51 |
Re: Установлено vfp9 и vfp8 на одной машине. Как программно узнать который из них стоит по умолчанию? | |
---|---|
Аспид Сообщений: 3475 Откуда: Москва Дата регистрации: 01.04.2005 |
Ух как ты разошелся)))
Всем красноты поналепил))) Но сути так и не понял. На вопрос " Установлено vfp9 и vfp8 на одной машине. Как программно узнать который из них стоит по умолчанию?" правильный ответ - НИКАК. В общем случае. На хрена это надо, никому не понять. А что бы твоя прога работала с нужным рантаймом И это был первый же ответ. Топик длинный, умности читать лень) Уверен Игорь что то написал. Но Криспи тут 100% прав. лет 20 так делаю. ------------------ |
Re: Установлено vfp9 и vfp8 на одной машине. Как программно узнать который из них стоит по умолчанию? | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Всё одно не понимаю зачем тебе знать на какую версию зарегистрированы файловые ассоциации. Нужно запустить dvfp - ну запусти 9-й фокс и там запусти утилиту (если уж никак не выходит сделать из неё просто exe и вообще не забивать себе голову запуском IDE а потом запуском из неё prg)... Оно то да, но только какой в этом прок? Я лично не вижу вообще смысла это (регистрацию файловой ассоциации) выяснять, и тем более менять. Правильный подход, это выяснить суть проблемы и решить поставленную ЗАДАЧУ наилучшим (в т.ч. и наиболее простым) способом, а не городить непонятный огород из ненужных конструкций. В частности "переключать" зачем-то файловые ассоциации фокса для тривиального запуска некоторой prg под "другой версией". How to: Use Command-Line Options When Starting Visual FoxPro тут перевод, но он автоматический и потому корявый. ------------------ WBR, Igor |
Re: Установлено vfp9 и vfp8 на одной машине. Как программно узнать который из них стоит по умолчанию? | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Тут не поспоришь. Тем более что терминологически "программа стоит по умолчанию" это очень корявое применение данных слов. "открывает по умолчанию файл prg" - это совсем другое дело Опять же в точку - только в последнем посте проливается свет на решаемую ПРОБЛЕМУ. До того же все как обычно - автор выбирает какой-то странный, или очень странный способ решения и спрашивает как же эту странность сделать этим способом При том что сама то проблема и яйца выеденного не стоит, в отличие от придуманных нагромождений с реестром, перерегистрациями файловых ассоциаций и т.п. К сожалению в данном случае не идёт речи о программе в готовом виде (exe), посему и о рантайме речи не может быть (хотя это как раз один из способов решения начальной проблемы - скомпилируй требуемый код в exe, ну может дополнив стартовый модуль своими строками, и всё - система сама разберётся где взять рантайм, раз уж нужная версия фокса точно установлена на этой машине). Требуется именно запуск IDE фокса. Однако организовать запуск IDE нужной версии, в т.ч. и с подачей ему нужного prg или fxp файла тоже совсем несложно - и даже безо всяких реестров и /regserver-ов. Что тоже позволит решить начальную проблему ------------------ WBR, Igor |
Re: Установлено vfp9 и vfp8 на одной машине. Как программно узнать который из них стоит по умолчанию? | |
---|---|
descent52_tmp Сообщений: 214 Откуда: Саров Дата регистрации: 20.11.2014 |
Не подскажите, что СИЕ на прикрепленной картинке?
есть проект на фокс 8, попробовал сделать ехе в фоксе 9 и получил такое сообщение (( |
Re: Установлено vfp9 и vfp8 на одной машине. Как программно узнать который из них стоит по умолчанию? | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Пути с пробелами где-то через Ж*** сделаны. Плюс сам проект или его части жили в папке по умолчанию в Documents...
------------------ WBR, Igor |
Re: Установлено vfp9 и vfp8 на одной машине. Как программно узнать который из них стоит по умолчанию? | |
---|---|
ssa Сообщений: 13007 Откуда: Москва Дата регистрации: 23.03.2005 |
1. Сударь, уже не единожды вам было сказано, что не вам давать какие-либо оценки с вашим-то уровнем знания предмета и способностями понять данные вам ответы на ваши вопросы, которые, как обычно, назвать умными/хорошими/интересными и т.д. нет никакой возможности. 2. Опять же не единожды было указано на излишнее цитирование. Потрудитесь в дальнейшем при написании сообщений таки учитывать оба пункта. ------------------ Лень - это неосознанная мудрость. |
Re: Установлено vfp9 и vfp8 на одной машине. Как программно узнать который из них стоит по умолчанию? | |
---|---|
AdamAry Автор Сообщений: 843 Дата регистрации: 14.12.2015 |
"Как программно узнать который из них стоит по умолчанию?" имелось в виду какая версия VFP 8 или 9 будет будет по умолчанию в реестре, сделанная посредством "Registers Visual FoxPro default registry keys." для открытия файлов и т.д. Цитата: Цитата: Почему надо узнать какая версия фокса сейчас стоит по умолчанию в реестре?: элементарно, у меня рабочая vfp8, но иногда использую vfp9, и чтобы быстро узнать какая программа (8 или 9) сейчас стоит по умолчанию, и появился этот вопрос. Допустим сейчас 9, но если я делаю проекты, то они все на 8 ом, резонно, посмотрев в HKEY_CLASSES_ROOT\Visual.FoxPro.Table и увидев 9 переключюсь на 8. Но когда необходимо использовать 9, то опять же предварительно посмотрев в HKEY_CLASSES_ROOT\Visual.FoxPro.Table и увидев 8, переключюсь на 9, вот и всё. По аналогии можно спросить, зачем нужны двухмерные массивы, когда можно вместо них использовать только таблицы, ведь использование таблиц гораздо удобнее? Исправлено 13 раз(а). Последнее : AdamAry, 22.08.17 07:35 |
© 2000-2024 Fox Club  |