Johnson писал(а):что попытки добавить метки из консоли надо оставить.
zed писал(а): Пришлите пару патчей, отработайте пару тикетов и SAS будет вести себя так, как вам надо
echo писал(а):В дополнение темы, может кому пригодится: можно использовать запуск приложения с параметром
"C:\SAS.Planet\SAS.Planet.Nightly.150920.9091\SASPlanet.exe --map={F6574B06-E632-4D5F-BC75-C8FA658B57DF} --zoom=19 --move=(37.574999,55.776213)",
Тут ключ --move указывавает координаты перемещения, но пожалуй через WM_COPYDATA было бы правильнее чтоли, тут уж смотря из какого приложения.
Option Compare Database
Option Explicit
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef lParam As Any) As Long
Public Const WM_COPYDATA As Long = &H4A
Public Type COPYDATASTRUCT
dwData As Long ' передаваемые данные (0 - текс, 1 - бинарные)
cbData As Long ' размер(в байтах) данных, на которые ссылается lpData
lpData As String ' передаваемая строка, или Long — указатель на передаваемые данные, тогда StrPtr(sTest)
' Long в SAS ругается, толи тире не нравиться, толи юникод
End Type
Public Function TestSAS()
Dim sTest As String ' передаваемая строка
Dim hWnd As Long ' окно в которое передаем
Dim cd As COPYDATASTRUCT ' смотрим выше
Dim res As Long ' результат выполнения (0 - ok)
hWnd = FindWindow(vbNullString, "SAS.Планета 160707.9476 Stable")
sTest = "--zoom=17 --move=(37.574999,55.776213)"
cd.dwData = 0
cd.cbData = Len(sTest) + 1
cd.lpData = sTest
res = SendMessage(hWnd, WM_COPYDATA, 0, cd)
End Function
Вернуться в Раздел для разработчиков программы SAS.Планета
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5