Отключение MB-программ в MapInfo

MapInfo, MapBasic
Ответить
Dartix
Участник
Сообщения: 78
Зарегистрирован: 05 апр 2014, 17:13
Репутация: 5

Отключение MB-программ в MapInfo

Сообщение Dartix » 10 ноя 2015, 10:44

В MapInfo пользуюсь большим количеством MB-программ, но иногда, для определённых целей нужно чтобы была запущена "чистая" MapInfo (без запущенных MB-программ). Приходится их отключать вручную.

Можно ли каким-нибудь скриптом или лучше программой MapBasic отключить все запущенные MapBasic программы в MapInfo?

Slinger
Гуру
Сообщения: 879
Зарегистрирован: 17 июн 2010, 23:14
Репутация: 207
Откуда: Москва

Re: Отключение MB-программ в MapInfo

Сообщение Slinger » 10 ноя 2015, 11:33

Все утилиты, которые есть у вас в списке "Программы - Каталог программ" лежат в реестре по этому пути

HKEY_CURRENT_USER\Software\MapInfo\MapInfo\Professional\НомерВерсии_MapInfo\Tools

Что бы я сделал

1) Экспортировал бы раздел Tools куда-нибудь. Это будет бэкап наших данных, стандартный запуск всех утилит и вообще всего списка

2) Создаю копию этого реестровского файла, открываю в любом текстовом редакторе (насчёт блокнота не уверен, так как он UTF-8 не поддерживает) и меняю

Код: Выделить всё

"Autoload"=dword:00000001
на

Код: Выделить всё

"Autoload"=dword:00000000
везде, где встретится. Это будет "чистый" файл реестра без автозапуска утилит.

3) Убедитесь, что Mapinfo выключен и применяйте чистый файл.

4) И всё.

з.ы. Соответственно при изменении списка утилит, добавление или удаление, или изменения автозагрузки, не забывайте заново создавать .reg файлы.

Alexgis
Интересующийся
Сообщения: 23
Зарегистрирован: 19 окт 2015, 11:10
Репутация: 1

Re: Отключение MB-программ в MapInfo

Сообщение Alexgis » 10 ноя 2015, 16:52

Как-то так :wink:

Код: Выделить всё

Include "MAPBASIC.DEF"

Declare Sub Main

Sub Main
DIM h as integer
DIM s as string
h = DDEInitiate ("MapInfo", "System")
s = DDERequest$(h, "Topics")
DDETerminate h

DIM ln as integer
DIM pos as integer
DIM fn as string
DIM ch as string

ln = Len(s)
FOR pos = 8 TO ln
 ch = mid$(s, pos, 1)
 IF Asc(ch) = 9 THEN
    IF fn <> "" THEN
        Terminate Application fn
        fn = ""		
    END IF
 ELSE
    fn = fn + ch
 END IF
NEXT

END SUB

Dartix
Участник
Сообщения: 78
Зарегистрирован: 05 апр 2014, 17:13
Репутация: 5

Re: Отключение MB-программ в MapInfo

Сообщение Dartix » 12 ноя 2015, 10:16

Спасибо за ответы! Всё, что задумывалось, получилось!)

Ответить

Вернуться в «MapInfo»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей