Страница 1 из 1
					
				Переключение между процессами
				Добавлено: 26 Январь 2006, 14:13
				 Andrew™
				Родился интересный продуктик для своих нужд - универсальный пускач,  он много чего делает, синхронизирует и т д
и далее запускает по RUN(starter.exe) который в свою очередь уже строрит Frame и т д приложения, так вот пускачь отработался и фокус не переходит во Frame загруженного приложения, а переходит в процесс от куда запускали пускач, приходится мышой кликать во frame.
От суда вопрос, может кто знает как программно переключиться в нужный мне процесс по имени?.
пускачь примерно такой:
 PROGRAM
 MAP.
 CODE
 RUN('unistarter.exe')
в unistarter.exe можно просто открыть оконную процедуру, НО фокус оно не получит. ;(
			 
			
					
				
				Добавлено: 26 Январь 2006, 14:41
				 Игорь Столяров
				Как мимнимум - можно попробовать
1. Оставить пускач в памяти, тогда фокус останется на запущенном приложении: т.е. RUN('unistarter.exe',1)
2. Запустить 'unistarter.exe' через ShellExecute - у меня работает именно так и фокус остается на запущенном приложении ...
			 
			
					
				
				Добавлено: 26 Январь 2006, 14:49
				 Andrew™
				Игорь Столяров писал(а):Как мимнимум - можно попробовать
1. Оставить пускач в памяти, тогда фокус останется на запущенном приложении: т.е. RUN('unistarter.exe',1)
пробовал, не помогает
Игорь Столяров писал(а):
2. Запустить 'unistarter.exe' через ShellExecute - у меня работает именно так и фокус остается на запущенном приложении ...
а какие параметры для запуска shellExecute, я попробовал следующее:
Код: Выделить всё
RunFile             PROCEDURE(STRING Name,STRING param)
loc_W                &WINDOW
loc_lpOperation      CSTRING('open')
loc_lpFileName       CSTRING(256)
loc_lpParameters     CSTRING(100)
loc_lpDirectory      CSTRING(2)
I                    LONG
len                  LONG
    CODE
 len = LEN(CLIP(Name))
 loc_lpParameters = CLIP(param)
 loc_W    &= SYSTEM{PROP:Target}
 loc_lpFileName = CLIP(Name)
 ShellExecute(loc_W{PROP:Handle},loc_lpOperation, loc_lpFileName,|
 loc_lpParameters, loc_lpDirectory, 1)
тоже не помогает
 
			
					
				
				Добавлено: 26 Январь 2006, 15:14
				 Игорь Столяров
				Не уверен, что мой вариант лучше, но он проще и работает ...
Попробуй !
RunTask Procedure()
Loc:Handle           USHORT                                
Loc:RetHandle      USHORT                                
Loc:Op                CSTRING(20)                           
Loc:File               CSTRING(256)                          
Loc:Path              CSTRING(256)                          
Loc:Param            CSTRING(256)                      
window WINDOW,AT(,,0,0),CENTER,GRAY,DOUBLE
     END
Code    
     Open(Window)
     Loc:Handle    = Window{PROP:Handle}
     Loc:Op          = 'open'
     Loc:File         = 'MyProgarm.exe'
     Loc:Path        = LongPath()
     Loc:Param     = ''
     Loc:RetHandle = ShellExecute(Loc:Handle,Loc:Op,Loc:File,Loc:Param,Loc:Path,1)
     Close(Window)
! --- Все ---
			 
			
					
				
				Добавлено: 26 Январь 2006, 17:41
				 Andrew™
				Игорь Столяров писал(а):Не уверен, что мой вариант лучше, но он проще и работает ...
Попробуй !
твой вариант аналогичен моему и никуда не проще, у тебя окошко у меня его нет 
 
но тоже не прокатил, всё таки сама задача более сложная у меня, но выкрутился и нашёл решение