:: Visual Foxpro, Foxpro for DOS
Переключение из VFP в Excel (или Word)
Livada_vv
Автор

Сообщений: 46
Дата регистрации: 22.02.2014
Здравствуйте !

Приложение Excel (или Word) запущено. На панели задач есть соответствующие значки.
Как переключиться программным способом в Excel (или Word) ? (В широком смысле - в любое окно запущенного проложения)
P.S. Есть функция API findwindow, которая возвращает 1 если окно приложения запущено, но нужно знать окно запущенного Excel-а (или Word-а)
В прикреплении функция win32prg('Имя окна приложения'), которая делает активным окно, которое указано в параметре
? win32prg('Калькулятор') - делает активным окно калькулятора, если он был ранее запущен

С уважением,
Виктор
Ratings: 0 negative/0 positive
Re: Переключение из VFP в Excel (или Word)
1793

Сообщений: 290
Откуда: Озерск
Дата регистрации: 17.10.2001
Livada_vv
но нужно знать окно запущенного Excel-а (или Word-а)

держи подкрутишь под себя

Function IsRun
Lparameter lcTitl
Declare Integer GetActiveWindow In Win32API
Declare Integer GetWindow In Win32API Integer HWnd, Integer dflag
Declare Integer GetWindowText In Win32API Integer HWnd, String @lptstr, Integer cbmax

Local lnhwnd, lldone, lctitle_bar, lcsearchfor, lntext_len
lcTitl = Upper(Rtrim(lcTitl))
lnhwnd = GetActiveWindow()
lldone = .F.
lctitle_bar = ""
Do While lldone=.F.
If Empty(lnhwnd)=.F.
lctitle_bar = Space(200) + Chr(0)
lntext_len = GetWindowText(lnhwnd, @lctitle_bar, 200)
lctitle_bar = Upper(Left(lctitle_bar, lntext_len))

If Atc(lcTitl,lctitle_bar)>0
Exit
Else
lnhwnd = GetWindow(lnhwnd, 2)
Endif

Else
lldone = .T.
Endif
Enddo
Return lnhwnd
Ratings: 0 negative/0 positive
Re: Переключение из VFP в Excel (или Word)
AndyNigmatec

Сообщений: 1552
Откуда: Волгоград
Дата регистрации: 28.06.2015
Livada_vv
Как переключиться программным способом в Excel (или Word) ? (В широком смысле - в любое окно запущенного проложения)
- как бы не совсем хорошо так с юзверем делать полагаю ))) Если чего в мсофис выводить надо - так сделать вывод без отображения на экране, а затем вопрос юзверю - а не хочет ли многоуважаемый имярек открыть - если хочет - то открыть как раз пред его светлые очи.
И, кстати, заголовки окошек в экселе то - по имени книги обзываются навродь ...
Ratings: 0 negative/0 positive
Re: Переключение из VFP в Excel (или Word)
Livada_vv
Автор

Сообщений: 46
Дата регистрации: 22.02.2014
Спасибо!
Ratings: 0 negative/0 positive
Re: Переключение из VFP в Excel (или Word)
Livada_vv
Автор

Сообщений: 46
Дата регистрации: 22.02.2014
Имя окна Excel, если файл открыт (например, Text.xls).
"Microsoft Excel - Text.xls"
Имя окна Excel, если файл не открыт и книга не создана
"Microsoft Excel"
Функция win32prg(), которую я прикреплял работает (переключает в приложение Excel):
=win32prg('Microsoft Excel - Text.xls')
или
=win32prg('Microsoft Excel')
Ratings: 0 negative/0 positive
Re: Переключение из VFP в Excel (или Word)
krin

Сообщений: 172
Дата регистрации: 08.02.2005
а в Excel2013
loExcel = CREATEOBJECT('Excel.Application')
?loExcel.Caption && "Excel"
loExcel.Workbooks.Add()
?loExcel.Caption && "Книга1 - Excel"
loExcel.ActiveWorkbook.SaveAs("проба")
?loExcel.Caption && "проба - Excel"

без Caption решение "Force Window to Front (not blink in taskbar)" by craigsboyd
www.tek-tips.com

ForceForegroundWindow(loExcel.HWND)

про смысл кода func ForceForegroundWindow() можно почитать по-русски
rsdn.org "Способ 3"
Ratings: 0 negative/0 positive
Re: Переключение из VFP в Excel (или Word)
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Если нужное приложение ворд/эксел было тобой же до того и создано, и программно управляется, то получить хендл окна можно безо всякого бессмысленного "поиска окон по имени" - в объектной модели ворда/экселя есть свойство hWnd.


------------------
WBR, Igor
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 35 (Гостей: 35)

© 2000-2024 Fox Club 
Яндекс.Метрика