Вот почти месяц покатался с SASPlanet. Кайф !
Но вот еще косяк вылез. Скорее не косяк а неудобство
После ухода в хипернейт и выхода из него при запуске программы грузится не та карта что была последний, а та что была загружена при последнем корректном выходе и проги. (что прописано в maps.ini) Хотя надпись названия карты сохраняется та, что перед хипернейт. (что прописано в skin.ini)
Подумал как решить эту задачу
Получилось так (может не очень красиво но работает железно):
В скин выбора карт на кнопки вешаем дополнительно запись № карты
Сейчас у меня кнопки выглядят так:
Код:
B01,324,218,141,69,"exit||WAIT;1||SENDKEY;{6}||SETVAR;MYLABEL;Яндекс||SAVETOSKIN;MYLABEL;$MYLABEL$||SAVETOSKIN;MAPS;6",""
B02,608,354,142,73,"exit||WAIT;1||SENDKEY;{F10}||SETVAR;MYLABEL;Yahoo!||SAVETOSKIN;MYLABEL;$MYLABEL$||SAVETOSKIN;MAPS;10",""
B02,468,356,140,71,"exit||WAIT;1||SENDKEY;{7}||SETVAR;MYLABEL;Virtual Earth||SAVETOSKIN;MYLABEL;$MYLABEL$||SAVETOSKIN;MAPS;7",""
B02,325,356,142,72,"exit||WAIT;1||SENDKEY;{5}||SETVAR;MYLABEL;Яндекс||SAVETOSKIN;MYLABEL;$MYLABEL$||SAVETOSKIN;MAPS;5",""
B02,183,355,142,73,"exit||WAIT;1||SENDKEY;{3}||SETVAR;MYLABEL;Kosmosnimki||SAVETOSKIN;MYLABEL;$MYLABEL$||SAVETOSKIN;MAPS;3",""
B02,40,354,137,72,"exit||WAIT;1||SENDKEY;{1}||SETVAR;MYLABEL;Google||SAVETOSKIN;MYLABEL;$MYLABEL$||SAVETOSKIN;MAPS;1",""
B02,36,219,147,68,"exit||WAIT;1||SENDKEY;{2}||SETVAR;MYLABEL;Google||SAVETOSKIN;MYLABEL;$MYLABEL$||SAVETOSKIN;MAPS;2",""
B03,611,218,142,68,"exit||WAIT;1||SENDKEY;{9}||SETVAR;MYLABEL;Генштаб||SAVETOSKIN;MYLABEL;$MYLABEL$||SAVETOSKIN;MAPS;9",""
B04,465,218,145,68,"exit||WAIT;1||SENDKEY;{8}||SETVAR;MYLABEL;Navitel||SAVETOSKIN;MYLABEL;$MYLABEL$||SAVETOSKIN;MAPS;8",""
B05,181,219,142,69,"exit||WAIT;1||SENDKEY;{4}||SETVAR;MYLABEL;Kosmosnimki||SAVETOSKIN;MYLABEL;$MYLABEL$||SAVETOSKIN;MAPS;4",""
В файле skin.ini прописываем
[VIEW]
MAPS=1
С у четом ошибки из-за того что RR Активирует главное окно SASPlanet пока оно еще спрятано и виден Splashscreen. в скрипт запуска проги SAS_exec.exe прописываем еще и настройку maps.ini
Сейчас у меня скрипт выглядят так:
Код:
;Код:
#include <GUIConstants.au3>
Opt( "WinSearchChildren", 1)
Opt( "WinTitleMatchMode", 2)
If ProcessExists("SASPlanet.exe") Then Exit
$MAPS = IniRead("C:\Program Files\Road Runner\skins\BMV2-480-GREY\skin.ini", "VIEW", "MAPS", "1")
;IniRead("D:\MAP\SASPlanet\maps\maps.ini"
If $MAPS = 1 Then ;Гугл спутник
IniWrite("D:\MAP\SASPlanet\maps\maps.ini", "{F6574B06-E632-4D5F-BC75-C8FA658B57DF}", "active", "1")
Else
IniWrite("D:\MAP\SASPlanet\maps\maps.ini", "{F6574B06-E632-4D5F-BC75-C8FA658B57DF}", "active", "0")
EndIf
If $MAPS = 2 Then ;Гугл карта
IniWrite("D:\MAP\SASPlanet\maps\maps.ini", "{CBA03063-23D9-4FA4-931A-9182B98644B1}", "active", "1")
Else
IniWrite("D:\MAP\SASPlanet\maps\maps.ini", "{CBA03063-23D9-4FA4-931A-9182B98644B1}", "active", "0")
EndIf
If $MAPS = 3 Then ;Космоснимки спутник
IniWrite("D:\MAP\SASPlanet\maps\maps.ini", "{FDBEC245-CE8D-4072-BDDB-5489CC535D00}", "active", "1")
Else
IniWrite("D:\MAP\SASPlanet\maps\maps.ini", "{FDBEC245-CE8D-4072-BDDB-5489CC535D00}", "active", "0")
EndIf
If $MAPS = 4 Then ;Космоснимки карта
IniWrite("D:\MAP\SASPlanet\maps\maps.ini", "{B408009F-ACAD-4394-A976-991CB7F98209}", "active", "1")
Else
IniWrite("D:\MAP\SASPlanet\maps\maps.ini", "{B408009F-ACAD-4394-A976-991CB7F98209}", "active", "0")
EndIf
If $MAPS = 5 Then ;Яндекс спутник
IniWrite("D:\MAP\SASPlanet\maps\maps.ini", "{5E04039A-331E-4D2C-B051-B00F8871BB39}", "active", "1")
Else
IniWrite("D:\MAP\SASPlanet\maps\maps.ini", "{5E04039A-331E-4D2C-B051-B00F8871BB39}", "active", "0")
EndIf
If $MAPS = 6 Then ;Яндекс карта
IniWrite("D:\MAP\SASPlanet\maps\maps.ini", "{8238C84A-D37E-45E1-A735-FBCFBCD4168C}", "active", "1")
Else
IniWrite("D:\MAP\SASPlanet\maps\maps.ini", "{8238C84A-D37E-45E1-A735-FBCFBCD4168C}", "active", "0")
EndIf
If $MAPS = 7 Then ;Микрософт спутник
IniWrite("D:\MAP\SASPlanet\maps\maps.ini", "{9A360A54-7A70-402D-8A11-D570BD759B5B}", "active", "1")
Else
IniWrite("D:\MAP\SASPlanet\maps\maps.ini", "{9A360A54-7A70-402D-8A11-D570BD759B5B}", "active", "0")
EndIf
If $MAPS = 8 Then ;Навител карта
IniWrite("D:\MAP\SASPlanet\maps\maps.ini", "{9F3D706F-B180-40CE-9F95-037E9D61ABE6}", "active", "1")
Else
IniWrite("D:\MAP\SASPlanet\maps\maps.ini", "{9F3D706F-B180-40CE-9F95-037E9D61ABE6}", "active", "0")
EndIf
If $MAPS = 9 Then ;Генштаб карты
IniWrite("D:\MAP\SASPlanet\maps\maps.ini", "{866D8DC1-8D36-4A80-891C-2FBCA7D03E93}", "active", "1")
Else
IniWrite("D:\MAP\SASPlanet\maps\maps.ini", "{866D8DC1-8D36-4A80-891C-2FBCA7D03E93}", "active", "0")
EndIf
If $MAPS = 10 Then ;Йяхо спутник
IniWrite("D:\MAP\SASPlanet\maps\maps.ini", "{054533A1-6169-48C5-9635-A90A277A1516}", "active", "1")
Else
IniWrite("D:\MAP\SASPlanet\maps\maps.ini", "{054533A1-6169-48C5-9635-A90A277A1516}", "active", "0")
EndIf
IniWrite("D:\MAP\SASPlanet\SASPlanet.ini", "VIEW", "Maximized", "0")
IniWrite("D:\MAP\SASPlanet\SASPlanet.ini", "VIEW", "FullScreen", "0")
IniWrite("D:\MAP\SASPlanet\SASPlanet.ini", "VIEW", "FLeft", "54")
IniWrite("D:\MAP\SASPlanet\SASPlanet.ini", "VIEW", "FTop", "25")
IniWrite("D:\MAP\SASPlanet\SASPlanet.ini", "VIEW", "FWidth", "746")
IniWrite("D:\MAP\SASPlanet\SASPlanet.ini", "VIEW", "FHeight", "455")
Run("D:\MAP\SASPlanet\SASPlanet.exe")
WinWaitActive("Logo")
WinWaitNotActive("Logo")
WinWaitActive("SAS.Планета ", "Главное меню")
Exit
В menu.skin на кнопе запуска программы прописано:
B17,595,64,191,71,"RUNW;D:\MAP\SASPlanet\SAS_exec. exe||RUNW;D:\MAP\SASPlanet\SAS_win.exe||LOAD;SGIS. SKIN;Sas planet;;!TFmain||ACTIVATE;RoadRunner",""
Скрипт SAS_win.exe – просто если в файле SASPlanet.ini Fullscreen=0 разворачивает прогу на полный экран и активирует окно (имитация нажатия средней клавиши мыши).
P.S. перед компиляцией не забудте поставить свои пути к файлам ini и exe.