Страница 1 из 1

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

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

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

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

Добавлено: 10 ноя 2015, 11:33
Slinger
Все утилиты, которые есть у вас в списке "Программы - Каталог программ" лежат в реестре по этому пути

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

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

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

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

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

"Autoload"=dword:00000001
на

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

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

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

4) И всё.

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

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

Добавлено: 10 ноя 2015, 16:52
Alexgis
Как-то так :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

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

Добавлено: 12 ноя 2015, 10:16
Dartix
Спасибо за ответы! Всё, что задумывалось, получилось!)