Вот почти месяц покатался с SASPlanet. Кайф !
Но вот еще косяк вылез. Скорее не косяк а неудобство
После ухода в хипернейт и выхода из него при запуске программы грузится не та карта что была последний, а та что была загружена при последнем корректном выходе и проги. (что прописано в maps.ini) Хотя надпись названия карты сохраняется та, что перед хипернейт. (что прописано в skin.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",""
[VIEW]
MAPS=1
С у четом ошибки из-за того что RR Активирует главное окно SASPlanet пока оно еще спрятано и виден Splashscreen. в скрипт запуска проги SAS_exec.exe прописываем еще и настройку maps.ini
Сейчас у меня скрипт выглядят так:
В menu.skin на кнопе запуска программы прописано:Код:;Код: #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
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.





Ответить с цитированием