![]() |
#5 |
Участник
|
Цитата:
(т.е. на закладке с аосами становишься на нужный аос и жмешь кнопку - открывается клиент аксапты подключенный к выбранному аосу) X++: // pkoz 08.07.2011 // содрано тут : \Classes\GRD_ProjectCompile\projectCompileOnAOSs #macrolib.File #localmacro.AOSIdPortSeparator '@' #endmacro #localmacro.CmdLinePortSeparator ':' #endmacro void GRD_connectParticularAOS() { System.Diagnostics.ProcessStartInfo processStartInfoLoc; System.Diagnostics.Process processLoc; Integer curServerId; SysServerSessions sysServerSessionsLoc = sysServerSessions.data(); str cmdLineArgs; ; curServerId = (select firstonly ServerId from SysClientSessions where SysClientSessions.SessionId == sessionid() ).ServerId; if (!( sysServerSessionsLoc.Status == SysServerStatus::Alive && sysServerSessionsLoc.LoadBalance == NoYes::No // вообще балансировщики всегда имеют статус SysServerStatus::Offline, так что условие избыточно // && sysServerSessionsLoc.ServerId != curServerId )) { throw error("Нельзя поключиться к выбранному AOS'у"); } cmdLineArgs = strfmt( @'-loadbalance=0 -aos2=%1', strreplace( sysServerSessionsLoc.AOSId, #AOSIdPortSeparator, #CmdLinePortSeparator ) ); processLoc = new System.Diagnostics.Process(); processStartInfoLoc = processLoc.get_StartInfo(); processStartInfoLoc.set_FileName( WinAPI::getCurrentProcessExecutablePath() ); processStartInfoLoc.set_Arguments( cmdLineArgs ); processStartInfoLoc.set_UseShellExecute( false ); if (!processLoc.Start()) { error("@SYS83461"); } } |
|
|
За это сообщение автора поблагодарили: Veter (1), skuull (2), Ace of Database (3), AlGol (3). |