powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Реестр Windows
24 сообщений из 24, страница 1 из 1
Реестр Windows
    #39768741
Фотография xax_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую всех!
На компе установлено две версии программы - полная и Runtime, соответственно в реестре имеется две ветки, Professional и Runtame.
Вопрос, как определить, что имеется только Professional или Runtame тоже.
...
Рейтинг: 0 / 0
Реестр Windows
    #39768745
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А просто по именам папок проверить - не пойдет?
...
Рейтинг: 0 / 0
Реестр Windows
    #39768746
Фотография xax_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Расположение папок может быть произвольным, зависит от разрядности Виндовс и предпочтений установщика. :)
...
Рейтинг: 0 / 0
Реестр Windows
    #39768751
zimkon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Реестр Windows
    #39768758
Фотография xax_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zimkon, спасибо!
Ищет хорошо, но долго.
...
Рейтинг: 0 / 0
Реестр Windows
    #39768782
zimkon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xax_nvzimkon, спасибо!
Ищет хорошо, но долго.
https://nhutils.ru/forum/viewtopic.php?t=14
Попробуй переделать этот vbs скрипт на vba, и сравнить скорость с предыдущим вариантом
...
Рейтинг: 0 / 0
Реестр Windows
    #39768824
Фотография xax_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дело в том, что в разделе SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\ интересующей меня программы при "ручном просмотре" я не обнаружил, да и с преобразованием скрипта в vba у меня проблемы.
Меня вполне бы устроил первый вариант, если бы поиск происходил по конкретной ветке: HKEY_CURRENT_USER\Software\MapInfo\, но у самого тяму не хватает.
...
Рейтинг: 0 / 0
Реестр Windows
    #39768847
zimkon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xax_nv,

Для анализа определенной ветки реестра второй вариант после некоторой доработки вполне бы подошел
...
Рейтинг: 0 / 0
Реестр Windows
    #39768853
zimkon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xax_nv,

Подсказка, как проверить наличие определенной ветки реестра, тут
http://forum.oszone.net/post-2711088.html
...
Рейтинг: 0 / 0
Реестр Windows
    #39768908
Фотография xax_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zimkonxax_nv,

Подсказка, как проверить наличие определенной ветки реестра, тут
http://forum.oszone.net/post-2711088.html

Использую вот такой код:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Sub vvv()

Dim WshShell, MIP, MIR
'On Error Resume Next

Set WshShell = WScript.CreateObject("WScript.Shell")

MIP = WshShell.RegRead("HKCU\Software\MapInfo\MapInfo\Professional\")
MIR = WshShell.RegRead("HKCU\Software\MapInfo\MapInfo\RunTime\")
If Not VarType(MIP) = vbEmpty Then Debug.Print "MIP"
If Not VarType(MIR) = vbEmpty Then Debug.Print "MIR"

End Sub


При 'On Error Resume Next на строке
Код: vbnet
1.
Set WshShell = WScript.CreateObject("WScript.Shell")

выдает ошибку: Object required

Что-то на старости лет совсе соображалка не работает, да и последнее время административная работа все время отнимает.
...
Рейтинг: 0 / 0
Реестр Windows
    #39768912
Swa111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xax_nv,

в VBA так
Код: vbnet
1.
Set WshShell = CreateObject("WScript.Shell")
...
Рейтинг: 0 / 0
Реестр Windows
    #39768914
Фотография xax_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Swa111, большое спасибо!!!
...
Рейтинг: 0 / 0
Реестр Windows
    #39769073
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может проще запустить программу и посмотреть? В какой среде работаем: Access или Runtime Access?
...
Рейтинг: 0 / 0
Реестр Windows
    #39769302
Фотография xax_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так речь идет не о версии Access, в Access нужно узнать версию MapInfo.
...
Рейтинг: 0 / 0
Реестр Windows
    #39769339
ldfanate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а Мапинфо разве не предоставляет свои библиотеки объектов через OLE?
т.е. нельзя ли через createobject("mapinfo.application") извлечь проперти application.version и проанализировать? Наверняка у RT и Prof будет разное значение.
...
Рейтинг: 0 / 0
Реестр Windows
    #39769348
Фотография xax_nv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ldfanateчерез createobject("mapinfo.application")
В том то и дело, что при RT выдает ошибку, требуется CreateObject("Mapinfo.Runtame").
...
Рейтинг: 0 / 0
Реестр Windows
    #39769472
studieren
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xax_nv,

Ну так добавьте "On Error Resume Next" перед CreateObject. Если ошибка, то почистите ошибку "Err.Clear", ну и потом второй вариант пробуете.
Не вариант?
...
Рейтинг: 0 / 0
Реестр Windows
    #39769506
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xax_nvтребуется CreateObject("Mapinfo.Runtame").Объект создаётся?
...
Рейтинг: 0 / 0
Реестр Windows
    #39769510
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если создаётся, то как создаётся аналогичный объект для Professional?
...
Рейтинг: 0 / 0
Реестр Windows
    #39769739
ldfanate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так гляньте в ветке реестра HKEY_CLASSES_ROOT - поищите там названия разделов *Mapinfo*, это и будет название для CreateObject.
...
Рейтинг: 0 / 0
Реестр Windows
    #39769902
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ldfanateтак гляньте в ветке реестра HKEY_CLASSES_ROOT - поищите там названия разделов *Mapinfo*, это и будет название для CreateObject.Это мне? Если да, то у меня нет мапинфо, и не предвидится.
...
Рейтинг: 0 / 0
Реестр Windows
    #39769992
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xax_nvНа компе установлено две версии программы - полная и Runtime, соответственно в реестре имеется две ветки, Professional и Runtame.
Вопрос, как определить, что имеется только Professional или Runtame тоже.
Посмотрел, что там и как...
http://foxclub.ru/articles/art48.php Запуск экземпляра MapInfo

После установки MapInfo Professional в реестре OC Windows регистрируется класс «MapInfo.Application», если вы используете MapInfo Runtime, то класс «MapInfo.Runtime».Отсюда
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Private Type GUIDs
    Data1 As Long
    Data2 As Integer
    Data3 As Integer
    Data4(0 To 7) As Byte
End Type

Private Declare Function CLSIDFromProgID Lib "ole32" (ByVal lpszProgID As Long, rclsid As GUIDs) As Long

Public Function IsOLEObjectInstalled(sName As String) As Boolean
Dim mGuid As GUIDs
'Ищем CLSID OLE-объекта
 IsOLEObjectInstalled = (CLSIDFromProgID(StrPtr(sName), mGuid) = 0)
End Function


тест
Код: vbnet
1.
2.
3.
4.
5.
6.
? IsOLEObjectInstalled("Word.Application")
True
? IsOLEObjectInstalled("MapInfo.Runtime")
False
? IsOLEObjectInstalled("MapInfo.Application")
False

Нет у меня MapInfo
...
Рейтинг: 0 / 0
Реестр Windows
    #39770287
ldfanate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПанургPrivate Declare Function CLSIDFromProgID Lib "ole32"
Придётся ветки if-esle городить для 64 и 32-битных систем.

А чем не нравится банальное двойное createobject обёрнутое в on error resume next ?
...
Рейтинг: 0 / 0
Реестр Windows
    #39770349
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ldfanateПанургPrivate Declare Function CLSIDFromProgID Lib "ole32"
Придётся ветки if-esle городить для 64 и 32-битных систем.

А чем не нравится банальное двойное createobject обёрнутое в on error resume next ?ну тоже придётся городить проверки. А так то возможно не понадобится " городить для 64 и 32-битных систем" объявление функции - не будет 64-битного Access
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Реестр Windows
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]