Родился интересный продуктик для своих нужд - универсальный пускач,  он много чего делает, синхронизирует и т д
и далее запускает по RUN(starter.exe) который в свою очередь уже строрит Frame и т д приложения, так вот пускачь отработался и фокус не переходит во Frame загруженного приложения, а переходит в процесс от куда запускали пускач, приходится мышой кликать во frame.
От суда вопрос, может кто знает как программно переключиться в нужный мне процесс по имени?.
пускачь примерно такой:
 PROGRAM
 MAP.
 CODE
 RUN('unistarter.exe')
в unistarter.exe можно просто открыть оконную процедуру, НО фокус оно не получит. ;(
			
			
									
						Переключение между процессами
Модератор: Дед Пахом
					Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
	При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- Игорь Столяров
- Ветеран движения
- Сообщения: 8268
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 34 раза
- Поблагодарили: 106 раз
пробовал, не помогаетИгорь Столяров писал(а):Как мимнимум - можно попробовать
1. Оставить пускач в памяти, тогда фокус останется на запущенном приложении: т.е. RUN('unistarter.exe',1)
а какие параметры для запуска shellExecute, я попробовал следующее:Игорь Столяров писал(а): 2. Запустить 'unistarter.exe' через 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)- Игорь Столяров
- Ветеран движения
- Сообщения: 8268
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 34 раза
- Поблагодарили: 106 раз
Не уверен, что мой вариант лучше, но он проще и работает ...
Попробуй !
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)
! --- Все ---
			
			
									
						Попробуй !
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)
! --- Все ---
За теми, кто отстал, не возвращаться !  Кодекс
 Кодекс
			
						


